이것은 슈퍼트렌드 지표와 볼륨 분석을 결합한 고급 양적 거래 전략이다. 전략은 슈퍼트렌드 라인과 비정상적인 볼륨 행동과의 가격 교차점을 동적으로 모니터링하여 잠재적 인 트렌드 역전 지점을 식별합니다. 평균 진정한 범위 (ATR) 에 기반한 동적 스톱 로스 및 영업 취득 설정을 사용하여 거래 유연성과 신뢰할 수있는 리스크 제어 모두를 보장합니다.
이 전략의 핵심 논리는 다음의 핵심 요소에 기초합니다. 1. 슈퍼트렌드 지표를 주요 트렌드 결정 도구로 사용하며, 동적 시장 변동성 적응을 위해 ATR을 기반으로 계산됩니다. 2. 20기 이동 평균 부피를 기준으로 설정하고, 부피 이상 탐지에 대한 1.5x 문턱을 설정합니다. 3. 슈퍼 트렌드 라인을 통과하고 볼륨 조건이 충족되면 거래 신호를 유발합니다. 4. 최적의 리스크/리워드 비율을 위해 동적 스톱 로스 (1.5x ATR) 및 리프트 (3x ATR) 설정을 구현합니다.
이 전략은 슈퍼트렌드 지표와 볼륨 분석을 결합하여 신뢰할 수 있고 적응 가능한 거래 시스템을 구축합니다. 시장 조건이 여전히 전략 성능에 영향을 미치지만 다차원 신호 확인과 동적 리스크 관리에 강점이 있습니다. 지속적인 최적화와 정교화를 통해 전략은 다른 시장 환경에서 안정적인 성능을 유지할 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend with Volume Strategy", overlay=true) // Input parameters for Supertrend atrLength = input(10, title="ATR Length") multiplier = input(3.0, title="Multiplier") // Calculate Supertrend [supertrend, direction] = ta.supertrend(multiplier, atrLength) // Plot Supertrend plot(supertrend, color=direction == 1 ? color.green : color.red, title="Supertrend") // Volume condition volumeThreshold = input(1.5, title="Volume Threshold (x Average)") avgVolume = ta.sma(volume, 20) // 20-period average volume highVolume = volume > (avgVolume * volumeThreshold) // Define entry conditions longCondition = ta.crossover(close, supertrend) and highVolume shortCondition = ta.crossunder(close, supertrend) and highVolume // Execute trades if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stopLoss = input(1.5, title="Stop Loss (in ATRs)") takeProfit = input(3.0, title="Take Profit (in ATRs)") if (longCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close + (takeProfit * ta.atr(atrLength)), stop=close - (stopLoss * ta.atr(atrLength))) if (shortCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close - (takeProfit * ta.atr(atrLength)), stop=close + (stopLoss * ta.atr(atrLength)))