
Cette stratégie consiste principalement à déterminer la tendance à l’aide de l’indicateur ADX et à construire une moyenne mobile combinant deux paramètres différents, MA et EMA. La stratégie de suivi de la tendance consiste à ne faire que plus.
La stratégie utilise principalement l’ADX pour déterminer la tendance et la force du marché. L’ADX détermine la présence et la force d’une tendance en calculant le degré et la direction des variations de prix.
La stratégie utilise simultanément deux moyennes mobiles MA et EMA avec des paramètres différents pour effectuer des jugements auxiliaires. Elles permettent d’éliminer efficacement le hasard des prix et de montrer la direction de la tendance principale des prix.
Combinant les caractéristiques de l’ADX et des moyennes mobiles, cette stratégie construit un signal de trading pour déterminer la direction de la tendance: une position plus ouverte lorsque l’ADX est en hausse et que le prix franchit les MA et les EMA à la hausse, une position plus ouverte lorsque l’ADX est en baisse ou que le prix franchit la plage des MA / EMA, réalisant une stratégie de suivi de la tendance qui ne fait que plus.
Cette stratégie présente les principaux avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
La stratégie peut également être optimisée dans les domaines suivants:
L’ensemble de la stratégie est une stratégie de suivi de tendance à un seul actionneur qui utilise l’ADX pour déterminer la force de la tendance et aide à construire des signaux de filtrage avec deux moyennes mobiles. Elle contrôle efficacement l’apparition de transactions inefficaces et réalise l’effet de la tendance à un seul actionneur, une stratégie de suivi de tendance plus stable.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
maPeriod = input(50, title="MA Period")
emaPeriod = input(50, title="EMA Period")
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
maValue = sma(close, maPeriod)
emaValue = ema(close, emaPeriod)
longCondition = sig > sig[1] and close > maValue and close > emaValue
if (longCondition)
strategy.entry("Long", strategy.long)
exitCondition = sig < sig[1] or close < maValue or close < emaValue
if (exitCondition)
strategy.close("Long")
plot(maValue, color=color.blue, title="MA")
plot(emaValue, color=color.orange, title="EMA")
plot(sig, color=color.red, title="ADX")