
La stratégie utilise le croisement de l’EMA moyenne rapide (cycle 9) et de l’EMA moyenne lente (cycle 21) comme signal d’entrée et, combiné à un stop-loss mobile, permet de verrouiller les bénéfices et d’éviter un retrait excessif.
Un signal d’achat est généré lorsque la ligne EMA rapide franchit la ligne EMA lente en descendant; un signal de vente est généré lorsque la ligne EMA rapide franchit la ligne EMA lente en descendant.
Une fois en place, la stratégie suit en temps réel les prix les plus élevés et déclenche un stop-loss mobile lorsque le prix actuel est inférieur de 2% au prix le plus élevé, bloquant ainsi les bénéfices.
Comment gérer les risques:
La stratégie intègre les avantages du jugement de la tendance et de la gestion des pertes, et permet de contrôler efficacement les risques. Elle peut être adaptée à différents types de marchés et de variétés de transactions grâce à l’ajustement et à l’optimisation des paramètres, ce qui vaut la peine d’être testé.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Crossover with Trailing Stop-Loss", overlay=true)
fastEMA = ema(close, 9)
slowEMA = ema(close, 21)
// Entry conditions
longCondition = crossover(fastEMA, slowEMA)
shortCondition = crossunder(fastEMA, slowEMA)
// Trailing stop-loss calculation
var float trailingStop = na
var float highestHigh = na
if (longCondition)
highestHigh := na
trailingStop := na
if (longCondition and high > highestHigh)
highestHigh := high
if (strategy.position_size > 0)
trailingStop := highestHigh * (1 - 0.02) // Adjust the trailing percentage as needed
// Execute trades
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
// Apply trailing stop-loss to long positions
strategy.exit("Long", from_entry="Long", loss=trailingStop)
// Plot EMAs and Trailing Stop-Loss
plot(fastEMA, color=color.green, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trailingStop, color=color.orange, title="Trailing Stop-Loss", linewidth=2)