Diese Strategie kombiniert einen doppelten gleitenden Durchschnitts-Crossover und einen stochastischen Oszillator, um Trendumkehrmöglichkeiten für effiziente kurzfristige Geschäfte zu identifizieren.
Die Strategie basiert auf der Kombination von Doppel gleitendem Durchschnitts-Crossover und Stochastic-Oszillator.
Der Double Moving Average Crossover besteht aus einem schnellen gleitenden Durchschnitt, einem langsamen gleitenden Durchschnitt und einem ultraslow gleitenden Durchschnitt. Wenn der schnelle MA über den langsamen MA überschreitet, ist es ein Kaufsignal. Wenn der schnelle MA unter den langsamen MA überschreitet, ist es ein Verkaufssignal. Der Double MA Crossover kann mittelfristige Trendumkehrpunkte identifizieren.
Der Stochastische Oszillator enthält die Werte %K und %D. %K zeigt an, wo der aktuelle Schlusskurs relativ zu den höchsten und niedrigsten Preisen der letzten N Tage liegt. %D ist der einfache gleitende Durchschnitt von %K für den M-Tag. Werte über 80 bedeuten Überkaufniveaus und Werte unter 20 bedeuten Überverkaufniveaus. Der Stochastische Oszillator kann kurzfristige Überkauf/Überverkaufszonen identifizieren.
Diese Strategie kombiniert den doppelten MA-Crossover und den Stochastic-Oszillator. Sie sucht nach Trendumkehrsignalen aus dem doppelten MA-Crossover, wenn der Stochastic überkaufte/überverkaufte Niveaus zeigt. Ziel ist es, kurzfristige Trendumkehrungen zu erfassen.
Die Vorteile dieser Strategie:
Kombination von doppeltem MA-Crossover und einem Stochastik-Oszillator zur Identifizierung von kurz- und mittelfristigen Trendumkehrungen.
Verwendung von Stochastic-Überkauf-/Überverkaufssignalen zur Auswahl effektiverer Double MA-Crossover-Umkehrgeschäfte.
Klare Handelsregeln, die leicht umzusetzen sind.
Einstellbare Handelszeiten und Monatsparameter für verschiedene Produkte und Zeiträume.
Stop-Loss zur Kontrolle von Risiken.
Die Risiken dieser Strategie:
Double MA kann falsche Ausbrüche aufweisen. Stochastic kann ungültige Bullen/Bären Divergenzen aufweisen, was zu falschen Handelssignalen führt. Feinabstimmungsparameter oder andere Indikatoren für die Kombinationsbestätigung hinzufügen.
Sie basieren ausschließlich auf technischen Indikatoren ohne Berücksichtigung von Fundamentaldaten.
Es ist schwierig, den genauen Zeitpunkt der Umkehrung von MA zu bestimmen, es kann Probleme mit zu engen oder zu breiten Stops geben.
Eine falsche Einstellung der Parameter kann zu einem übermäßigen Handel oder zu einer schlechten Signalqualität führen.
Nur für den kurzfristigen Handel geeignet, nicht für die langfristige Haltung.
Die Strategie kann in mehreren Aspekten optimiert werden:
Testen Sie mehr Indikatorenkombinationen wie KDJ, MACD usw., um die Signalgültigkeit zu verbessern.
Hinzufügen einer Handelsvolumenanalyse, um falsche Ausbrüche zu vermeiden.
Optimieren der doppelten MA-Parameter, um genauere Umkehrpunkte zu ermitteln.
Optimieren Sie die Stop-Loss-Strategie, um die Wahrscheinlichkeit zu verringern, dass Sie gestoppt werden.
Hinzufügen von Modulen zur Risikokontrolle von Wirtschaftsereignissen, um Auswirkungen von Großereignissen zu vermeiden.
Verwenden Sie maschinelle Lerntechniken zur automatischen Optimierung von Parametern für eine bessere Anpassungsfähigkeit.
Backtest auf mehr Produkten und Zeitrahmen, um die besten Anwendungen zu finden.
Diese Strategie handelt an mittelfristigen Trendumkehrpunkten, die durch den doppelten MA-Crossover und die stochastischen Bullen-/Bären-Divergenzen identifiziert werden. Im Vergleich zu der Verwendung eines einzigen Indikators kann sie die Handelsrentabilität mit klaren Regeln verbessern.
/*backtest start: 2022-10-26 00:00:00 end: 2023-10-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Intraday Stochiastic Strategy", shorttitle="Intraday Stochiastic Strategy", overlay=true, initial_capital = 1000) //WORKS FOR BTCUSD M30 //OBVERVED GOOD PERFORMANCES FOR SELL MODE M15 : US30USD / UK100GBP / JP225USD / SPX500USD / BCOUSD / EURGBP //Best Forex Hours are 7-21 //0 is Long Position //1 is Short Position //2 No position mode=input(1, maxval=2, title="Mode") lossLimit=input(10000, maxval=10000, title="Loss Limit") hourStart=input(2, maxval=24, title="Hour Start") hourStop=input(13, maxval=24, title="Hour Stop") //Month selected for back testing. 0 is maximum number of months monthSelected = input(0, maxval=12, title="Month Selected") ///////////////////////////////////////////////// fast = 20, slow = 50, ultraSlow = 200 fastMA = sma(close, fast) slowMA = sma(close, slow) ultraSlowMA = sma(close, ultraSlow) colorFast = red colorSlow = black colorUltraSlowMA = purple if(timeframe.period == "1" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "15" or timeframe.period == "30" or timeframe.period == "45" or timeframe.period == "60" or timeframe.period == "120" or timeframe.period == "180" or timeframe.period == "240") fastMA := ema(close, fast) slowMA := ema(close, slow) ultraSlowMA := ema(close, ultraSlow) colorFast := orange colorSlow := gray colorUltraSlowMA := blue p1 = plot(fastMA, color=colorFast) p2 = plot(slowMA, color=colorSlow, linewidth=2) p3 = plot(ultraSlowMA, color=colorUltraSlowMA, linewidth=3) fill(p1, p2, color = fastMA > slowMA ? green : red) //////////////////////////////////////////////// ema150 = 200 ema150MA = ema(close, ema150) smooth = input(3, minval=1), K = input(14, minval=1), D=input(3,minval=1) hh=highest(high,K) ll=lowest(low,K) k = sma((close-ll)/(hh-ll)*100, smooth) d = sma(k, 3) //plot(k, color=blue) //plot(d, color=red) //h0 = hline(80) //h1 = hline(20) //fill(h0, h1, color=purple, transp=95) //plot(hour*100, color=red, linewidth=2) stochiasticHigh = 80 stochiasticLow = 20 data = close < ema150MA and k>stochiasticHigh and d>stochiasticHigh and close>open plotshape(data, style=shape.triangledown, location=location.belowbar, color=red) data2 = close > ema150MA and k<stochiasticLow and d<stochiasticLow and close<open plotshape(data2, style=shape.triangleup, location=location.abovebar, color=green) isData = 0 isData := isData[1] if(isData == 0) if(data) if(mode==1 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) //DOW hours : 2-13 strategy.entry("SCALP SHORT", strategy.short) isData := 1 else if(k<stochiasticLow and d<stochiasticLow) if(mode==1) strategy.close_all(when = true) isData := 0 isData2 = 0 isData2 := isData2[1] if(isData2 == 0) if(data2) if(mode==0 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) strategy.entry("SCALP LONG", strategy.long) isData2 := 1 else if(k>stochiasticHigh and d>stochiasticHigh) if(mode==0) strategy.close_all(when = true) isData2 := 0 strategy.exit("STOP LOSS", "SCALP LONG", loss=lossLimit) strategy.exit("STOP LOSS", "SCALP SHORT", loss=lossLimit)