
Die Strategie ist ein Trend-Tracking-System, das auf einem viereckigen Index-Moving Average (EMA) basiert, um Markttrends durch Kreuzung und Arraying von 9, 21, 50 und 200-Perioden-EMA zu identifizieren und Risikokontrolle in Verbindung mit Prozentsatzstopps durchzuführen. Die Strategie ermittelt die Richtung der Markttrends, indem sie die Arraying-Reihenfolge der vier Erhebungslinien beurteilt.
Die Strategie nutzt die Index-Moving Averages aus vier verschiedenen Perioden (9, 21, 50, 200) und beurteilt die Markttrends durch die Betrachtung der Beziehung zwischen diesen Erwägungslinien. Wenn die 9. EMA oberhalb der 21. EMA, die 21. EMA oberhalb der 50. EMA und die 50. EMA oberhalb der 200. EMA ist, wird der Markt als stark aufwärtstrend angesehen und mehr Signale ausgegeben.
Es handelt sich um ein strukturiertes Trend-Tracking-Handelssystem, das durch die kombinierte Verwendung von mehreren Durchschnittslinien eine zuverlässige Trend-Erkennungsmechanismus bietet, während ein fester Prozentsatz Stop-Loss verwendet wird, um das Risiko zu kontrollieren. Obwohl das System eine gewisse Rückständigkeit aufweist, kann die Stabilität und Profitabilität der Strategie durch eine vernünftige Parameteroptimierung und die Ergänzung mit zusätzlichen Indikatoren weiter verbessert werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("4 EMA Strategy with Stop Loss", overlay=true)
// Define the EMA lengths
ema1_length = input(9, title="EMA 1 Length")
ema2_length = input(21, title="EMA 2 Length")
ema3_length = input(50, title="EMA 3 Length")
ema4_length = input(200, title="EMA 4 Length")
// Calculate the EMAs
ema1 = ta.ema(close, ema1_length)
ema2 = ta.ema(close, ema2_length)
ema3 = ta.ema(close, ema3_length)
ema4 = ta.ema(close, ema4_length)
// Plot EMAs on the chart
plot(ema1, color=color.blue, title="EMA 9")
plot(ema2, color=color.orange, title="EMA 21")
plot(ema3, color=color.green, title="EMA 50")
plot(ema4, color=color.red, title="EMA 200")
// Define conditions for Buy and Sell signals
buy_condition = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4)
sell_condition = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4)
// Input stop loss percentage
stop_loss_perc = input(2.0, title="Stop Loss %")
// Execute buy signal
if (buy_condition)
strategy.entry("Buy", strategy.long)
// Set stop loss at a percentage below the entry price
strategy.exit("Sell", "Buy", stop=strategy.position_avg_price * (1 - stop_loss_perc / 100))
// Execute sell signal
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Set stop loss at a percentage above the entry price
strategy.exit("Cover", "Sell", stop=strategy.position_avg_price * (1 + stop_loss_perc / 100))