윌리엄스 VIX 픽스 전략은 CBOE 변동성 지수 VIX의 수정 값을 계산하고 볼링거 밴드, 퍼센틸 범위 및 가격 동력과 같은 여러 기술적 지표를 결합하여 VIX 반전을 결정하고 거래 신호를 생성합니다. 이 전략은 VIX 지수의 과도한 반전 현상을 파악하고 과잉 구매 및 과잉 판매 상황에서 역동 트렌드 거래를 목표로합니다.
이 전략의 핵심 논리는 다음과 같은 점에 기초합니다.
VIX 변동을 포착하기 위한 공식을 통해 Williams VIX Fix 값 (wvf) 을 계산합니다.
VIX 지수의 중간선, 상단 및 하단선을 얻기 위해 볼링거 밴드 계산 매개 변수를 설정합니다.
VIX 인덱스의 역사적인 인센틸 범위를 얻기 위해 퍼센틸 범위 매개 변수를 설정합니다.
수리된 변수를 사용하여 VIX가 반전 지점에 있는지 결정합니다. 수리된 것이 사실이라면, VIX가 이전에 과잉 구매 또는 과잉 판매 상태에 있었고 현재 반전 지점에 있음을 의미합니다.
추세 특성을 결정하기 위해 가격 브레이크업 성격 (upRange, upRange_Aggr) 을 더 결합합니다.
마지막으로, 볼린거 밴드, 퍼센틸 범위 및 가격 특징과 같은 여러 조건을 결합하여 거래 신호를 결정하고 생성합니다.
이 전략은 VIX의 평균 반전 특성을 최대한 활용하고 여러 매개 변수 설정을 통해 반전 기회를 포착합니다. 전략 논리는 명확하고 신뢰할 수 있으며 과소매와 과소매 기회를 효과적으로 식별 할 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
시장 불확실성이 매우 높을 때 VIX의 반향 경향을 활용하여 수익을 창출하십시오.
필터링을 위한 여러 가지 기술 지표의 조합은 역행 가능성을 효과적으로 식별할 수 있습니다.
전략의 조정 가능한 매개 변수는 다른 시장 환경에 최적화 될 수 있습니다.
간단한 구현, 이해하기 쉽고 수정, 실시간 거래에 적합합니다.
오픈 소스 코드 아이디어를 완전히 활용하고 다른 전략과 쉽게 결합할 수 있습니다.
이 전략은 상대적으로 낮은 시장 상관관계를 보이고 있으며 포트폴리오의 헤지 구성 요소로 사용될 수 있습니다.
비효율적인 거래를 극대화하고 되돌릴 수 없는 기회를 필터링합니다.
적당한 거래 빈도, 너무 자주 진입하고 출입하지 않습니다.
이 전략은 또한 몇 가지 위험을 가지고 있습니다.
VIX 지수 자체는 전략 성과에 영향을 줄 수 있는 데이터 문제가 있습니다.
반전 거래는 손실 위험이 있습니다. 반전 거래가 이루어지지 않으면 손실이 악화 될 수 있습니다.
여러 매개 변수 설정이 매개 변수 최적화를 상당히 복잡하게 만듭니다.
부정확한 반전 타이밍 캡처는 실패 트레이드로 이어질 수 있습니다.
거래 빈도가 낮아지면 기회도 놓칠 수 있습니다.
볼링거 밴드와 퍼센틸 범위 모두 잘못된 신호에 민감합니다.
부적절한 가격 유출 판단은 전략을 비효율적으로 만들 수 있습니다.
주요 위험은 다음과 같이 감소 할 수 있습니다.
반전 식별을 더 정확하게 하기 위해 매개 변수를 최적화
역행이 확립되도록 유지 시간을 적절히 늘립니다.
거짓 신호를 피하기 위해 확인을 위한 더 많은 지표를 추가합니다.
비효율적인 거래를 줄이기 위해 오픈 포지션 기준을 조정합니다.
손실을 제어하기 위해 스톱을 추가합니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
역전 인식 정확성을 향상시키기 위해 볼린거 대역 및 퍼센틸 범위 매개 변수를 최적화하십시오.
추세 잘못 식별을 피하기 위해 더 많은 가격 동력 지표를 추가하십시오.
더 높은 거래 효율을 보장하기 위해 포지션 개설 기준을 조정합니다.
위험을 통제하기 위해 다른 스톱 로스 방법을 설정합니다.
VIX 선물 계약으로 헤지
다른 시장 환경에 따라 매개 변수를 조정하여 전략을 더 적응력있게 만듭니다.
반전 시기를 결정하기 위해 기계 학습 모델을 추가합니다.
다른 알파와 결합하여 전체 수익을 증가시킵니다.
자동 매개 변수 최적화를 위한 양적 방법을 포함합니다.
범위를 정지하고 후속을 정지한다
윌리엄스 VIX 픽스 전략은 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")