
La stratégie est un système de trading automatique basé sur des moyennes mobiles multifonctionnelles ((EMA) qui établit des signaux de trading par des jugements hiérarchisés sur des EMA de 5 cycles, 20 cycles et 50 cycles. La conception du système est unique en ce qu’il utilise des jugements multifonctionnels basés sur des EMA de hauts, de bas et de prix de clôture, et combine un arrêt dynamique des pertes et un mécanisme de suivi des arrêts pour contrôler efficacement les risques tout en bloquant les bénéfices.
La stratégie prend ses décisions de négociation sur la base d’une relation entre les croisements EMA et la position sur plusieurs périodes de temps. Plus précisément:
Il s’agit d’un système de négociation multivarié rigoureusement conçu, qui maîtrise efficacement le risque grâce à des filtres stratifiés et à des arrêts de perte dynamiques. Bien que certains événements rapides puissent être manqués, il est recommandé d’ajuster les paramètres de manière appropriée en fonction des différentes caractéristiques du marché et de prendre en compte l’ajout d’indicateurs auxiliaires tels que le volume des transactions pour améliorer la fiabilité.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Automated EMA Strategy with Hierarchical Conditions", overlay=true)
// Inputs for EMA lengths
length_5 = 5
length_20 = 20
length_50 = 50
// Calculating EMAs
ema_5 = ta.ema(close, length_5)
ema_20_high = ta.ema(high, length_20)
ema_20_low = ta.ema(low, length_20)
ema_20_close = ta.ema(close, length_20)
ema_50 = ta.ema(close, length_50)
// Buy condition: 50 EMA < 20 EMA (Close) < 20 EMA (High) < 20 EMA (Low) < 5 EMA
// and LTP above all EMAs
buy_condition = ema_50 < ema_20_low and ema_20_low < ema_20_close and ema_20_close < ema_20_high and ema_20_high < ema_5 and close > ema_5 and close > ema_20_close and close > ema_20_high and close > ema_20_low and close > ema_50
// Stop-loss and target levels
stop_loss = ema_20_low
// Target condition: Close below 5 EMA
target_condition = close < ema_5
// Check if there's an open position
is_in_position = strategy.position_size > 0
// Execute Buy Signal only if no position is open
if (buy_condition and not is_in_position)
strategy.entry("Buy", strategy.long)
// Exit conditions: Stop-loss or target (close below 5 EMA)
if (is_in_position and (target_condition or close < stop_loss))
strategy.close("Buy")
// Plotting the EMAs
plot(ema_5, color=color.blue, title="5 EMA")
plot(ema_20_high, color=color.green, title="20 EMA (High)")
plot(ema_20_low, color=color.red, title="20 EMA (Low)")
plot(ema_20_close, color=color.purple, title="20 EMA (Close)")
plot(ema_50, color=color.orange, title="50 EMA")