VWAP와 RSI 결합 전략

저자:차오장, 날짜: 2024-01-23 14:37:22
태그:

img

전반적인 설명

이 전략은 "가치 가중화 평균 가격 및 상대적 강도 지수 조합 전략"이라고 불린다. 이는 진입 후 추세와 과잉 구매 과잉 판매 출구의 조합 전략을 구현하기 위해 가치 가중화 평균 가격 (VWAP) 및 상대적 강도 지수 (RSI) 인디케이터를 사용합니다.

전략 원칙

이 전략의 주요 논리는 다음 점에 기초합니다.

  1. 시장 트렌드가 상승한다는 신호로 200일 라인 위의 50일 지수 이동 평균을 사용하세요.
  2. 폐업 가격은 당일 VWAP 가격보다 높고 폐업 가격은 개시 가격보다 높으면 시장이 강해지고 시장에 진입할 수 있다고 간주됩니다.
  3. 만약 RSI 지표가 이전 10 K 라인 중 적어도 하나에서 10보다 낮다면, 이는 과잉 판매 형성과 강력한 진입 신호로 간주됩니다.
  4. RSI 지표가 다시 90의 과잉 매입 영역을 넘으면 시장에서 빠져나갑니다.
  5. 과도한 손실을 피하기 위해 5%의 스톱 로스를 설정합니다.

위의 것은 이 전략의 기본 거래 논리입니다. EMA는 큰 트렌드를 판단하고, VWAP는 일일 트렌드를 판단하고, RSI는 여러 지표의 효과적인 조합을 달성하기 위해 과잉 구매 및 과잉 판매 영역을 판단하며, 이는 출입 및 출구 신호를 증가시키는 동시에 주요 거래의 올바른 방향을 보장합니다.

이점 분석

이 전략의 가장 큰 장점은 지표의 조합 사용이다. 단일 VWAP는 모든 시장 조건에 완벽하게 대처할 수 없다. 이 시점에서, RSI의 도움으로, 일부 단기 과판 돌파 기회는 식별 할 수 있다. 또한, EMA의 적용은 또한 단기 반전에 의해 함락되는 것을 피하여, 단지 장기 주기 상승 추세가 선택되는 것을 보장한다.

이러한 조합 지표를 사용하는 방식은 전략의 안정성을 높이기도 합니다. RSI의 한 두 번의 잘못된 브레이크의 경우, 여전히 VWAP와 EMA가 백업으로 있으며, 잘못된 거래를 할 가능성이 없습니다. 마찬가지로, VWAP가 잘못된 브레이크를 가지고있을 때, RSI 지표로부터 확인도 있습니다. 따라서이 조합 사용은 전략 구현의 성공률을 크게 향상시킵니다.

위험 분석

이 전략의 주요 위험은 VWAP 지표의 사용에 있다. VWAP는 하루의 평균 거래 가격을 나타냅니다. 그러나 매일의 가격 변동이 VWAP 주위에서 변동하는 것은 아닙니다. 따라서 VWAP 브레이크 아웃 신호는 가격이 이후에도 계속 돌파할 수 있음을 보장하지는 않습니다. 위조 브레이크 아웃은 거래에서 손실을 유발할 수 있습니다.

또한, RSI 지표는 오차가 발생할 수 있습니다. 시장이 충격 통합 단계에있을 때, RSI는 반복적으로 과소득 및 과소매 구역을 여러 번 만질 수 있으며, 이로 인해 거래 신호의 빈번한 출력이 발생합니다. 이 경우, 거래를 위해 RSI 신호를 맹목적으로 따르는 것도 특정 위험에 직면합니다.

이 문제를 해결하기 위해 우리는 EMA 지수 이동 평균을 전략의 큰 사이클 판단으로 사용하고, 큰 사이클이 상승할 때만 거래를 고려하여 위의 두 가지 문제의 전략을 어느 정도 완화시킬 수 있습니다. 또한, 스톱 로스를 설정하면 특정 범위 내에서 단일 손실을 유지할 수 있습니다.

최적화 방향

이 전략은 여전히 다음 측면에서 더 많은 최적화를 할 수 있습니다.

  1. 조합을 위한 더 많은 지표를 도입합니다. 칼만 선, 볼링거 밴드 등으로 거래 신호가 더 명확하고 신뢰할 수 있습니다.

  2. 거래 비용을 최적화. 기존 전략은 수수료와 수수료의 영향을 고려하지 않습니다. 그것은 오픈 포지션의 수의 크기를 최적화하기 위해 실제 거래 계좌와 결합 될 수 있습니다.

  3. 스톱 로스 모델을 조정한다. 기존의 스톱 로스 방법은 비교적 간단하며 시장 변화에 완벽하게 대응할 수 없다. 스톱 로스를 이동시키고, 스톱 로스를 추적하고 다른 방법을 테스트할 수 있다.

  4. 다양한 품종의 응용 효과를 테스트합니다. 현재는 S&P 500 및 Nasdaq 지수에서만 테스트됩니다. 샘플 범위는이 전략에 가장 적합한 품종을 찾기 위해 확장 할 수 있습니다.

요약

이 전략은 트렌드 추적 및 과잉 구매 과잉 판매 신호의 효과적인 조합을 달성하기 위해 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)



더 많은