이 전략은 ADX 지표와 거래량에 기반한 트렌드 추적 시스템이다. 트렌드 강도를 결정하기 위해 ADX 지표를 결합하고, 강력한 트렌드 시장에서 신뢰할 수있는 거래 기회를 포착하기 위해 볼륨을 확인 신호로 사용합니다. 핵심 논리는 시장이 충분한 거래량으로 지원되는 명확한 트렌드를 보여주는 경우에만 거래하는 것입니다.
이 전략은 ADX와 볼륨을 사용하여 이중 필터링 메커니즘을 사용합니다. ADX 값이 설정된 임계 (26 기본값) 를 초과하면 중요한 시장 추세를 나타냅니다. 한편, 현재 볼륨을 20 기간 볼륨 이동 평균 (디폴트 곱셈자 1.8) 과 비교하여 트렌드 유효성을 확인합니다. 이 두 가지 조건에 따라 거래 방향은 DI + 및 DI의 상대적 힘에 의해 결정됩니다. 역 신호가 위험을 제어하는 것처럼 보일 때 전략은 자동으로 포지션을 닫습니다.
이 전략은 트렌드를 따르는 전략으로 완전한 구조와 명확한 논리를 가지고 있다. ADX 지표와 거래량을 조합함으로써 트렌드 트레이딩에서 신호 신뢰성 문제를 효과적으로 해결한다. 이 전략은 다양한 시장 특성에 맞게 최적화 될 수 있는 유연한 매개 변수 설정을 갖추고 있다. 특정 지연 위험이 있음에도 불구하고 적절한 매개 변수 조정과 최적화 개선으로 전략은 좋은 실용적 가치를 가지고 있다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-11 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © traderhub //@version=5 strategy("ADX + Volume Strategy", overlay=true) // Strategy parameters adxLength = input(21, title="ADX Period") // ADX period adxThreshold = input(26, title="ADX Threshold") // ADX threshold to determine strong trend volumeMultiplier = input.float(1.8, title="Volume Multiplier", minval=0.1, maxval=10 , step = 0.1) // Volume multiplier, adjustable float // Calculate ADX, DI+, DI- [diPlus, diMinus, adx] = ta.dmi(adxLength, adxLength) // Average volume for signal confirmation avgVolume = ta.sma(volume, 20) // Simple Moving Average of volume over 20 bars // Conditions for entering a long position longCondition = adx > adxThreshold and diPlus > diMinus and volume > avgVolume * volumeMultiplier // Conditions for entering a short position shortCondition = adx > adxThreshold and diMinus > diPlus and volume > avgVolume * volumeMultiplier // Enter a long position if (longCondition) strategy.entry("Long", strategy.long) // Enter a short position if (shortCondition) strategy.entry("Short", strategy.short) // Close positions on opposite signals if (strategy.position_size > 0 and shortCondition) strategy.close("Long") if (strategy.position_size < 0 and longCondition) strategy.close("Short") // Display ADX on the chart plot(adx, color=color.red, title="ADX") hline(adxThreshold, "ADX Threshold", color=color.green)