Intraday-Stochastischer Oszillator mit doppelter gleitender Durchschnitts-Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-27 17:00 Uhr
Tags:

img

Übersicht

Diese Strategie kombiniert einen doppelten gleitenden Durchschnitts-Crossover und einen stochastischen Oszillator, um Trendumkehrmöglichkeiten für effiziente kurzfristige Geschäfte zu identifizieren.

Strategie Logik

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.

Analyse der Vorteile

Die Vorteile dieser Strategie:

  1. Kombination von doppeltem MA-Crossover und einem Stochastik-Oszillator zur Identifizierung von kurz- und mittelfristigen Trendumkehrungen.

  2. Verwendung von Stochastic-Überkauf-/Überverkaufssignalen zur Auswahl effektiverer Double MA-Crossover-Umkehrgeschäfte.

  3. Klare Handelsregeln, die leicht umzusetzen sind.

  4. Einstellbare Handelszeiten und Monatsparameter für verschiedene Produkte und Zeiträume.

  5. Stop-Loss zur Kontrolle von Risiken.

Risikoanalyse

Die Risiken dieser Strategie:

  1. 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.

  2. Sie basieren ausschließlich auf technischen Indikatoren ohne Berücksichtigung von Fundamentaldaten.

  3. Es ist schwierig, den genauen Zeitpunkt der Umkehrung von MA zu bestimmen, es kann Probleme mit zu engen oder zu breiten Stops geben.

  4. Eine falsche Einstellung der Parameter kann zu einem übermäßigen Handel oder zu einer schlechten Signalqualität führen.

  5. Nur für den kurzfristigen Handel geeignet, nicht für die langfristige Haltung.

Optimierungsrichtlinien

Die Strategie kann in mehreren Aspekten optimiert werden:

  1. Testen Sie mehr Indikatorenkombinationen wie KDJ, MACD usw., um die Signalgültigkeit zu verbessern.

  2. Hinzufügen einer Handelsvolumenanalyse, um falsche Ausbrüche zu vermeiden.

  3. Optimieren der doppelten MA-Parameter, um genauere Umkehrpunkte zu ermitteln.

  4. Optimieren Sie die Stop-Loss-Strategie, um die Wahrscheinlichkeit zu verringern, dass Sie gestoppt werden.

  5. Hinzufügen von Modulen zur Risikokontrolle von Wirtschaftsereignissen, um Auswirkungen von Großereignissen zu vermeiden.

  6. Verwenden Sie maschinelle Lerntechniken zur automatischen Optimierung von Parametern für eine bessere Anpassungsfähigkeit.

  7. Backtest auf mehr Produkten und Zeitrahmen, um die besten Anwendungen zu finden.

Schlussfolgerung

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) 

Mehr