Diese Strategie wird
Die Strategie stützt sich in erster Linie auf zwei technische Indikatoren:
Trendindikator: STC-Indikator zur Bestimmung der Trendrichtung. Der STC umfasst die MACD-, Stochastic- und STC-Indikatorlinie. Ein Aufbruch aus der Zone 0-25 signalisiert einen bullischen Trend, während ein Abbruch aus der Zone 75-100 einen bärischen Trend signalisiert.
Bewegliche Durchschnittsüberschreitung: Schnelle einfache gleitende Durchschnittswerte (Standardperiode 35) kreuzen über/unter die langsame SMA (Standardperiode 200). Ein bullisches Signal ausgelöst, wenn die schnelle SMA über die langsame SMA überschreitet. Ein bärisches Signal ausgelöst auf dem gegenüberliegenden Crossover.
Die Handelssignallogik ist wie folgt definiert:
Langes Signal: STC bricht über die 25-Linie, schnelle SMA liegt über der langsamen SMA und der Schlusskurs liegt über der schnellen SMA.
Kurzsignal: STC bricht unter der 75-Linie, schnelle SMA ist unter der langsamen SMA und der Schlusskurs ist unter der schnellen SMA.
Zu den Vorteilen dieser Strategie gehören:
Zuverlässige Handelssignale aus der Kombination von Trend- und gleitenden Durchschnittsindikatoren.
Anpassungsfähige gleitende Durchschnittsperioden. MA-Perioden können für verschiedene Marktbedingungen optimiert werden.
STC identifiziert Überkauf-/Überverkaufsniveaus, um Höchstkunden und Tiefkunden zu vermeiden. Zielstopps setzen einen Gewinn/Verlustbereich von 400 Punkten.
Es gibt einige Risiken, die zu berücksichtigen sind:
Das Potenzial für falsche Ausbrüche muss durch die Kursentwicklung bestätigt werden.
Mehr falsche Signale von MA-Kreuzungen.
Es wird nur in eine Richtung gehandelt, was den Raum für offene Positionen begrenzt.
Bei dem Margin-Devisenhandel kann der Spread bei Live-Handel erheblich sein.
Mögliche Optimierungspfade sind:
Anpassung der STC-Parameter für Überkauf/Überverkauf.
Optimierung der MA-Perioden zur Verbesserung der Zuverlässigkeit des Crossover-Signals.
Fügen Sie zusätzliche Filter wie Bollinger Bands hinzu, um falsche Ausbruchgeschäfte zu reduzieren.
Implementierung einer zweiseitigen Handelslogik zur Erhöhung der Kapazität.
Hinzufügen von Stop-Loss-Logik zur Steuerung von Verlusten pro Handel.
Zusammenfassend lässt sich sagen, dass diese Strategie Trend- und gleitende Durchschnitts-Crossover-Indikatoren kombiniert, um die Trendrichtung und den Zeitpunkt der Eintritte zu bestimmen.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Shaff Trend Cycle coded by Alex Orekhov (everget) // Strategy and its additional conditions provided by greenmask // Schaff Trend Cycle script may be freely distributed under the MIT license. strategy("STC", shorttitle="STC") fastLength = input(title="MACD Fast Length", type=input.integer, defval=23) slowLength = input(title="MACD Slow Length", type=input.integer, defval=50) cycleLength = input(title="Cycle Length", type=input.integer, defval=10) d1Length = input(title="1st %D Length", type=input.integer, defval=3) d2Length = input(title="2nd %D Length", type=input.integer, defval=3) src = close highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true) macd = ema(src, fastLength) - ema(src, slowLength) k = nz(fixnan(stoch(macd, macd, macd, cycleLength))) d = ema(k, d1Length) kd = nz(fixnan(stoch(d, d, d, cycleLength))) stc = ema(kd, d2Length) stc := stc > 100 ? 100 : stc < 0 ? 0 : stc stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013 stcPlot = plot(stc, title="STC", color=stcColor, transp=0) upper = 75 lower = 25 transparent = color.new(color.white, 100) upperLevel = plot(upper, title="Upper", color=color.gray) hline(50, title="Middle", linestyle=hline.style_dotted) lowerLevel = plot(lower, title="Lower", color=color.gray) fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90) upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent fill(upperLevel, stcPlot, color=upperFillColor, transp=80) fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80) strategy.initial_capital = 50000 ordersize=floor(strategy.initial_capital/close) targetvalue = input(title="Target/stop", type=input.integer, defval=400) ma1length = input(title="SMA1", type=input.integer, defval=35) ma2length = input(title="SMA2", type=input.integer, defval=200) ma1 = ema(close,ma1length) ma2 = ema(close,ma2length) bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1 bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1 if (bullbuy) strategy.entry("Riposte", strategy.long, ordersize) strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue) if (bearsell) strategy.entry("Riposte", strategy.short, ordersize) strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue) //plotshape(bullbuy, title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte") //plotshape(bearsell, title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")