MACD-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-29 15:14:18
Tags:

img

Übersicht

Die MACD Trend Following Strategie ist eine quantitative Handelsstrategie, die auf dem MACD-Indikator basiert. Die Hauptidee dieser Strategie besteht darin, die goldenen Kreuz- und Todeskreuzsignale des MACD-Indikators zu verwenden, um die Richtung des Trends zu bestimmen und zu geeigneten Zeiten Long- oder Short-Positionen zu etablieren. Wenn die MACD-Linie über die Signallinie und über die Null-Achse kreuzt, wird eine Long-Position geöffnet; wenn die MACD-Linie unter die Signallinie und unter die Null-Achse kreuzt, wird eine Short-Position geöffnet. Die Strategie verwendet den jüngsten Tiefpunkt als Stop-Loss für Long-Positionen und den jüngsten Höchstpunkt als Stop-Loss für Short-Positionen. Die Schließbedingung ist, wenn die MACD-Linie die Signallinie in entgegengesetzter Richtung kreuzt.

Strategieprinzip

Der Kernprinzip der MACD Trend Following Strategie besteht darin, den MACD-Indikator zu verwenden, um die Entstehung und Umkehrung von Trends zu erfassen. Der MACD-Indikator besteht aus der Differenz zwischen zwei gleitenden Durchschnitten (schnell und langsam) und wird in Verbindung mit einer Signallinie verwendet, um Handelssignale zu generieren. Wenn die MACD-Linie über die Signallinie und über die Null-Achse kreuzt, zeigt sie, dass sich ein Aufwärtstrend bildet und eine Long-Position geöffnet wird. Wenn die MACD-Linie unter die Signallinie und unter die Null-Achse kreuzt, zeigt sie, dass sich ein Abwärtstrend bildet und eine Short-Position geöffnet wird. Die Strategie verwendet den jüngsten signifikanten Tiefpunkt als Stop-Loss für lange Positionen und den jüngsten signifikanten Höchstpunkt als Stop-Loss für Short-Positionen, um das Risiko zu kontrollieren. Wenn die MACD-Linie die Linie in entgegengesetzte Richtung

Strategische Vorteile

  1. Die MACD Trend Following Strategie kann Trendchancen effektiv erfassen, indem sie Positionen zu Beginn der Trendbildung einstellt und die Dynamik des Trends voll ausnutzt.

  2. Die Strategie verwendet sowohl das MACD-Gold/Death Cross als auch die Null-Achse als Filterbedingungen, die falsche Signale in einem schwankenden Markt besser filtern können.

  3. Die Strategie verwendet die jüngsten signifikanten Höchst- und Tiefpunkte als Stop-Loss-Niveaus, die das Risikopositionsniveau eines einzelnen Handels kontrollieren können.

  4. Die Strategielogik ist klar, leicht verständlich und umsetzbar, so dass sie für Anfänger geeignet ist.

Strategische Risiken

  1. Der MACD-Indikator ist im Wesentlichen ein Rückstandsindikator, der zu Beginn von Trendumkehrungen erhebliche Rückgänge erleiden kann.

  2. Die Strategie kann zu häufigen Geschäften in einem schwankenden Markt führen, was zu hohen Transaktionskosten führt.

  3. Die Festlegung der Stop-Loss-Levels hängt von den jüngsten signifikanten Höchst- und Tiefpunkten ab, die in bestimmten Situationen zu vorzeitigen oder verzögerten Stop-Losss führen können.

  4. Die Strategie berücksichtigt nicht die Positionsgröße und das Geldmanagement, die aufgrund spezifischer Umstände in praktischen Anwendungen optimiert werden müssen.

Strategieoptimierungsrichtlinien

  1. Es sollte in Betracht gezogen werden, andere technische Indikatoren oder Preisverhaltensmuster als Filterbedingungen einzuführen, um die Zuverlässigkeit und Genauigkeit der Signale zu verbessern.

  2. Optimierung der Methode zur Festlegung von Stop-Loss-Levels, z. B. mit ATR oder prozentualen Stop-Loss, um das Risiko besser zu kontrollieren.

  3. Einführung von Positionsgrößen- und Geldmanagementmechanismen zur dynamischen Anpassung der Positionsgrößen auf der Grundlage von Marktvolatilität und Kontokapital.

  4. Optimierung und Anpassung von Parametern für verschiedene Märkte und Handelsinstrumente, um die geeignetsten Parameterkombinationen zu finden.

Zusammenfassung

Die MACD Trend Following Strategie ist eine einfache und effektive quantitative Handelsstrategie, die Trendchancen erfasst, indem sie die Eigenschaften des MACD-Indikators nutzt. Die Strategie hat eine klare Logik, ist leicht zu verstehen und umzusetzen, so dass sie für Anfänger geeignet ist. In praktischen Anwendungen muss jedoch auf die Risikokontrolle geachtet werden und sollte mit anderen Methoden zur Optimierung und Verbesserung kombiniert werden, um eine robustere Handelsleistung zu erzielen.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true)
// switch = input(true, title="Enable MACD Bar Color")
// X001TK MACD trendfollow Strategy
//
// 
// This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition.
//
//
// This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero
//
// You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short
// 
//
// Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition 
//
// 
// 
//
// Input
fastMAlen = input(3, minval=1, title="MACD fast moving average")
slowMAlen = input(9,minval=1, title="MACD slow moving average")
signalMACDlen = input(5,minval=1, title="MACD signal line moving average")
// switch = input(true, title="Enable MACD Bar Color")
length = input(1, minval=1)



// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2002, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)



// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 00, 00)        // backtest finish window
window()  => true // create function "within window of time"

// MACD Calculation
MACD = ema(close, fastMAlen) - ema(close, slowMAlen)
signalMACD = ema(MACD, signalMACDlen)
delta = MACD - signalMACD
fastMA = ema(close,fastMAlen)
slowMA = ema(close,slowMAlen)


// Colors
//bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray :  gray 
//barcolor(switch?bartrendcolor:na)

barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na
barcolor(color=barcolour)


// === STRATEGY ===
// conditions

longCond =  MACD > signalMACD and MACD > 0 
XlongCond = MACD < signalMACD 
ShortCond = MACD < signalMACD and MACD < 0 
XShortCond = MACD > signalMACD 





strategy.entry("long", strategy.long, when=longCond==true and window()==true )
//strategy.exit(id="Close Long", stop=longStop)//, limit=longTake)
strategy.close("long", when=XlongCond==true and window()==true)
strategy.entry("short", strategy.short,  when=ShortCond==true and window()==true )
//strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake)
strategy.close("short", when=XShortCond==true and window()==true)

// === /STRATEGY ===

Mehr