Die Dual Moving Average Golden Cross Quantitative Strategy ist eine auf technischen Indikatoren basierende quantitative Handelsstrategie. Sie bestimmt Markttrends durch Berechnung zweier gleitender Durchschnitte verschiedener Perioden und ermöglicht einen risikoarmen Handel. Wenn der kurze Zeitraum gleitender Durchschnitt über den längeren Zeitraum gleitender Durchschnitt kreuzt, wird ein goldenes Kreuzsignal für den Long-Takt erzeugt. Wenn der kürzere gleitende Durchschnitt unter den längeren kreuzt, wird ein Todeskreuzsignal für den Short-Takt erzeugt. Diese Strategie enthält auch Preiskanalindikatoren, um falsche Breaks zu vermeiden.
Die Dual Moving Average Golden Cross Quantitative Strategy basiert auf der Theorie des gleitenden Durchschnitts. Gleitende Durchschnitte können effektiv Marktlärm filtern und langfristige Trendrichtungen anzeigen. Wenn der kurzfristige gleitende Durchschnitt über den längerfristigen gleitenden Durchschnitt kreuzt, zeigt er eine Aufwärtsumkehr des Marktes an und ist ein Kaufsignal. Wenn der kürzere gleitende Durchschnitt unter den längeren kreuzt, zeigt er eine Abwärtsumkehr an und ist ein Verkaufssignal. Diese Strategie legt zwei Gruppen von gleitenden Durchschnitten fest - die erste sind die 2-Tage- und 3-Tage-gleitenden Durchschnitte, und die zweite ist der 420-Tage-gleitende Durchschnitt. Ein 2-Tage-Kaufsignal wird erzeugt, wenn der 3-Tage-gleitende Durchschnitt überschreitet, und ein Verkaufssignal wird erzeugt, wenn er untersteigt. Der 420-Tage-gleitende Durchschnitt wird verwendet, um den langfristi
Die wichtigste Logik des Strategiecodes ist:
Die spezifischen Grundsätze sind:
Es erfasst Trendumkehrchancen nach kurzfristigen Anpassungen, indem es Wendepunkte mit doppelten gleitenden Durchschnittskreuzungen bestimmt und Parameterfilter setzt, um falsche Trades zu vermeiden.
Die doppelte gleitende durchschnittliche Goldene Kreuz-Quantitative Strategie hat folgende Vorteile:
Die doppelte gleitende durchschnittliche Goldene Kreuz-Quantitative-Strategie birgt außerdem folgende Risiken:
Zur Verringerung der Risiken können folgende Methoden angewendet werden:
Die doppelte gleitende Durchschnittswert-Golden-Cross-Quantitative-Strategie kann auch in folgenden Aspekten optimiert werden:
Optimierung der Parameter: Anpassung der gleitenden Durchschnitts- und Kanalindikatorparameter, um die optimale Parameterkombination auszuwählen.
Auswahl des Zeitpunktes: Wählen Sie die am besten geeigneten gleitenden Durchschnittsparameter anhand der verschiedenen Produktmerkmale.
Optimierung der Stop-Loss-Strategie: Dynamische Haltestellen, Hinterhaltestellen usw. eingestellt, um Rückhaltestellen zu vermeiden.
Optimierung des Handels in Richtung: Einbeziehung von Trendindikatoren und Annahme von Trendoperationen zur Verhinderung des Gegentrend-Handels.
Kombination aus maschinellem Lernen: Verwenden Sie LSTM, RNN und andere Deep-Learning-Modelle zur Beurteilung der Signalqualität und zur Bestimmung des Einstiegszeitpunkts.
Die Dual Moving Average Golden Cross Quantitative Strategy bestimmt kurzfristige Preistrends durch das einfache Prinzip der gleitenden Durchschnitts-Crossovers. Die Einstellung von Kanalindikatoren filtert effektiv falsche Signale. Die Strategie hat eine einfache Logik und ist einfach umzusetzen. Flexible Parameteranpassungen sind möglich, wobei die Performance im Live-Handel relativ gut bestätigt wurde. Es ist eine empfohlene quantitative Strategie, die durch Parameteroptimierung, Stop-Loss-Optimierung, maschinelles Lernen und mehr verbessert werden kann, um noch bessere Performance zu erzielen.
/*backtest start: 2023-12-24 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Indicator420 by SeaSide420 strategy("Indicator420 strategy", overlay=true) q=input(title="HullMA",defval=420) z=input(title="HullMA cross",defval=3) a=input(title="VWMA",defval=14) rvwma=vwma(close,round(a)) rvwma2=vwma(close,round(a*2)) rvwma3=vwma(close,round(a*3)) n2ma=2*wma(close,round(z/2)) nma=wma(close,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(close[1],round(z/2)) nma1=wma(close[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(close[2],round(q/2)) nma2=wma(close[2],q) diff2=n2ma2-nma2 sqn2=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) b=n1>n2?red:lime c=n1>n2?green:red d=n3>rvwma3?red:green e=rvwma2>rvwma3?green:red f=n1>n2?red:green //plot(rvwma3, color=e, linewidth=1) plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1) plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = n1<n2 if (closelong) strategy.close("Long") closeshort = n1>n2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3 if (shortCondition) strategy.entry("Short",strategy.short)