Kombination aus doppelt überlagertem gleitendem Durchschnitt Stochastische Ähnlichkeit und Unterschied K-Linien-Handelsstrategie


Erstellungsdatum: 2023-10-27 17:00:04 zuletzt geändert: 2023-10-27 17:00:04
Kopie: 3 Klicks: 615
1
konzentrieren Sie sich auf
1617
Anhänger

Kombination aus doppelt überlagertem gleitendem Durchschnitt Stochastische Ähnlichkeit und Unterschied K-Linien-Handelsstrategie

Überblick

Die Strategie nutzt eine Kombination aus Doppel-Überschneidungs-Mittel- und Stochastic-Indikatoren, um Chancen für Trendwechsel zu erkennen. Sie ermöglicht einen effizienten Short-Line-Handel. Wenn der Preis in eine überkaufte und überverkaufte Zone eintritt, wählt die Strategie eine Leerstellung; wenn der Preis in eine überverkaufte Zone eintritt, wählt die Strategie eine Übernahme, um eine Umkehrung des Short-Line-Trends zu erfassen.

Strategieprinzip

Die Strategie basiert hauptsächlich auf einer Kombination aus Doppelüberschneidungsmittel und Stochastik.

Ein Doppelüberschneidungsmittel besteht aus einem schnellen Moving Average, einem langsamen Moving Average und einem extrem langsamen Moving Average. Ein Überschreiten des langsamen Moving Averages über dem schnellen Moving Average ist ein Kaufsignal, ein Überschreiten des langsamen Moving Averages unter dem schnellen Moving Average ist ein Verkaufssignal.

Der Stochastic-Indikator enthält die K- und D-Werte, wobei der K-Wert die Position des aktuellen Höchst- und Tiefstpreises in N Tagen gegenüber dem Schlusskurs darstellt. Der D-Wert ist der M-Tage-Simple-Moving-Average des K-Wertes. Wenn der K-Wert und der D-Wert über 80 liegen, ist dies eine Überkaufzone, wenn der Wert unter 20 liegt, ist dies eine Überverkaufszone.

Diese Strategie kombiniert den doppelten überlappenden Mittelwert mit dem Stochastic-Indikator, um zu sehen, ob der Treeview mit dem doppelten Mittelwert-Signal übereinstimmt, wenn der Stochastic-Indikator überkauft oder überverkauft ist, und wenn dies der Fall ist, wählt man den Punkt für einen Umkehrhandel, um den Wendepunkt des Short-Line-Trends zu erfassen.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Kombination nutzt doppelte überlagerte Mittelwerte und Stochastic-Indikatoren, um Trendwendepunkte für mittlere und kurze Linien gleichzeitig zu erkennen.

  2. Überkauf-Überverkauf-Signal mit Stochastic-Indikator, um eine effizientere Doppelüberschneidungs-Durchschnittsumkehr-Handelsmöglichkeit zu wählen.

  3. Die Regeln der Handelsstrategie sind klar und einfach umzusetzen.

  4. Anpassbare Handelszeiten und Monatsparameter für verschiedene Sorten und Zeiträume.

  5. Stop-Loss-Einstellungen zur Risikokontrolle.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Doppelüberschneidungen können zu False-Breakouts führen, Stochastic-Indikatoren können zu fehlerhaften asymmetrischen K-Linienformationen führen, was zu falschen Handelssignalen führt. Die Parameter können entsprechend angepasst werden, oder andere Indikatoren können zur Kombinationsprüfung hinzugefügt werden.

  2. Sie basieren nur auf technischen Indikatoren und berücksichtigen keine grundlegenden Faktoren. Sie sind anfällig für Fehlschläge bei einem großen wirtschaftlichen Ereignis.

  3. Es ist schwierig, den genauen Zeitpunkt der Umkehrung des Moving Averages zu erfassen, und es kann zu klein oder zu groß sein. Die Stop-Loss-Strategie sollte optimiert werden.

  4. Die falsche Einstellung der Parameter kann zu einer zu hohen Handelsfrequenz oder einer schlechten Signalleistung führen. Parameteroptimierungstests sollten für verschiedene Sorten und Perioden durchgeführt werden.

  5. Nur für den Short-Line-Handel, nicht für die Long-Line-Haltung. Die Größe der Position sollte kontrolliert werden.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Test mehr Kombinationen von Indikatoren, wie KDJ, MACD und andere, um die Wirksamkeit des Signals zu erhöhen.

  2. Um einen falschen Durchbruch zu vermeiden, werden die Kennzahlen der Transaktionen analysiert.

  3. Optimierung der doppelten Mittelwertparameter zur Identifizierung einer präziseren Umkehrzeit.

  4. Optimierung der Stop-Loss-Strategie und Verringerung der Wahrscheinlichkeit, dass Stop-Loss ausgelöst wird.

  5. Erweiterung des Moduls zur Risikokontrolle von wirtschaftlichen Ereignissen, um die Auswirkungen von Großereignissen auf den Handel zu vermeiden.

  6. Die automatische Optimierung der Parameter mit Hilfe von maschinellen Lerntechnologien erhöht die Anpassungsfähigkeit der Parameter.

  7. Es wird in mehr Sorten und in mehr Zyklen nachgeprüft, um die besten Anwendungsmöglichkeiten zu finden.

Zusammenfassen

Die Strategie ist durch die Kombination von Doppelüberschneidungsmittel und Stochastischen heterogenen K-Linie-Formen verwendet, um den Zweck des Handels in der mittleren kurzen Linie Trendwendepunkt zu erreichen. Die Strategie kann die Profitabilität der Trades zu erhöhen, im Vergleich zu einer einzelnen Verwendung eines Indikators, und die Strategie Regeln sind klar und einfach zu bedienen. Aber die Strategie ist auch ein gewisses Risiko, die Optimierung der Parameter und Stop-Loss, und die Hinzufügung von mehr Validierungs-Indikatoren und Risikokontrollen.

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