Multi-Time Frame MACD Strategie


Erstellungsdatum: 2023-11-28 15:33:35 zuletzt geändert: 2023-11-28 15:33:35
Kopie: 0 Klicks: 1201
1
konzentrieren Sie sich auf
1617
Anhänger

Multi-Time Frame MACD Strategie

Überblick

Die Multi Timeframe MACD-Strategie ist eine quantitative Handelsstrategie, bei der MACD-Indikatoren verwendet werden, um Trends über mehrere Zeiträume zu verfolgen. Die Strategie sendet Handelssignale aus, indem sie die MACD-Indikatoren über verschiedene Zeiträume berechnet, um zu beurteilen, ob die Preisentwicklung zwischen den verschiedenen Perioden übereinstimmt.

Strategieprinzip

Die Kernlogik der Strategie besteht darin, die MACD-Indikatoren über mehrere Zeitrahmen zu berechnen: 3 Minuten, 5 Minuten, 15 Minuten und 30 Minuten. Zuerst wird der MACD-Indikator für jeden Zeitrahmen berechnet, um die Preisentwicklung für diesen Zeitrahmen zu bestimmen (aufwärts oder abwärts).

  1. Das ist ein Kaufsignal, wenn die Preise in allen Zeitrahmen steigen.
  2. Ein Verkaufssignal wird erzeugt, wenn die Preise in allen Zeitrahmen fallen.

Durch die Beurteilung von Trends über einen Zeitrahmen hinweg kann kurzfristiger Marktlärm effizient ausgeschaltet und Handelssignale zuverlässiger gemacht werden.

Strategische Vorteile

Diese Strategie hat folgende Vorteile:

  1. Trends werden über Zeiträume erfasst, um Geräusche zu filtern und Handelssignale zu verlässlichen.
  2. Die MACD-Indikatorparameter können an unterschiedliche Marktbedingungen angepasst werden.
  3. Flexible Konfiguration erfordert ein umfassendes Zeitfenster, eigene Handelsregeln.

Strategische Risiken und Lösungen

Die Gefahren dieser Strategie sind:

  1. Es ist nicht immer möglich, dass ein Teil der Umwälzungen über alle Zeitrahmen hinweg einheitlich sind.
  2. Die falsche Einstellung der MACD-Indikatorparameter kann zu einer schlechten Handelssignalwirkung führen.

Die entsprechende Lösung:

  1. Die Komplexität der Beurteilungsregeln kann angemessen gelockert werden, um eine Umkehrung der Preise in den einzelnen Zeitrahmen zu ermöglichen und mehr Chancen zu nutzen.
  2. Die MACD-Indikatorparameter müssen an die jeweiligen Märkte angepasst werden, um die Handelssignale besser auf die aktuelle Situation abzustimmen.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Erhöhung oder Verringerung der Anzahl der Zeitrahmen, in denen ein umfassendes Urteilsvermögen erforderlich ist, um die optimale Kombination zu finden;
  2. Verschiedene MACD-Indikator-Parameter-Einstellungen werden getestet.
  3. Die Ein- und Ausstiegsregeln werden an die tatsächlichen Ereignisse angepasst.

Zusammenfassen

Die MACD-Strategie nutzt die Trendentscheidungsfunktion des MACD-Indikators, um die Preisentwicklung über die Zeitrahmen hinweg zu erfassen. Sie kann Geräusche effektiv filtern und die Signalqualität verbessern. Die Strategie kann durch Parameteranpassung und Regeloptimierung flexibel an verschiedene Sorten und Umgebungen angepasst werden.

Strategiequellcode
/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("3", "Timeframe 1")
TF_2_time = input("5", "Timeframe 2")
TF_3_time = input("15", "Timeframe 3")
TF_4_time = input("30", "Timeframe 4")

fastLen = input(title="Fast Length",  defval=12)
slowLen = input(title="Slow Length",  defval=26)
sigLen  = input(title="Signal Length",  defval=9)
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor

TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)