Die doppelte gleitende Durchschnittsstrategie ist eine häufig verwendete kurzfristige Handelsstrategie. Sie beurteilt die Markttrendrichtung, indem sie gleitende Durchschnitte verschiedener Zeiträume berechnet und diese verwendet, um Trades einzugehen. Wenn der kurze Zeitraum gleitende Durchschnitt über dem langen Zeitraum gleitenden Durchschnitt kreuzt, gehen Sie lang. Wenn der kurze Zeitraum gleitende Durchschnitt unter dem langen Zeitraum gleitenden Durchschnitt kreuzt, gehen Sie kurz.
Die Kernlogik dieser Strategie lautet:
Berechnen Sie zwei gleitende Durchschnitte für verschiedene Perioden, einer ist der langfristige MA, der andere der kurze MA. Hier werden der Eröffnungs- und der Schlusskurs-MA verwendet.
Beurteilen Sie, ob der kurze Zeitraum MA über den langen Zeitraum MA gekreuzt hat. Wenn der kurze MA über den langen MA überschreitet, zeigt dies einen Aufwärtstrend auf dem Markt an und wir können lang gehen. Wenn der kurze MA unter den langen MA überschreitet, zeigt er einen Abwärtstrend an und wir können kurz gehen.
Wenn der kurzfristige MA über den langfristigen MA überschreitet, gehen Sie lang.
Setzen Sie Stop Loss und Take Profit basierend auf den tatsächlichen Marktbedingungen.
Die Strategie nutzt die Trendbeurteilungsfähigkeit von MA, um die Beziehung zwischen kurzfristigen und langfristigen Trends zu bestimmen, um kurzfristige Bewegungen zu erfassen.
Die doppelte MA-Strategie weist folgende Vorteile auf:
Die Logik ist einfach und leicht zu verstehen und umzusetzen.
Es gibt klare Ein- und Ausstiegskriterien.
Die Zulassungsfrist kann an unterschiedliche Marktbedingungen angepasst werden.
Es erfasst sowohl den Trend als auch die Umkehrung des Durchschnitts, so dass es von mittelfristigen Bewegungen profitieren kann.
Es gibt eine Stop-Loss-Logik zur Risikokontrolle.
Die Strategie der doppelten Zulassung birgt auch einige Risiken:
Der Stop-Loss kann häufig während von Range-bound-Märkten ausgelöst werden.
Bei volatilen Märkten können MA-Signale zu häufig auftreten und es schwierig machen, Positionen zu halten.
Die MAs selbst haben Verzögerungen und können kurzfristige Umkehrmöglichkeiten verpassen.
Für die Wirksamkeit der Strategie müssen die MA-Perioden optimiert werden.
MA-Kreuzungen haben eine gewisse Verzögerung, was zu verzögerten Einträgen führt.
Einige Möglichkeiten zur Verbesserung dieser Strategie:
Optimierung der MA-Perioden für verschiedene Marktbedingungen durch Backtesting.
Zusätzliche Indikatoren können als Filter verwendet werden, um Whipsaws auf den Märkten zu vermeiden.
Hinzufügen von Indikatoren für die Trendstärke, um den Handel zu vermeiden, wenn kein klarer Trend vorliegt.
Betrachten Sie Volumenindikatoren, um die Abstandsrichtung zu beurteilen.
Optimieren Sie den Stop-Loss in der Nähe der wichtigsten Unterstützungs-/Widerstandsniveaus.
Die Dual-MA-Strategie ist eine einfache kurzfristige Strategie, die auf MA-Kreuzungen basiert, um den Trend zu bestimmen. Die Vorteile sind seine Einfachheit und Benutzerfreundlichkeit. Die Nachteile sind, dass es durch unterschiedliche Märkte beeinflusst werden kann und Verzögerungen hat. Wir können es durch Parameter-Tuning, Filter usw. optimieren, um es für komplexe Marktumgebungen robuster zu machen.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("GetTrendStrategy timing", overlay=true) tim=input('370') ////////////////////////////////////////////////////////////////////// // Component Code Start testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(10, "Backtest Start Month") testStartDay = input(25, "Backtest Start Day") testStartHour = input(7, "Backtest Start Hour") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0) testStopYear = input(2017, "Backtest Stop Year") testStopMonth = input(10, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testStopHour = input(13, "Backtest stop Hour") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStartHour,0) testPeriod() => true // Component Code Stop ////////////////////////////////////////////////////////////////////// out1 = request.security(syminfo.tickerid, tim, open) out2 = request.security(syminfo.tickerid, tim, close) plot(out1,color=red) plot(out2,color=green) longCondition = crossover(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open)) if testPeriod() if (longCondition) strategy.entry("long", strategy.long) shortCondition = crossunder(request.security(syminfo.tickerid, tim, close),request.security(syminfo.tickerid, tim, open)) if testPeriod() if (shortCondition) strategy.entry("short", strategy.short)