
이 전략은 주로 ADX 지표를 사용하여 트렌드를 판단하고 MA와 EMA의 두 가지 다른 파라미터 설정과 결합한 이동 평균을 구축하는 경향 추적 전략입니다. ADX가 상승할 때 여러 방향으로 지시하고, 가격이 상위 MA와 EMA를 돌파 할 때 더 많은 위치를 차지합니다. ADX가 떨어지거나 가격이 MA 또는 EMA 중 하나를 넘어서면 평소합니다.
이 전략은 주로 ADX를 사용하여 시장의 추세와 강도를 판단한다. ADX는 가격 변화의 정도와 방향의 정도를 계산하여 트렌드의 존재와 강도를 판단한다. ADX가 상승하면 현재 상승 추세에 있음을 나타냅니다. ADX가 하락하면 추세가 약화되고 있음을 나타냅니다.
이 전략은 동시에 두 가지 다른 변수 설정의 이동 평균 MA와 EMA를 사용하여 보조 판단을 수행합니다. 그들은 가격의 무작위성을 효과적으로 제거하여 가격의 주요 트렌드 방향을 보여줍니다. 가격이 상승하면 MA와 EMA를 뚫을 때, 다중 신호로; 가격이 하락하면 평소 신호로.
ADX와 이동 평균의 특징을 결합하여, 이 전략은 트렌드 방향을 판단하는 거래 신호를 구성한다: ADX가 상승하고 가격이 상위 MA와 EMA를 돌파할 때 더 많은 포지션을 열고, ADX가 떨어지거나 가격이 MA/EMA 평점을 돌파할 때 더 많은 트렌드 추적 전략을 구현한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
대응방법:
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 전체적으로 ADX를 사용하여 트렌드 강도를 판단하고, 두 개의 이동 평균으로 필터링 신호를 구축하는 보조적인 단행 다중 트렌드 추적 전략이다. 그것은 비효율 거래의 발생을 효과적으로 제어하고, 추세 추적의 효과를 실현하며, 비교적 안정적인 단행 다중 전략이다. 약간의 최적화 조정으로 전략의 안정성과 수익률을 더욱 향상시킬 수 있다.
/*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")