
Il s’agit d’une stratégie de suivi de tendance qui utilise les trois indices des moyennes mobiles (EMA), de l’indicateur de tendance (DMI) et de l’indicateur de concentration des moyennes mobiles (MACD) pour déterminer la direction de la tendance et générer des signaux d’achat et de vente. Les composants clés comprennent les signaux croisés en or de l’EMA, la détermination de la force de la tendance par le DMI et la confirmation de la dynamique par le MACD.
La logique de base repose sur trois EMA - 34, 89 et 200 - calculées sur la période M5 pour identifier la tendance générale. Les EMA de 34 cycles fournissent une direction à court terme, tandis que les EMA de 89 et 200 définissent la tendance à moyen et long terme.
Pour acheter un déclencheur de signal:
Le signal de vente est généré:
Les critères du MACD sont également validés avant l’admission.
Cette stratégie présente plusieurs avantages clés:
Les risques les plus importants:
Les mesures d’atténuation
La stratégie a été améliorée:
Dans l’ensemble, il s’agit d’un puissant système de suivi des tendances, combiné à l’utilisation de plusieurs indicateurs simples mais pratiques. Les trois EMA sont configurés pour juger des tendances sur plusieurs périodes, le DMI et le MACD examinent les opportunités d’entrée et les probabilités de profit. Associé à une optimisation et à une gestion des risques appropriées, il peut devenir un outil efficace pour les traders de tendances.
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("2 EMA di+ Buy Sell, strategy ", overlay=true)
// Define the EMA calculation function
ema(src, length) =>
ta.ema(src, length)
// Calculate and plot EMA on M5
ema34_M5 = ema(close, 34)
ema89_M5 = ema(close, 89)
ema200_M5 = ema(close, 200)
// Plot EMAs
plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2)
plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2)
plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2)
// Define DMI parameters
len = input(14, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur
// Calculate ADX
adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len)
// Define MACD parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// Create buy/sell conditions
buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI
sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI
// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
// Create alerts for buy/sell signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal")
// Plot buy/sell arrows on the price chart
bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)
plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)