
Cette stratégie est un système de trading automatisé basé sur la théorie de la double rupture de la courbe, combinée avec des fonctions de gestion du risque. Le cœur de la stratégie utilise une moyenne mobile indicielle de 21 cycles et 50 cycles (EMA) comme indicateur de signal, pour juger des changements de tendance du marché par la traversée de la courbe et exécuter automatiquement les transactions. Le système intègre des fonctionnalités de stop loss (stop loss) et de stop take profit (take profit) pour contrôler efficacement les risques et les objectifs de rendement de chaque transaction.
La logique de base de la stratégie est basée sur la théorie classique de l’équilibre des lignes dans l’analyse technique. Lorsque l’EMA à courte période (de 21 jours) est en hausse et traverse l’EMA à longue période (de 50 jours), le système le reconnaît comme un signal de hausse et ouvre une position en hausse. Lorsque l’EMA à courte période est en baisse et traverse l’EMA à longue période, le système le reconnaît comme un signal de baisse et ouvre une position en hausse.
Il s’agit d’une stratégie de négociation automatisée conçue de manière rationnelle et logique. En combinant des signaux de croisement homogènes et une gestion rigoureuse des risques, la stratégie fournit un cadre technique fiable pour saisir les opportunités de tendances du marché tout en garantissant la sécurité des transactions. Bien qu’il existe une certaine marge d’optimisation, l’infrastructure de la stratégie est intacte et adaptée au développement et à l’amélioration ultérieurs des modules de base du système de négociation quantifié.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)
// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)
// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)
// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")
// Calculate tick size in points
var float tickSize = syminfo.mintick
// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize
shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize
// Execute trades on crossover signals
if (bullishCross)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")