Durchbruch der Moving Average Crossover-Strategie


Erstellungsdatum: 2023-12-12 17:43:19 zuletzt geändert: 2023-12-12 17:43:19
Kopie: 1 Klicks: 929
1
konzentrieren Sie sich auf
1621
Anhänger

Durchbruch der Moving Average Crossover-Strategie

Überblick

Die Strategie, die als “Schaff Trend Cycle (STC) ” bezeichnet wird, nutzt die Schaff Trend Cycle (STC) -Indikator und die doppelte Durchschnittskreuzung. Wenn die STC-Richtung die Überkauf-Überverkaufszone durchbricht und die Preise höher sind als der bewegliche Durchschnitt der kurzfristigen Indizes und der bewegliche Durchschnitt der kurzfristigen Indizes höher ist als der bewegliche Durchschnitt der langfristigen Indizes, wird ein Überkauf getätigt.

Strategieprinzip

Die Strategie basiert auf zwei technischen Indikatoren:

  1. STC-Indikator: STC-Indikator, der die Richtung des Trends bestimmt. STS-Indikator enthält MACD-Indikator, Stoch-Indikator und STC-Indikatorlinie. Wenn die STC-Linie von 0-25 nach oben durchbricht, ist es ein Mehrkopfsignal; wenn sie von 75-100 nach unten durchbricht, ist es ein Leerkopfsignal.

  2. Durchschnittliche Linie Kreuzung: Kreuzung von schnellen einfachen gleitenden Durchschnitten (Standard-Zyklus 35) und langsamen einfachen gleitenden Durchschnitten (Standard-Zyklus 200). Durchschreiten der langsamen Linie auf der schnellen Linie als Mehrkopfsignal, durchschreiten der langsamen Linie unter der schnellen Linie als Leerkopfsignal.

Die Logik der Strategie ist wie folgt:

  1. Mehr Signale: Wenn der STC-Indikator die 25er Linie nach oben durchbricht und der schnelle einfache bewegliche Durchschnitt höher ist als der langsame einfache bewegliche Durchschnitt und der Preis höher ist als der schnelle einfache bewegliche Durchschnitt, mehr zu tun.

  2. Leerzeichen: Wenn der STC-Indikator die 75er Linie nach unten durchbricht, der schnelle einfache gleitende Durchschnitt niedriger ist als der schnelle einfache gleitende Durchschnitt und der Preis niedriger ist als der schnelle einfache gleitende Durchschnitt, wird ein Leerzeichen gesetzt.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. In Kombination mit einem Trend-Indikator und einem Durchschnittslinie-Indikator sind die Handelssignale zuverlässiger. Der STC-Indikator beurteilt die Richtung des großen Trends, die doppelte Durchschnittslinie beurteilt die spezifische Einführung.

  2. Durchschnittliche Parameter sind anpassbar. Durchschnittliche Parameter können an den Markt angepasst und Strategien optimiert werden.

  3. Risikokontrolle. Der STC-Indikator beurteilt überkaufte und überverkaufte Bereiche und vermeidet es, in extremen Gebieten zu überschreiben. Das Zielstop-Loss hat eine Stop-Stop-Range von 400 Punkten festgelegt.

Risikoanalyse

Es gibt einige Risiken bei dieser Strategie:

  1. Der STC-Indikator kann durch falsche Durchbrüche beeinträchtigt werden.

  2. Durchschnittliche Kreuzung kann mehr Falschsignale erzeugen. Die Parameter für die Durchschnittlichkeitsperiode müssen angepasst werden.

  3. Nur einseitige Transaktionen.

  4. Das Risiko eines Slippings, wenn keine Devisen-Bürgschaftsgeschäfte abgewickelt werden.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Anpassung der STC-Parameter zur Optimierung der Überkauf- und Überverkaufsschätzungen.

  2. Optimierung der Durchschnittszyklus und erhöht die Zuverlässigkeit der Kreuzungssignale.

  3. Zusätzliche Filteranzeigen, um falsche Durchbrüche zu filtern, z. B. Brin-Band.

  4. Erhöhung der Zwei-Wege-Transaktionslogik. Verringerung des Raumrisikos.

  5. Einführung von Stop-Loss-Logik. Kontrolle von Einzelschäden.

Zusammenfassen

Diese Strategie verwendet eine Kombination aus Schwelligkeitsindikatoren und Gleichgewichtsindikatoren, um die Richtung der Trends und die spezifischen Einstiegspunkte zu bestimmen. Unter Gewährleistung bestimmter Risikokontrollbedingungen können bessere Erträge erzielt werden. Das Strategiemodell ist einfach, klar und leicht verständlich und ermöglicht die Anpassung der Parameter und die Funktionsoptimierung nach verschiedenen Märkten.

Strategiequellcode
/*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")