이 전략은 이동 평균 컨버전스 디버전스 (MACD) 지표와 볼륨 가중화 이동 평균 (VWMA) 을 결합하여 시장 추진력을 파악합니다. 입시 신호를 위해 MACD 히스토그램과 단기 VWMA 크로스오버를 활용하고 출구는 MACD 크로스오버에 전적으로 기반합니다. 이 전략은 주로 레버리지 파생물 시장을 위해 설계되었으며 다양한 거래 환경에 적응하기 위해 유연한 레버리지 및 정밀 설정이 있습니다.
이 전략의 핵심 논리는 다음의 핵심 요소에 기반합니다.
이 전략은 트렌드 추적 (VWMA) 및 모멘텀 (MACD) 인디케이터들을 결합함으로써 출입 정확도를 향상시키고, 동시에 위험 통제를 위해 빠른 반응 출구 신호로 MACD 크로스오버를 사용합니다.
이러한 위험을 완화하기 위해, 1) 포괄적인 매개 변수 최적화 및 백테스팅을 수행하는 것, 2) 합리적인 스톱 로스 및 수익 목표를 설정하는 것, 3) 레버리지 수준을 정기적으로 평가하고 조정하는 것, 4) 잘못된 신호를 줄이기 위해 추가 필터링 조건을 도입하는 것을 고려하는 것이 좋습니다.
이러한 최적화 방향은 잘못된 신호를 줄이고 위험을 제어하는 동시에 전략의 적응력과 안정성을 향상시키는 것을 목표로합니다. 지속적인 반복과 개선으로 전략은 다른 시장 환경에서 좋은 성과를 유지할 가능성이 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-09-24 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 leverage = input.int(1, title='Leverage', minval=1, maxval=100, step=1) commission_value_input = input.int(3, title='Commission Value %', minval=1, maxval=100, step=1) precision = input.int(2,title='Precision') strategy("MACD & VWMA Equal Basis", overlay=true) commission_value = (commission_value_input / 100) / leverage leveragedContracts = math.max(math.round(strategy.equity * leverage / close, precision), 0) // MACD settings [macdLine, signalLine, histogram] = ta.macd(close, 12, 26, 9) // VWMA settings vwma20 = ta.vwma(close, 20) vwma50 = ta.vwma(close, 50) // Plot VWMA on chart plot(vwma20, color=color.green, title="VWMA 20") plot(vwma50, color=color.orange, title="VWMA 50") // MACD buy/sell signals macdLongEntrySignal = histogram > 0 macdLongExitSignal = histogram < 0 macdShortEntrySignal = histogram < 0 macdShortExitSignal = histogram > 0 // VWMA conditions for long and short positions vwmaLongEntrySignal = vwma20 > vwma50 vwmaShortEntrySignal = vwma20 < vwma50 // Combined long entry signal: MACD buy signal with VWMA conditions longEntry = macdLongEntrySignal and vwmaLongEntrySignal longExit = ta.crossunder(macdLine, signalLine) // Combined short entry signal: MACD sell signal with VWMA conditions shortEntry = macdShortEntrySignal and vwmaShortEntrySignal shortExit = ta.crossover(macdLine, signalLine) // Execute long and short orders based on the conditions if (longEntry) strategy.entry("Long", strategy.long, qty = leveragedContracts) if (longExit) strategy.close("Long") if (shortEntry) strategy.entry("Short", strategy.short, qty = leveragedContracts) if (shortExit) strategy.close("Short")