Handelsstrategie für gleitende Durchschnitte mit mehreren Zeitrahmen


Erstellungsdatum: 2023-09-21 20:45:38 zuletzt geändert: 2023-09-21 20:45:38
Kopie: 3 Klicks: 1241
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie nutzt die Kreuzung von mehreren Zeitfenstern, um Handelssignale zu ermitteln. Die Strategie kann die Moving Averages von längeren Zeitfenstern in den aktuellen Zeitfenstern beobachten, um die Richtung des größeren Trends zu entdecken.

Strategieprinzip

Die Strategie verwendet zwei Moving Averages, die jeweils für die aktuelle Periode und die höhere Periode berechnet werden.

Zum Beispiel die 20- und die 50-Tage-Linien auf einer 15-Minuten-Chart:

  • Die 20-Tage-Linie wird berechnet nach der aktuellen 15-Minuten-K-Linie.
  • Die 50-Tage-Linie wird nach der K-Tage-Linie berechnet.

Wenn die Linie 15 Minuten 20 Tage über die Linie 50 Tage geht, machen Sie mehr; wenn die Linie 15 Minuten 20 Tage unter die Linie 50 Tage geht, machen Sie leere.

Dies ermöglicht die Beobachtung von Trends mit längeren Perioden in der aktuellen Periode. Die Strategie erlaubt auch die Anpassung der Periodenlänge der Moving Averages.

Die Kreuzungspunkte können auch Punkte markieren, um den Handel zu erinnern.

Strategische Vorteile

  • Eine Analyse über die Zeiträume zeigt größere Trends
  • Hochperiodische Linien sind stabiler und vermeiden zu viele Falschsignale
  • Niedrigperiodische Linien sind empfindlicher und fangen schnell Trendänderungen ein
  • Benutzerdefinierbare Kombination von mehreren Gruppen mit gleichlautenden Perioden
  • Transaktions-Hinweise mit deutlich sichtbarer Punktmarkierung

Strategisches Risiko

  • Mehrfache Zeitrahmen-Synthese erhöht die Komplexität der Strategie
  • Das Risiko von Fehlsignalen bei niedrigen Periodenzügen besteht nach wie vor
  • Die mittellinien Systeme liegen insgesamt zurück und könnten die besten Einstiegspunkte verpassen.
  • Nur ein einheitliches Linien-System, nur begrenzte Filterwirkung
  • Optimierte Kombinationen von Zyklusparametern, unterschiedliche Sorten sind nicht immer gleich

Das Risiko kann durch folgende Maßnahmen verringert werden:

  • Beibehaltung eines längeren, höheren periodischen Durchschnitts, um sicherzustellen, dass die Haupttrends richtig beurteilt werden

  • Zusätzliche technische Indikatoren zur weiteren Filterung von Signalen

  • Optimierung der Parameter für die Durchschnittslinie-Periode auf eine optimale Kombination

  • angemessene Erleichterung der Eintrittsbedingungen, z. B. die Aufnahme von K-Linien

Optimierungsrichtung

Diese Strategie könnte in folgenden Bereichen verbessert werden:

  1. Test mehr Kombinationen von linearer Periode und optimieren Parameter

Verschiedene Kombinationen in verschiedenen Zeitabschnitten bieten die beste Kombination für verschiedene Sorten

  1. Hinzufügen von Zweitbestätigungsbedingungen bei der Kreuzung

Die MACD-Bewegung bei einer Kreuzung

  1. Optimierung der Stop-Loss-Methode und Vermeidung von vorzeitigen Stop-Losses

Die Entscheidung über den Ausstieg kann anhand von Beweismitteln auf dem PostForm123 getroffen werden.

  1. Filter für kurze und lange Zeiträume

Kurze Zyklen mit strengeren Filterbedingungen, lange Zyklen mit lockeren

  1. Berücksichtigung verschiedener Kombinationen von Parametern für verschiedene Zeiträume

Markt-Parameter-Optimierung für unterschiedliche Zeiträume

Zusammenfassen

Die Strategie beurteilt die Richtung des Trends durch die Beobachtung der Kreuzung von mehreren Zeitrahmen, um einen größeren Trend zu entdecken. Dies kann effektiv die kurzfristige Lärm, Focus123123 größeren Rhythmus zu filtern.

Strategiequellcode
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 7d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

//Run script on a long interval gives better result for e.g. 1 Day
//Plots The Majority of Moving Averages
//Defaults to Current Chart Time Frame --- But Can Be Changed to Higher Or Lower Time Frames
//2nd MA Capability with Show Crosses Feature
//study(title="CM_Ultimate_MA_MTF", shorttitle="CM_Ultimate_MA_MTF", overlay=true)
strategy("Stratergy CM_Ultimate_MA_MTF", shorttitle = "Stratergy CM_Ultimate_MA_MTF", overlay = true) 
//,default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//inputs
src = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above",  defval="D")
len = input(20, title="Moving Average Length - LookBack Period")
atype = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")
cc = input(true,title="Change Color Based On Direction?")
smoothe = input(2, minval=1, maxval=10, title="Color Smoothing - 1 = No Smoothing")
doma2 = input(false, title="Optional 2nd Moving Average")
len2 = input(50, title="Moving Average Length - Optional 2nd MA")
atype2 = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")
cc2 = input(true,title="Change Color Based On Direction 2nd MA?")
warn = input(false, title="***You Can Turn On The Show Dots Parameter Below Without Plotting 2nd MA to See Crosses***")
warn2 = input(false, title="***If Using Cross Feature W/O Plotting 2ndMA - Make Sure 2ndMA Parameters are Set Correctly***")
sd = input(false, title="Show Dots on Cross of Both MA's")


res = useCurrentRes ? timeframe.period : resCustom
//hull ma definition
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
//TEMA definition
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
tema = 3 * (ema1 - ema2) + ema3

avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : tema
//2nd Ma - hull ma definition
hullma2 = wma(2*wma(src, len2/2)-wma(src, len2), round(sqrt(len2)))
//2nd MA TEMA definition
sema1 = ema(src, len2)
sema2 = ema(sema1, len2)
sema3 = ema(sema2, len2)
stema = 3 * (sema1 - sema2) + sema3

avg2 = atype2 == 1 ? sma(src,len2) : atype2 == 2 ? ema(src,len2) : atype2 == 3 ? wma(src,len2) : atype2 == 4 ? hullma2 : atype2 == 5 ? vwma(src, len2) : atype2 == 6 ? rma(src,len2) : tema

out = avg 
out_two = avg2

out1 = security(syminfo.tickerid, res, out)
out2 = security(syminfo.tickerid, res, out_two)

ma_up = out1 >= out1[smoothe]
ma_down = out1 < out1[smoothe]

col = cc ? ma_up ? lime : ma_down ? red : aqua : aqua
col2 = cc2 ? ma_up ? lime : ma_down ? red : aqua : aqua

circleYPosition = out2
chk=col==red?1:0

if (not na(chk))
    if (chk[1]==1 and chk==0)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    else
        strategy.exit("RsiLE")

    if (chk[1]==0 and chk==1)
        strategy.entry("RsiSE", strategy.short, comment="RsiLE")
    else
        strategy.exit("RsiSE")
        
plot(out1, title="Multi-Timeframe Moving Avg", style=line, linewidth=4, color = col)
plot(doma2 and out2 ? out2 : na, title="2nd Multi-TimeFrame Moving Average", style=circles, linewidth=4, color=col2)
plot(sd and cross(out1, out2) ? circleYPosition : na,style=cross, linewidth=5, color=yellow)