ウィリアムズVIX修正戦略


作成日: 2023-10-25 12:03:08 最終変更日: 2023-10-25 12:03:08
コピー: 0 クリック数: 1339
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. 他のAlphaと組み合わせて,全体的な収益率を上げます.

  9. 量化方法と組み合わせたパラメータを自動最適化する.

  10. 設定範囲停止と追跡停止

要約する

ウィリアムズ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")