Gleitende Durchschnitt-Crossover-Trendfolgestrategie


Erstellungsdatum: 2024-01-03 17:01:38 zuletzt geändert: 2024-01-03 17:01:38
Kopie: 0 Klicks: 588
1
konzentrieren Sie sich auf
1621
Anhänger

Gleitende Durchschnitt-Crossover-Trendfolgestrategie

Überblick

Die Strategie ermittelt die Preisentwicklung durch die Berechnung der Kreuzung der doppelten Durchschnittslinien und sendet die Kauf- und Verkaufssignale in Kombination mit bestimmten Parameterbeschränkungen. Sie besteht aus drei Teilen: Erstens, die Preisentwicklung wird durch die Berechnung der Kreuzung der schnellen Durchschnittslinien und der langsamen Durchschnittslinien ermittelt. Zweitens, in Kombination mit bestimmten Parameterbeschränkungen, um falsche Geschäfte zu vermeiden.

Strategieprinzip

Der Kern der Strategie liegt in der Berechnung der schnellen und der langsamen Durchschnittslinie. Die schnellen Durchschnittsparameter sind die Hälfte der Durchschnittszyklen und sind empfindlicher auf Reaktionspreisänderungen. Die langsamen Durchschnittsparameter sind die Durchschnittszyklen und die Reaktionspreisänderungen sind stabiler.

Die Strategie setzt außerdem Parameter ein, um falsche Trades zu vermeiden. Wenn die Entscheidungsschwelle eingestellt ist, wird das Handelssignal nur dann ausgesendet, wenn die schnelle und langsame Durchschnittsdifferenz über eine bestimmte Bandbreite hinausgeht. Die Vertrauensparameter werden verwendet, um die Schwankungen zu filtern und nur dann zu signalisieren, wenn die Preisschwankungen eine bestimmte Bandbreite erreichen.

Schließlich wird die Strategie mit einem Stop-Loss-Stopp eingesetzt, um das Risiko zu kontrollieren. Wenn der Openprofit unter dem Stop-Loss-Punkt liegt, wird die Position beendet, wenn der Stop-Loss-Punkt überschritten wird, wird die Position beendet, um den Einzelschaden effektiv zu kontrollieren.

Analyse der Stärken

Der größte Vorteil dieser Strategie liegt in der Kombination von linearen Indikatoren, um Preistrends und Schwankungsmerkmale zu bestimmen. Die doppelte lineare Kreuzung von Preistrends ist eine klassisch wirksame technische Indikatormethode, die nach Optimierung der Parameter den Trend genau erfasst. Der volatile Indikator Confidence filtert die Schwankungen der Märkte effektiv und vermeidet häufige falsche Geschäfte.

Darüber hinaus können die Einstellungen von Parametern wie Entscheidungsmargin, Stop-Loss und Stop-Loss das Handelsrisiko erheblich reduzieren und die Verfolgung von Höhen und Tiefen verhindern.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass die doppelten Mittelwertindikatoren möglicherweise falsche Signale senden. Die schnelle Mittelwertlinie und die langsame Mittelwertlinie sind beide gewichtete Moving Averages, die langsamer auf Überraschungen reagieren und möglicherweise eine kurzfristige Preisumkehr verpassen. In diesem Fall ist eine Doppelfilterung auf das Parameter Vertrauen erforderlich.

Darüber hinaus erhöht sich das Risiko durch eine falsche Einstellung der Stop-Loss-Punkte. Zu hohe oder zu niedrige Stop-Loss-Punkte können zu mehr als erwarteten Verlusten führen. Dies erfordert eine angemessene Einstellung der Parameter entsprechend der Eigenschaften und der Schwankungen der verschiedenen Sorten.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Durchschnittszyklen durch Anpassung der Durchschnittszyklen, um die Preisschwankungen in verschiedenen Zyklen besser modellieren zu können;

  2. Einrichtung von Stop-Loss-Dynamik-Tracking-Mechanismen, die die Dynamik der Stop-Loss-Punkte durch die Berechnung von Schwankungen in Echtzeit ermöglichen;

  3. Mehr maschinelle Lernmodelle, um die Richtung der Preisentwicklung zu bestimmen, mehr historische Daten, um die aktuelle Kursentwicklung zu bestimmen, und weniger Fehlsignale.

Zusammenfassen

Die Strategie ist insgesamt eine klassische, einfache und wirksame Trend-Trading-Strategie. Die Strategie verwendet eine doppelte Gleichgewichts-Kreuzung, die Einstellung der Parameter zur Risikokontrolle, ist konfigurierbar und eignet sich für mehrere Arten von Handel. Die Gesamtwirkung ist besser, wenn intelligentere Entscheidungsmethoden wie maschinelles Lernen eingeführt werden können und sollte weiter untersucht werden.

Strategiequellcode
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Trade Signal", shorttitle="Trade Alert", overlay=true )
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

//alerts
alertcondition(closelong, title='Close Buy Position', message='Close Buy Position')
alertcondition(closeshort, title='Close Short Position', message='Close Short Position')
alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert')
alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert')

//a1=plot(n1,color=c)
//a2=plot(n2,color=c)plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart