VWAP 및 RSI 조합 전략


생성 날짜: 2024-01-23 14:37:22 마지막으로 수정됨: 2024-01-23 14:37:22
복사: 1 클릭수: 1521
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

VWAP 및 RSI 조합 전략

개요

이 전략의 이름은 추적형 가치 가중 평균 가격과 상대적으로 강한 지표 조합 전략 . 이 전략은 가치 가중 평균 가격 ((VWAP) 과 상대적으로 강한 지표 ((RSI) 두 가지 지표를 사용하여 트렌드 추적 입구와 과매매 과매출 출구의 조합 전략을 구현한다.

전략 원칙

이 전략의 거래 논리는 주로 다음과 같습니다.

  1. 50일 지수 이동 평균을 사용하여 상단 200일 선을 돌파하여 상향 신호를 판단합니다.
  2. 거래 당일 VWAP 값보다 클로즈 가격과 오픈 가격보다 클로즈 가격이 높을 때, 시장이 강세를 보인다고 생각하면 입장이 가능합니다.
  3. 만약 RSI 지표의 상위 10개의 K선 중 적어도 하나의 K선이 10보다 낮다면, 이는 오버소드 형태로 간주되며, 이는 강력한 입구 신호입니다.
  4. RSI가 90을 다시 넘어서면 외출을 선택합니다.
  5. 5%의 스톱 라인을 설정하여 너무 큰 손실을 피하십시오.

이 전략의 기본 거래 논리는 다음과 같습니다. EMA가 큰 트렌드를 판단하고, VWAP는 당일 트렌드를 판단하고, RSI는 과매도 영역을 판단하여 여러 지표의 효과적인 결합을 구현하여 거래의 주요 방향을 올바르게 보장하고, 입수 및 퇴출 신호 효과를 증가시킵니다.

전략적 강점 분석

이 전략의 가장 큰 장점은 지표의 조합을 사용하는 데 있습니다. 단일 VWAP는 모든 시장 상황을 완벽하게 대응 할 수 없습니다. 이 시점에 RSI의 보조를 도입하면 단기간의 과매도 돌파구 지점을 가져오는 거래 기회를 식별 할 수 있습니다. 또한, EMA의 적용은 대주기 상향 운동 만 입장을 선택하여 단기간의 조정 역전시설에 갇히지 않도록합니다.

이 조합 지표의 사용 방식은 또한 전략의 안정성을 증가시킨다. RSI가 1~2번의 가짜 브레이크가 발생했을 경우, VWAP와 EMA가 뒷받침하여 잘못된 거래가 발생할 가능성이 거의 없다. 마찬가지로, VWAP가 가짜 브레이크가 발생했을 때, RSI 지표의 확인도 있다. 따라서 이 조합을 사용하면 전략 실행의 성공률이 크게 증가한다.

전략적 위험 분석

이 전략의 주요 위험은 VWAP 지표를 사용하는 데 있습니다. VWAP는 당일 평균 거래 가격을 나타냅니다. 그러나 매일의 가격 변동이 VWAP를 중심으로 오르락 내리락하는 것은 아닙니다. 따라서 VWAP의 돌파 신호는 반드시 후시장의 가격이 실제로 계속 돌파 할 수 있음을 보장하지 않습니다. 가짜 돌파구가 발생하면 거래 손실이 발생할 수 있습니다.

또한, RSI 지표는 분기점이 발생하기 쉽다. 시장이 충격적인 정리 단계에 있을 때, RSI는 반복적으로 과매도 영역을 만질 수 있으며, 거래 신호의 빈번한 출력을 초래한다. 이 경우, RSI 신호를 맹목적으로 따라 거래하는 경우에도 위험이 있습니다.

이에 대해, 우리는 전략에 EMA 지수 이동 평균을 대주기 판단으로 채택하고, 대주기 상향일 때만 거래를 고려하여, 이는 상술한 두 가지 문제가 전략에 미치는 영향을 어느 정도 피할 수 있다. 또한, 스톱로스 라인을 설정하여, 일회성 손실을 일정 범위 내에서 제어할 수 있다.

전략 최적화 방향

이 전략은 다음의 몇 가지 측면에 초점을 맞추어 더 많은 최적화를 할 수 있습니다.

  1. 카르만 평평선, 브린 띠 등과 같은 더 많은 지표가 도입되어 거래 신호가 더 명확하고 신뢰할 수 있습니다.

  2. 거래 비용에 대한 최적화. 기존 전략은 수수료의 영향을 고려하지 않고 실제 거래 계좌와 결합하여 포지션 개시 크기를 최적화 할 수 있습니다.

  3. 스톱모델을 조정한다. 기존의 스톱모델은 단순하기 때문에 시장의 변화에 완벽하게 대응할 수 없다. 모바일 스톱모델을 테스트하고, 스톱모델을 추적하는 방법도 있다.

  4. 다양한 품종의 응용 효과를 테스트한다. 현재는 S&P와 나포 지수에서만 테스트한다. 샘플 범위를 확장하여 전략에 가장 적합한 품종을 찾을 수 있다.

요약하다

이 전략은 EMA, VWAP 및 RSI의 세 가지 지표의 장점을 종합적으로 활용하여 트렌드 추적과 오버 구매 오버 판매의 효과적인 조합을 구현합니다. 이 전략은 대주기 상향 및 단기 조정 모두에서 합리적인 진입 시기를 찾을 수 있으며 강한 안정성을 가지고 있습니다. 동시에, 전략 최적화 공간은 넓고, 더 많은 지표를 도입하고, 손실을 중지하는 방법을 조정하는 등의 방법으로 전략 승률과 수익 수준을 더욱 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-15 00:00:00
end: 2024-01-22 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
strategy(title="VWAP and RSI strategy [EEMANI]", overlay=false)
//This strategy combines VWAP and RSI indicators
//BUY RULE
//1. EMA50 > EMA 200
//2. if current close > vwap session  value and  close>open   
//3. check if RSI3 is dipped below 10  for any of last 10 candles
//EXIT RULE
//1. RSI3   crossing down 90 level
//STOP LOSS EXIT
//1. As configured --- default is set to 5%


// variables  BEGIN

longEMA = input(200, title="Long EMA", minval=1)
shortEMA = input(50, title="short EMA", minval=1)

rsi1 = input(3,title="RSI Period", minval=1)
rsi_buy_line = input(10,title="RSI Buy Line", minval=5)
rsi_sell_line = input(90,title="RSI Sell Line", minval=50)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)

//variables  END




longEMAval= ema(close, longEMA)
shortEMAval= ema(close, shortEMA)
rsiVal=rsi(close,rsi1)
vwapVal=vwap(hlc3)


// Drawings

plot_rsi = plot(rsiVal, title="RSI", color=color.purple, linewidth=1)
//plot_fill = plot(0, color=color.green, editable=false)
//fill(plot_rsi, plot_fill, title="Oscillator Fill", color=color.blue, transp=75) 
hline(rsi_buy_line, color=color.green, title="Buy Line", linewidth=2, linestyle=hline.style_dashed)
hline(rsi_sell_line, color=color.purple, title="Sell Line", linewidth=2, linestyle=hline.style_dashed)
//plot(value_ma, title="MA", color=color_ma, linewidth=2)

longCondition=  shortEMAval > longEMAval and  close>open and  close>vwapVal
rsiDipped =  rsiVal[1]<rsi_buy_line or rsiVal[2]<rsi_buy_line or rsiVal[3]<rsi_buy_line  or rsiVal[4]<rsi_buy_line  or rsiVal[5]<rsi_buy_line  or rsiVal[6]<rsi_buy_line or rsiVal[7]<rsi_buy_line  or rsiVal[8]<rsi_buy_line  or rsiVal[9]<rsi_buy_line  or rsiVal[10]<rsi_buy_line  

//Entry
strategy.entry(id="VWAP_RSI LE", comment="VR LE" , long=true,  when= longCondition and rsiDipped )

//Take profit Exit
strategy.close(id="VWAP_RSI LE", comment="TP Exit",   when=crossunder(rsiVal,90) )


//stoploss
stopLossVal =   strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01) 
strategy.close(id="VWAP_RSI LE", comment="SL Exit",   when= close < stopLossVal)