
Die Strategie ist ein Trend-Tracking-Trading-System, das auf einem 33-Zyklus-Index-Moving Average (EMA) basiert. Es identifiziert Markttrendänderungen durch die Kreuzbeziehung von Preis und EMA und setzt Stop-Loss-Positionen in Verbindung mit schwankenden Höhen und Tiefen, um die Dynamik des Trends zu verfolgen und Risiken zu kontrollieren.
Die Kernlogik der Strategie besteht darin, die Richtung des Trends zu bestimmen, indem sie die Kreuzbeziehung des Preises zu den 33-Zyklen-EMA beobachtet. Wenn der Schlusskurs die EMA nach oben durchbricht und sich stabilisiert, wird ein Mehrfachsignal ausgelöst; wenn der Schlusskurs die EMA nach unten durchbricht und sich stabilisiert, wird ein Abbruchsignal ausgelöst. Die Strategie verwendet die Höhen und Tiefen der 14-Zyklen als Referenz für die Volatilität und setzt die höchsten Punkte als Mehrfachstopps und die niedrigsten Punkte als Mehrfachstopps ein.
Es ist eine strukturierte, logisch klare Trend-Tracking-Strategie. Durch die EMA-Kreuzung von Trends und die Risikomanagement mit schwankenden Hoch-Low-Punkten hat es eine gute Praxis. Obwohl es einige inhärente Einschränkungen gibt, kann die Stabilität und Profitabilität der Strategie durch die empfohlene Optimierungsrichtung weiter verbessert werden.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GlenMabasa
//@version=6
strategy("33 EMA Crossover Strategy", overlay=true)
// Input for the EMA length
ema_length = input.int(33, title="EMA Length")
// Calculate the 33-day Exponential Moving Average
ema_33 = ta.ema(close, ema_length)
// Plot the 33 EMA
plot(ema_33, color=color.blue, title="33 EMA", linewidth=2)
// Buy condition: Price crosses and closes above the 33 EMA
buy_condition = ta.crossover(close, ema_33) and close > ema_33
// Sell condition: Price crosses or closes below the 33 EMA
sell_condition = ta.crossunder(close, ema_33) or close < ema_33
// Swing high and swing low calculations
swing_high_length = input.int(14, title="Swing High Lookback")
swing_low_length = input.int(14, title="Swing Low Lookback")
swing_high = ta.highest(high, swing_high_length) // Previous swing high
swing_low = ta.lowest(low, swing_low_length) // Previous swing low
// Profit target and stop loss for buys
buy_profit_target = swing_high
buy_stop_loss = swing_low
// Profit target and stop loss for sells
sell_profit_target = swing_low
sell_stop_loss = swing_high
// Plot buy and sell signals
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy logic for backtesting
if (buy_condition)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=buy_profit_target, stop=buy_stop_loss)
if (sell_condition)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=sell_profit_target, stop=sell_stop_loss)