이 전략은 웨브트렌드 오시일레이터 (WT) 와 볼륨 가중화 평균 가격 (VWAP) 를 결합하여 가격과 지표 사이의 오차를 식별하여 잠재적 인 트렌드 역전 기회를 포착합니다. 전략은 스톱 로스 수준을 결정하고 계정 위험 비율에 따라 포지션 사이징을 동적으로 조정하기 위해 평균 진정한 범위 (ATR) 를 사용합니다. 전략의 주요 강점은 트렌드 추적 기능과 위험 관리 조치에 있습니다. 그러나 불안정한 시장에서 손실을 입을 수 있습니다. 최적화 방향은 추가 필터를 추가하고 입출 규칙을 개선하는 것을 포함합니다.
웨이브트렌드 오시레이터 디버전스 전략 (WaveTrend Oscillator Divergence Strategy) 은 웨이브트렌드 지표와 볼륨 가중 평균 가격을 결합하여 잠재적 인 트렌드 역전 기회를 식별합니다. 전략의 강점은 트렌드 추적 기능과 위험 관리 조치에 있지만 불안정한 시장에서 위험에 직면 할 수 있습니다. 전략은 추가 필터, 동적 매개 변수 조정 및 향상된 입출 규칙 도입으로 더 최적화 될 수 있습니다. 철저한 백테스팅과 미래 분석은 전략을 구현하기 전에 중요합니다.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("PipShiesty Swagger", overlay=true) // WaveTrend Oscillator (WT) n1 = input.int(10, "Channel Length") n2 = input.int(21, "Average Length") obLevel1 = input.float(60.0, "Overbought Level 1") obLevel2 = input.float(53.0, "Overbought Level 2") osLevel1 = input.float(-60.0, "Oversold Level 1") osLevel2 = input.float(-53.0, "Oversold Level 2") ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) // VWAP vwap = ta.vwma(close, n1) // Signal Line wt1 = tci wt2 = ta.sma(wt1, 4) // Bullish and Bearish Divergences bullishDivergence = (ta.lowest(close, 5) > ta.lowest(close[1], 5)) and (wt1 < wt1[1]) and (close > close[1]) bearishDivergence = (ta.highest(close, 5) < ta.highest(close[1], 5)) and (wt1 > wt1[1]) and (close < close[1]) // Plot WaveTrend Oscillator plot(wt1, title="WT1", color=color.blue) plot(wt2, title="WT2", color=color.red) // Plot Divergences plotshape(series=bullishDivergence, location=location.belowbar, color=color.green, style=shape.labelup, title="Bullish Divergence") plotshape(series=bearishDivergence, location=location.abovebar, color=color.red, style=shape.labeldown, title="Bearish Divergence") // Risk Management Parameters riskPercentage = input.float(1, title="Risk Percentage per Trade", minval=0.1, step=0.1) / 100 stopLossATR = input.float(1.5, title="Stop Loss ATR Multiplier", minval=0.5, step=0.1) // ATR Calculation atr = ta.atr(14) // Position Size Calculation calculatePositionSize(stopLoss) => riskAmount = strategy.equity * riskPercentage positionSize = riskAmount / stopLoss positionSize // Entry and Exit Logic with Stop Loss if bullishDivergence stopLoss = low - atr * stopLossATR positionSize = calculatePositionSize(close - stopLoss) strategy.entry("Buy", strategy.long, qty=positionSize) strategy.exit("Sell", from_entry="Buy", stop=stopLoss) if bearishDivergence strategy.close("Buy") // Plot VWAP plot(vwap, title="VWAP", color=color.orange) // Background color to indicate Overbought/Oversold conditions bgcolor(wt1 > obLevel1 ? color.new(color.red, 90) : na, title="Overbought Level 1") bgcolor(wt1 < osLevel1 ? color.new(color.green, 90) : na, title="Oversold Level 1") bgcolor(wt1 > obLevel2 ? color.new(color.red, 70) : na, title="Overbought Level 2") bgcolor(wt1 < osLevel2 ? color.new(color.green, 70) : na, title="Oversold Level 2")