윌리엄스 VIX 수정 전략


생성 날짜: 2023-10-25 12:03:08 마지막으로 수정됨: 2023-10-25 12:03:08
복사: 0 클릭수: 1339
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

윌리엄스 VIX 수정 전략

개요

윌리엄스 VIX 수정 전략은 부린 궤도, 퍼센티지트 간격, 가격 운동 특성 등과 같은 여러 가지 기술 지표와 결합하여 CBOE 변동률 지수 VIX의 수정 값을 계산하여 VIX 반전에 대한 판단과 거래 신호를 생성합니다. 이 전략은 VIX 지수의 과도한 반전 현상을 포착하여 과매가 발생할 경우 역시장 작업을 수행합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같습니다.

  1. 윌리엄스 VIX 수정값을 계산하기 (wvf), VIX의 변동성을 포착하기 위한 수식을 사용한다.

  2. 브린 띠의 계산 파라미터를 설정하여, VIX 지수의 중간 궤도, 상단 궤도, 하단 궤도를 얻는다.

  3. 백분위 간격 변수를 설정하여 VIX 지수의 역사 백분위 간격을 얻습니다.

  4. repaired 변수를 사용하여 VIX가 반전점에 있는지 판단한다. repair가 참이라면, VIX가 이전 기간에 과매매 또는 과매매 상태에 있었고 현재는 반전점에 있다는 것을 나타낸다.

  5. 가격의 획기적인 성질과 함께 [upRange, upRange_Aggr]의 추세 판단 특성을 추가한다.

  6. 최종적으로, 브린 밴드, 퍼센티지 간격, 가격 특성 등의 여러 조건을 통합하여 거래 신호를 생성하도록 판단한다.

이 전략은 VIX의 평균값 회귀 특성을 최대한 활용하여 여러 가지 변수를 설정하여 회귀 기회를 잡습니다. 전략 논리는 명확하고 신뢰할 수 있으며 과매매 기회를 효과적으로 식별 할 수 있습니다.

전략적 강점 분석

이 전략에는 다음과 같은 장점이 있습니다.

  1. 시장의 불확실성이 극심한 상황에서 VIX의 역전성을 활용하여 수익을 올릴 수 있습니다.

  2. 다양한 기술 지표와 함께 필터링을 통해 역전 기회를 효과적으로 식별할 수 있습니다.

  3. 전략의 매개 변수는 조정할 수 있으며, 다른 시장 환경에 맞게 최적화할 수 있다.

  4. 단순하고, 이해하기 쉽고, 수정하기 쉽고, 실 디스크에 적합하다.

  5. 오픈소스 아이디어의 최대한 활용, 다른 전략의 조합으로 사용하기 쉬운.

  6. 전략은 낮은 시장 관련성을 나타내며 포트폴리오의 보호 부분으로 사용될 수 있다.

  7. 무효 거래를 최소화하고, 역전되지 않는 기회를 필터링하십시오.

  8. 거래 빈도가 적고 출입 빈도가 높지 않습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. VIX 지수 자체는 데이터 문제로 인해 전략적 성과에 영향을 미칠 수 있습니다.

  2. 반전 거래는 손실의 위험이 있으며, 반전하지 않으면 손실이 증가한다.

  3. 여러 개의 변수 설정으로 인해 변수 최적화가 더 복잡하다.

  4. 반전시간을 잡지 못하면 거래가 실패할 수 있습니다.

  5. 거래 빈도를 낮추는 것도 일부 기회를 놓칠 수 있습니다.

  6. 브린 밴드와 퍼센티지 간격 모두에서 잘못된 정보 전달 문제가 있습니다.

  7. 가격 돌파는 전략이 무효가 될 수 없습니다.

주요 위험은 다음과 같이 줄일 수 있습니다.

  1. 역전환 인식의 정확성을 높이기 위한 최적화 매개 변수.

  2. 포지션 보유 기간을 적절히 늘려서 반전이 확립되도록 한다.

  3. 다른 지표와 함께 확인하여 잘못된 정보를 피하십시오.

  4. 상장 조건을 조정하여 무효 거래를 줄여주세요.

  5. 손실을 통제하기 위해 스톱로스를 늘리십시오.

전략 최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 브린밴드 및 퍼센티지 간격의 파라미터를 최적화하여 역추환 인식 정확도를 높인다.

  2. 더 많은 가격 동력 판단 지표를 추가하여 트렌드 식별 오류를 방지하십시오.

  3. 포지션 개시 조건을 조정하여 거래 효율성을 높여줍니다.

  4. 다른 손해 중지 방법을 설정하고 위험을 통제하십시오.

  5. VIX 선물주 연속계약과 결합하여 시점보증한다.

  6. 다른 시장 환경에 따라 변수를 조정하여 전략을 더 적응시킬 수 있습니다.

  7. 기계학습 모형을 추가하여 역전 시점을 판단하는 것.

  8. 다른 알파와 결합하여 전체적인 수익률을 높여라.

  9. 양적 방법과 결합하여 자동 최적화 매개 변수.

  10. 범위를 정지하고 추적을 정지한다.

요약하다

윌리엄스 VIX 수정 전략은 VIX 지수의 역전적 특성을 포착하여 시장 공황시 역전하는 전형적인 포지션 전략이다. 이 전략은 다양한 지표의 장점을 한 몸에 모아, 파라미터를 통해 제어 가능한 위험을 설정한다. 파라미터가 적절히 최적화되면, 더 나은 위험 조정 수익을 얻을 수 있다. 그러나 거래 빈도가 너무 높으면 안되므로 위험을 제어해야 한다.

전략 소스 코드
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "CM Vix V3 Strategy ",shorttitle="Vix3", overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=100000)



pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")

ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")



//Williams Vix Fix Formula
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph

//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)

//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0


//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

//Plots for Williams Vix Fix Histogram and Alerts

longCond=alert3

shortCond = alert2



monthfrom =input(8)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

if (  longCond    and  month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond   and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")