MACD- und EMA-Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-28
Tags:

img

Übersicht

Diese Strategie verwendet die Überschneidung der schnellen und langsamen Linien des MACD-Indikators, um Eingänge und Ausgänge zu bestimmen. Der EMA-Indikator wird auch verwendet, um die Trendrichtung zu beurteilen. Es geht lang, wenn die schnelle Linie von unten durch die langsame Linie bricht und der MACD-Wert unter 0 liegt; es geht kurz, wenn die schnelle Linie von oben durch die langsame Linie bricht und der MACD-Wert über 0 liegt. Der Stop-Loss-Ausgang wird auf den EMA-Wert gesetzt, als das Signal erzeugt wurde; der Gewinn wird auf das Zweifache des Einstiegspreises gesetzt.

Strategieprinzip

Wenn die schnelle Linie des MACD die langsame Linie von unten durchbricht und der MACD-Wert unter 0 liegt, zeigt dies an, dass der kurzfristige gleitende Durchschnitt des Preises steigen beginnt und die Dynamik stärker wird, so dass eine Long-Position eingenommen werden kann.

Der EMA-Indikator beurteilt die allgemeine Trendrichtung. Höhere EMA-Werte zeigen einen Aufwärtstrend an, während niedrigere Werte einen Abwärtstrend anzeigen. Die Strategie geht nur lang, wenn die EMA einen Aufwärtstrend anzeigt, und kurz, wenn die EMA einen Abwärtstrend anzeigt, um einen Gegentrendhandel zu vermeiden.

Der Stop-Loss wird auf den EMA-Wert gesetzt, als das Signal erzeugt wurde. Der EMA kann den Trend gut beurteilen. Wenn er als EMA-Wert gesetzt wird, kann die Wahrscheinlichkeit, dass der Stop-Loss durch frühere Tief- oder Höchstpunkte ausgenommen wird, reduziert werden. Der Take-Profit wird auf das Zweifache des Einstiegspreises gesetzt, wodurch ein Risiko-Reward-Verhältnis von 2 erreicht wird.

Analyse der Vorteile

Diese Strategie kombiniert die MACD- und EMA-Indikatoren, um den Eintrittszeitpunkt und die Trendrichtung besser zu bestimmen. Die Stop-Loss-Methode vermeidet das Verfolgen von Anstiegen und Verkaufsabfällen. Die Risiko-Gewinn-Ratio von 2 ist eine relativ konservative Parameter-Einstellung. Die Parameter des MACD-Indikators können angepasst werden, um sich flexibel an Marktveränderungen anzupassen.

Risikoanalyse

Der MACD-Indikator hat eine durchschnittliche Verzögerung, Indikatordrehungen neigen dazu, Preisdrehungen zu verzögern. Die Strategie kann keine spezifischen Einstiegspunkte bestimmen, es gibt eine gewisse Blindheit. Der Stop-Loss wird tendenziell durch volatile Preisbewegungen ausgelöst. Take-Profit-Punkte können vorzeitig oder mit Verzögerung erreicht werden.

Optimierungsrichtlinien

  1. Optimierung der MACD-Parameter, um sie empfindlicher oder stabiler zu machen.
  2. Einbeziehen Sie andere Indikatoren, um genauere Einstiegspunkte zu ermitteln.
  3. Dynamische Anpassung der Stop-Loss- und Take-Profit-Parameter.
  4. Optimierung des Geldmanagements zur Bestimmung einer geeigneteren Positionsgröße.

Zusammenfassung

Diese Strategie kombiniert die MACD- und EMA-Indikatoren, um den Eintrittszeitpunkt und die Trendrichtung zu bestimmen. Sie verwendet einfache und vernünftige Methoden zum Stop-Loss und Take-Profit. Weitere Optimierungen können an den Verzögerungen des MACD, Stop-Loss und Take-Profit-Parametern usw. vorgenommen werden, um bessere Strategieergebnisse zu erzielen.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)


Mehr