이 전략은 세 가지 기술 지표: VWAP (Volume Weighted Average Price), RSI (Relative Strength Index), Bollinger Bands를 결합하여, 동적 인 이익과 스톱 로스를 가진 간단하고 사용하기 쉬운 양적 거래 전략을 구현합니다. 전략의 주요 아이디어는 RSI 및 볼링거 밴드 지표를 사용하여 가격이 과소 구매 또는 과소 판매 범위 내에 있는지 여부를 결정하는 동시에 과거 기간 동안의 가격 추세를 결정하는 VWAP 지표를 사용하는 것입니다. 거래 신호가 결정되면 전략은 위험을 제어하고 이익을 잠금하기 위해 ATR (평균 진정한 범위) 지표에 기반한 동적 인 이익 및 스톱 로스 수준을 계산합니다.
이 전략은 세 가지 기술 지표: VWAP, RSI 및 볼링거 밴드 (Bollinger Bands) 를 결합하여 간단하고 사용하기 쉬운 양적 거래 전략을 구현합니다. 이 전략은 위험을 효과적으로 제어하고 이익을 잠금하기 위해 동적 인 수익을 취하고 손실을 중지합니다. 이 전략은 합리적인 매개 변수 설정과 지속적인 최적화로 잠재적인 위험이 있지만 실제 거래에서 좋은 결과를 얻을 수 있다고 믿어집니다.
/*backtest start: 2024-06-06 00:00:00 end: 2024-06-13 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("VWAP and RSI Strategy", overlay=true) // VWAP calculation vwap = ta.vwap(close) // RSI calculation rsi_length = 16 rsi = ta.rsi(close, rsi_length) // Bollinger Bands calculation bb_length = 14 bb_std = 2.0 [bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_std) // Variables for VWAP signal calculation backcandles = 15 float vwapsignal = na // Function to check if last 15 candles are above or below VWAP calc_vwapsignal(backcandles) => upt = true dnt = true for i = 0 to backcandles - 1 if close[i] < vwap[i] upt := false if close[i] > vwap[i] dnt := false if upt and dnt 3 else if upt 2 else if dnt 1 else 0 // Calculate VWAP signal for each bar vwapsignal := calc_vwapsignal(backcandles) // Calculate total signal totalsignal = 0 if vwapsignal == 2 and close <= bb_lower and rsi < 45 totalsignal := 2 else if vwapsignal == 1 and close >= bb_upper and rsi > 55 totalsignal := 1 // Define strategy entry and exit conditions slatr = 1.2 * ta.atr(7) TPSLRatio = 1.5 if (totalsignal == 2 and strategy.opentrades == 0) strategy.entry("Long", strategy.long, stop=close - slatr, limit=close + slatr * TPSLRatio) if (totalsignal == 1 and strategy.opentrades == 0) strategy.entry("Short", strategy.short, stop=close + slatr, limit=close - slatr * TPSLRatio) // Additional exit conditions based on RSI if (strategy.opentrades > 0) if (strategy.position_size > 0 and rsi >= 90) strategy.close("Long") if (strategy.position_size < 0 and rsi <= 10) strategy.close("Short")