정량적 지표를 기반으로 한 역전거래 전략


생성 날짜: 2024-01-12 12:08:05 마지막으로 수정됨: 2024-01-12 12:08:05
복사: 0 클릭수: 677
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

정량적 지표를 기반으로 한 역전거래 전략

개요

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 역전 전략에는 더 많은 최적화가 가능하며, 주요 제안은 다음과 같습니다.

  • 더 많은 지표와 함께 판단하여 VR 지표의 실패를 방지하십시오.
  • 스톱 로직을 추가하여 ATR 지표를 참조하여 스톱 손실을 설정할 수 있습니다.
  • 최적화 변수, 특히 Length 주기 변수, 다른 주기 및 품종에 대한 조정
  • 재검토 결과에 따라 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)