Super Trend Moving Average (BOLL) Indikator-Strategie


Erstellungsdatum: 2023-12-01 16:29:56 zuletzt geändert: 2023-12-01 16:30:43
Kopie: 0 Klicks: 954
1
konzentrieren Sie sich auf
1619
Anhänger

Super Trend Moving Average (BOLL) Indikator-Strategie

Überblick

Eine übliche Stop-Loss-Strategie, die auf dem ATR-Durchschnitt basiert, um die tatsächliche Schwankungsbreite zu verfolgen. Die Strategie verwendet die übliche BOLL-Strategie, um einen hohlen Trendkanal auf dem Chart zu zeichnen und in Kombination mit dem Bollinger Bands-Indikator ein Kauf- und Verkaufssignal zu senden.

Strategieprinzip

Die Strategie verwendet zwei Hauptparameter, die Phasen-Perioden und die Multiplikation, die 10 und 3 als Default-Parameter verwenden, um die Übertrend-Mittellinie zu berechnen. Die spezifische Berechnungsformel lautet:

Oberbahnlinie: Schlusskurs - (mal der durchschnittliche tatsächliche ATR-Wert) Abwärtslinie: Schlusskurs + (mal × ATR durchschnittliche reale Schwankungen)

Wenn der Schlusskurs über dem Aufwärtstrend des vorherigen Zyklus liegt, gilt dies als Mehrkopfsignal; wenn der Schlusskurs den Unterwärtstrend des vorherigen Zyklus überschreitet, gilt dies als Leerkopfsignal.

Die Strategie kombiniert auch die Bollinger Bands mit einer mittleren Bahn als Basislinie, wobei die oberen und unteren Bahnen jeweils zwei Standarddifferenzen von der mittleren Bahn unterscheiden. Ein Kaufsignal wird erzeugt, wenn der Preis die mittlere Bahn von unten nach oben durchbricht; ein Verkaufssignal wird erzeugt, wenn der Preis die mittlere Bahn von oben nach unten durchbricht.

Strategische Vorteile

  1. Mit der dynamischen Berechnung der Volatilität der ATA kann der Markt schnell verändert werden.
  2. In Kombination mit dem Brin-Band-Index sind die Handelssignale zuverlässiger
  3. Anpassbare Parameter für unterschiedliche Marktumgebungen

Strategisches Risiko

  1. Sie sind sehr anfällig für Fehlsignale bei Erdbeben.
  2. Fehlende Parameter können zu häufigen Transaktionen führen
  3. Es gibt eine gewisse Verzögerung bei der Bestimmung der Wendepunkte.

Optimierungsrichtung

  1. Optimierung der ATR-Zyklusparameter mit Filtern, um Noise-Transactions zu reduzieren
  2. In Kombination mit anderen Indikatoren wird die Wahrscheinlichkeit eines Gewinnrückgangs für die Unterstützung der Widerstandslage verringert
  3. Erweiterung der Module zur Vermögensverwaltung und Kontrolle von Einzelschäden

Zusammenfassen

Die Übertrendline-BOLL-Strategie integriert die Vorzüge mehrerer technischer Indikatoren und nutzt eine dynamische Stop-Loss-Mechanik, um Markttrends effektiv zu verfolgen. Die Strategie ist parameterspezifisch, anpassungsfähig und ist eine empfehlenswerte Strategie zur Durchbruchskontrolle. Es sollte jedoch darauf geachtet werden, die Risiken von Stop-Loss-Erfolgen und häufigen Transaktionen zu vermeiden und weitere Optimierungen für ein komplexeres Marktumfeld vorzunehmen.

Strategiequellcode
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short)
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)