Goldene Kreuz-Todeskreuz-bewegliche Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-30 14:42:09
Tags:

img

Übersicht: Diese Strategie implementiert Gold-Cross- und Death-Cross-Handel auf der Grundlage von drei gleitenden Durchschnitten mit verschiedenen Perioden. Es geht lang, wenn der kurze Zeitraum MA über den langen Zeitraum MA überschreitet, und geht kurz, wenn der kurze Zeitraum MA unter den langen Zeitraum MA überschreitet. Die Trendrichtung wird durch die Trend-MA-Linie bestimmt.

Strategie Logik:

  1. Definition von drei MA - kurzfristige MA, langfristige MA und TrendMA. Die Perioden sind 20, 200 bzw. 50.

  2. Ein Kaufsignal wird erzeugt, wenn der kurzfristige MA über den langfristigen MA überschreitet. Ein Verkaufssignal wird erzeugt, wenn der kurzfristige MA unter den langfristigen MA überschreitet.

  3. Überprüfen Sie, ob sowohl die kurzen als auch die langen MA über dem Trend-MA liegen. Wenn dies nicht der Fall ist, wird das Signal ausgefiltert, um den Handel gegen den Trend zu vermeiden.

  4. Setzen Sie Stop Loss und nehmen Sie Profit als Prozentsatz des Einstiegspreises.

  5. Zeichnen Sie die MA-Kreuzungspunkte auf, um Eingangssignale zu visualisieren.

Vorteile:

  1. Einfache und intuitive Strategielogik, leicht zu verstehen und umzusetzen.

  2. Kann mittelfristige Trends effektiv erfassen und mit der Dynamik handeln.

  3. Filterung mit dem Trend vermeidet den Handel gegen den Trend.

  4. Die Zulassungsfristen können an unterschiedliche Marktbedingungen angepasst werden.

  5. Anpassbare Stop-Loss- und Take-Profit-Verfahren zur Risikokontrolle.

Risiken:

  1. Scharfe volatile Bewegungen können einen Stop-Loss auslösen.

  2. Größere Verluste, wenn sich der Trend umkehrt.

  3. Eine unsachgemäße Einstellung der Parameter kann zu Überhandelungen oder fehlenden Chancen führen.

  4. Die Transaktionskosten müssen berücksichtigt werden.

Verbesserungen:

  1. Fügen Sie einen Volatilitätsfilter wie ATR hinzu, um falsche Signale zu vermeiden.

  2. Verwenden Sie maschinelles Lernen, um Parameter dynamisch zu optimieren.

  3. Fügen Sie mehr Indikatoren wie MACD hinzu, um den Trend zu bestimmen.

  4. Implementieren Sie einen Trailing Stop Loss, um Gewinne zu erzielen.

  5. Backtest, um optimale Stop-Loss- und Take-Profit-Niveaus zu finden.

Schlussfolgerung:

Die Strategie erfasst Trends effektiv mit klarer Logik und einfacher Ausführung. Risiken mit Trendfilter, Stop-Loss und Take-Profit kontrollieren. Parameter-Tuning erfordert Optimierung für die Marktbedingungen. Mehr Indikatoren können die Leistung verbessern. Geeignet für den mittelfristigen Trendhandel.


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

//@version=5
strategy("XAU M15", overlay=true)

// Define input parameters
long_length = input.int(64, title="Long MA Length")
short_length = input.int(1, title="Short MA Length")
trend_length = input.int(200, title="Trend MA Length")

// Calculate moving averages
long_ma = ta.sma(close, long_length)
short_ma = ta.sma(close, short_length)
trend_ma = ta.sma(close, trend_length)

// Plot moving averages on chart
plot(long_ma, color=color.blue, title="Long MA")
plot(short_ma, color=color.red, title="Short MA")
plot(trend_ma, color=color.green, title="Trend MA")

// Entry conditions
enterLong = ta.crossover(long_ma, short_ma) and long_ma > trend_ma and short_ma > trend_ma
enterShort = ta.crossunder(long_ma, short_ma) and long_ma < trend_ma and short_ma < trend_ma

if (enterLong)
    strategy.entry("Long", strategy.long)

if (enterShort)
    strategy.entry("Short", strategy.short)

// Exit conditions
exitLong = ta.crossunder(long_ma, short_ma)
exitShort = ta.crossover(long_ma, short_ma)

if (exitLong)
    strategy.close("Long")

if (exitShort)
    strategy.close("Short")

// Set stop loss and take profit levels
long_stop_loss_percentage = input(1, title="Long Stop Loss (%)") / 100
long_take_profit_percentage = input(3, title="Long Take Profit (%)") / 100

short_stop_loss_percentage = input(1, title="Short Stop Loss (%)") / 100
short_take_profit_percentage = input(3, title="Short Take Profit (%)") / 100

strategy.exit("Take Profit/Stop Loss", "Long", stop=close * (1 - long_stop_loss_percentage), limit=close * (1 + long_take_profit_percentage))
strategy.exit("Take Profit/Stop Loss", "Short", stop=close * (1 + short_stop_loss_percentage), limit=close * (1 - short_take_profit_percentage))

plotshape(series=enterLong, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(series=enterShort, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)


Mehr