Diese Strategie implementiert den Trend nach dem Handel mit dem MACD-Indikator. Sie identifiziert die Trendrichtung mit MACD und mit dynamischem Stop-Loss, um Gewinne zu erzielen.
Berechnen Sie den Indikator Fast MA, Slow MA und MACD. Fast MA verwendet 12-Perioden-EMA, Slow MA verwendet 26-Perioden-EMA. MACD ist der Unterschied zwischen Fast und Slow MA.
Setzen Sie Kauf- und Verkaufslinien. Erzeugen Sie ein Kaufsignal, wenn der MACD über die Kauflinie überschreitet, generieren Sie ein Verkaufssignal, wenn der MACD unterhalb der Verkaufslinie überschreitet.
Der anfängliche Stop-Loss wird auf 95% des Einstiegspreises gesetzt und wird mit zunehmendem Kurs nach oben gehen.
Schließposition, wenn ein Stop-Loss-Signal ausgelöst oder ein Rückschaltsignal angezeigt wird.
Die Verwendung des MACD zur Identifizierung der Trendrichtung kann Trends effektiv verfolgen.
Der dynamische Stop-Loss kann die Gewinne kontinuierlich sichern und vergrößerte Verluste vermeiden.
Die Strategielogik ist einfach und klar, leicht verständlich und automatisiert für den Quant-Trading.
Der MACD hat einen Verzögerungseffekt, kann eine kurzfristige Trendumkehr verpassen.
Ein zu lockeres Stop-Loss-Set kann einige Gewinne verpassen, ein zu enges Stop-Loss-Set kann frühzeitig ausfallen.
MACD-Parameter und Kauf-/Verkaufslinien müssen ständig getestet und optimiert werden.
Funktioniert besser auf einem Trendmarkt, kann Verluste auf einem unruhigen Markt haben.
Optimieren Sie die MACD-Parameter, um die beste Kombination zu finden.
Verschiedene Stop-Loss-Methoden wie feste Punkte, ATR-basierte usw. testen.
Zusätzliche Filterbedingungen unter Verwendung anderer Indikatoren, um falsche Signale zu vermeiden, z. B. Bollinger Bands, RSI usw.
Kombination mit Trend-Identifikationswerkzeugen, dynamische Anpassung der Strategieparameter basierend auf dem Trend gegenüber dem Bereichsmarkt.
Die Strategie hat eine klare Logik, MACD zu verwenden, um Trends und dynamischen Stop-Loss zu verfolgen, um Gewinne zu erzielen. Es kann Trending-Märkte effektiv verfolgen. Aber MACD hat eine verzögerte Ausgabe, und Stop-Loss-Punkte müssen optimiert werden. Der nächste Schritt besteht darin, Parameter weiter zu testen, den Stop-Loss-Mechanismus zu optimieren, Filter mit anderen Indikatoren hinzuzufügen, um ihn unter verschiedenen Marktbedingungen robust zu machen und die Stabilität zu verbessern.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(shorttitle = "EURUSD MACD", title = "EURUSD MACD") fastMA = input(title="Fast moving average", defval = 12, minval = 7) slowMA = input(title="Slow moving average", defval = 26, minval = 7) lastColor = yellow [currMacd,_,_] = macd(close[0], fastMA, slowMA, 9) [prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9) plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red plot(currMacd, style = histogram, color = plotColor, linewidth = 3) plot(0, title = "Zero line", linewidth = 1, color = gray) //MACD // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9) sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) ///END OF MACD //Long and Close Long Lines linebuy = input(title="Enter Long", type=float, defval=-0.0002) linesell = input(title="Close Long", type=float, defval=0.0001) //Plot Long and Close Long Lines plot(linebuy,color=green),plot(linesell,color=red) //Stop Loss Input sl_inp = input(0.05, title='Stop Loss %', type=float)/100 //Order Conditions longCond = crossover(currMacd, linebuy) exitLong = crossover(currMacd, linesell) stop_level = strategy.position_avg_price * (1 - sl_inp) //Order Entries strategy.entry("long", strategy.long, when=longCond==true) strategy.close("long", when=exitLong==true) strategy.exit("Stop Loss", stop=stop_level)