
동적 평균 지표 이동 평균 교차 전략은 두 가지 강력한 기술 지표인 이동 평균 ((MA) 와 평균 방향 지표 ((ADX) 를 결합하여 거래자에게 더 정확한 기술 분석을 제공합니다. 이 전략은 동적 시장 분석을 위해 특별히 설계되어 명확한 거래 신호를 제공합니다.
이 전략은 가중 이동 평균 ((WMA) 을 계산하여 가격 움직임을 추적하고, 가격 변동을 평형시켜, 트렌드 신호를 생성한다. 동시에, 평균 방향 지수 ((ADX) 와 양극 동력 지수 ((+/- DI) 를 계산하여, 트렌드의 존재와 강도를 판단한다. ADX가 지정된 매개 변수보다 높을 때, 트렌드가 존재한다고 간주하고, 양극 동력 지수가 양극 동력 지수보다 높을 때, 낙관적 신호로 간주한다.
전략은 MA와 ADX 지표의 교차를 거래 결정의 기초로 사용합니다. ADX가 경착값보다 높고 DIdiff ((DI+ - DI-) 가 0보다 크면 더 많이; ADX가 경착값보다 높고 DIdiff가 0보다 작으면 평소합니다.
이 전략은 이동 평균과 ADX 지수의 장점을 결합하여 트렌드의 존재와 방향을 효과적으로 식별하고 잘못된 신호를 줄일 수 있습니다. 단일 지표에 비해 조합 지표는 더 신뢰할 수있는 거래 신호를 제공합니다.
또한, 이 전략은 완전히 변수 계산에 기반한 정량화 전략이며, 재측정 효과가 좋으며, 실디 디스크의 성능이 안정적이며, 알고리즘 거래에 적합하다.
이 전략은 시장의 큰 변동에 거래 위험을 초래할 수 있다. 가격이 급격하게 변동하고 지표가 반응하지 않으면 계정에 손실을 초래할 수 있다. 또한, 지표 매개 변수를 잘못 설정하는 것도 전략의 효과에 영향을 줄 수 있다.
단독 손실을 제어할 수 있는 스톱로스 . 동시에 매개 변수를 최적화하고, 다른 지표 필터링과 결합하여 잘못된 신호를 줄일 수 있다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
다른 지표 필터링과 결합하여 신호 품질을 향상시킵니다.
이동 평균과 ADX 지수의 길이를 최적화하여 최적의 조합을 찾습니다.
단편적 손실을 통제하기 위한 손해 방지 제도를 강화하는 것
다양한 포지션 기간을 테스트하여 최적의 포지션 주기를 찾아보세요.
운동 평균 지표 이동 평균 교차 전략은 가격 운동량과 트렌드 강도를 계산하여 시장 트렌드 방향을 효과적으로 식별할 수 있는 신뢰할 수 있는 트렌드 추적 전략이다. 이 전략은 알고리즘화도가 높고, 피드백이 안정적이며, 실장 성능이 좋다. 계속 최적화함으로써 더 나은 전략 효과를 얻을 수 있다.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © Julien_Eche
//@version=5
strategy("MA ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)
start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date")
end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date")
// Indicator Inputs
group1 = "MA Parameters"
lengthMA = input.int(50, title="MA Length", minval=1, group=group1)
sourceMA = input(close, title="MA Source", group=group1)
group2 = "ADX Parameters"
diLength = input.int(14, title="DI Length", minval=1, group=group2)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1, maxval=50, group=group2)
adxMAActive = input.int(15, title="ADX MA Active", minval=1, group=group2)
// Directional Movement calculations
upwardMovement = ta.change(high)
downwardMovement = -ta.change(low)
trueRangeSmoothed = ta.rma(ta.atr(diLength), diLength)
positiveDM = fixnan(100 * ta.rma(upwardMovement > downwardMovement and upwardMovement > 0 ? upwardMovement : 0, diLength) / trueRangeSmoothed)
negativeDM = fixnan(100 * ta.rma(downwardMovement > upwardMovement and downwardMovement > 0 ? downwardMovement : 0, diLength) / trueRangeSmoothed)
dmSum = positiveDM + negativeDM
// Average Directional Index (ADX) calculation
averageDX = 100 * ta.rma(math.abs(positiveDM - negativeDM) / math.max(dmSum, 1), adxSmoothing)
// Line color determination
lineColor = averageDX > adxMAActive and positiveDM > negativeDM ? color.teal : averageDX > adxMAActive and positiveDM < negativeDM ? color.red : color.gray
// Moving Average (MA) calculation
maResult = ta.wma(sourceMA, lengthMA)
// Plotting the Moving Average with color
plot(maResult, color=lineColor, title="MA", linewidth=3)
// Strategy logic
if (averageDX > adxMAActive and positiveDM > negativeDM)
strategy.entry("Buy", strategy.long)
if (averageDX > adxMAActive and positiveDM < negativeDM)
strategy.close("Buy")