
Volume Ratio 역전 거래 전략 (VR 역전 전략) 은 based on volume indicator의 단기 역전 거래 전략이다. 특정 기간 동안의 거래량과 평균량의 비율을 계산하여 시장 지배력이 들어왔는지 판단하여 거래 신호를 발생시킨다. 이 전략은 주로 짧은 선 범위 내에서 역전성이 강한 품종에 적용된다.
VR 역전 전략의 핵심 지표는 Volume Ratio (약칭 VR) 이며, 이는 현재 주기의 거래량과 한 기간 동안의 평균 거래량의 비율을 나타냅니다. 구체적인 계산 방법은 다음과 같습니다:
VR = Current Volume / SMA(Volume, N)
여기서 N은 변수 Length를 나타내고, 현재 주기 거래량을 Length 주기 내 거래량의 간단한 이동 평균으로 나다.
VR > 하락할 때, 주력으로 들어오는 신호로 간주한다. 이 때 가격의 상향 또는 하향 돌파구를 결합하여 구매 및 판매 신호를 생성한다.
이 전략은 동시에 방향 보조 판단 지표를 도입한다. 이는 현재 주기 종료 가격과 N 주기 이전 종료 가격을 비교하여 1보다 큰 다면 방향, 1보다 작은 공백 방향이다.
VR이 지정된 임계값보다 크면 dir=1이면 구매 신호가 발생하고, dir=-1이면 판매 신호가 발생한다.
VR 반전 전략의 가장 큰 장점은 갑작스러운 가격 반전 기회를 포착하는 데 있습니다. 주력 개입의 신호가 발생하면 전략은 재빨리 판단하여 반발 또는 반전의 기회를 적시에 포착 할 수 있습니다.
다른 장점들은 다음과 같습니다:
그러나, VR 역전 전략에는 몇 가지 장점이 있지만, 몇 가지 위험도 있습니다.
또한, 과도한 거래를 방지하고, 단편적 손실을 통제하기 위해 스톱로스를 설정하는 것도 주의해야 합니다.
VR 역전 전략에는 더 많은 최적화가 가능하며, 주요 제안은 다음과 같습니다.
VR 반전 거래 전략은 간단하고 직접적이고 쉽게 실행할 수 있는 짧은 선의 양적 전략이다. 그것은 주력으로 나타나는 신호를 포착하여 반전 기회를 잡는다. 이 전략은 특히 변동이 극심하고 반전이 명백한 품종에 적합하지만 위험 관리에 주의를 기울여야 한다. 추가적인 최적화를 통해 전략을 더 안정화하여 더 많은 가짜 신호를 필터링 할 수 있다.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Volume Ratio_30min", shorttitle="VR_30min")//,initial_capital=1000)
// User Input ------------------------------------------------------------------
len = input(20, title="Length", minval=1)
threshold = input(3,step=0.05, title="閾値")
// Volume Caliculetion ---------------------------------------------------------
vol = volume
sma=sma(volume,len)
vrs = vol / sma
// Direction -------------------------------------------------------------------
dirtime=input(1,"direction picker # bars")
dir=if close/close[dirtime] > 1
1
else
-1
// Plot ------------------------------------------------------------------------
plot(vrs, title="VRS", color=color.green, transp=0)
hline(1, title="baseline")
plot(threshold, color=color.white)
// ️⚠️⚠️Logic -----------------------------------------------------------------
long = vrs > threshold and dir == 1
short = vrs > threshold and dir ==-1
// Back Test Fnction -----------------------------------------------------------
start = timestamp(input(2019, "Start Year"), input(1, "Start Month"), input(1, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)
_testPeriod() => true
// Order -----------------------------------------------------------------------
if _testPeriod()
if long
strategy.entry("Long", strategy.long)
if short
strategy.entry("Short", strategy.short)