ウィリアムズVIX 修正戦略

作者: リン・ハーンチャオチャン開催日:2023年10月25日 12:03:08
タグ:

img

概要

ウィリアムズVIX固定戦略は,CBOE波動指数VIXの訂正値を計算し,ボリンジャー帯,百分位幅,価格動向などの複数の技術指標を組み合わせ,VIX逆転の取引信号を決定および生成する.この戦略は,VIX指数の過剰逆転現象を把握し,過買い・過売り状況下で反トレンド取引を行うことを目的としています.

戦略の論理

この戦略の基本的な論理は以下の点に基づいています

  1. ウィリアムズ VIX 固定値 (wvf) を,VIX の変動を記録する式で計算する.

  2. VIX 指標の中間線,上部帯,下部帯を得るために,ボリンガー帯の計算パラメータを設定します.

  3. VIX インデックスの過去のパーセンチル範囲を得るため,パーセンチル範囲のパラメータを設定します.

  4. VIX が逆転点にあるかどうかを判断するために,修復された変数を用います.修復された値が真である場合,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. 射程停止と追尾停止を設定する

概要

ウィリアムズVIXFix戦略は,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")
    


もっと