ウィリアムVIX指標とDEMA指標に基づくクロスタイム期間取引戦略


作成日: 2024-01-23 15:02:30 最終変更日: 2024-01-23 15:02:30
コピー: 5 クリック数: 680
1
フォロー
1617
フォロワー

ウィリアムVIX指標とDEMA指標に基づくクロスタイム期間取引戦略

概要

この戦略は,まず,一定の周期内の最高値と最低値の差を計算して最高値で割ることで,ウィリアム・VIX指数を得る.その後,ブリン帯の標準差原理を組み合わせて,上線と下線を設定する.同時に,一定の周期内のパーセントを組み合わせて,ストップ範囲を設定する.エントリー部分では,価格が上線から下線を突破してDEMA指数より低いとき,多めに行います.価格が下線から下線を突破してDEMA指数より高いとき,空にする.

戦略原則

この戦略は,市場波動性とリスクを判断するために,主にウィリアムVIX指数を使用し,価格傾向を判断するためにDEMA指数で補足した.

まず,William VIXの計算式は次のとおりです.

WVF = ((Highest(close, n) - Low) / (Highest(close, n))) * 100

ここでnはパラメータ周期数である。この指標は,一定の周期における最高価格と最低価格の間の変動性を反映している。数値が高くなるほど,変動性が大きくなるので,リスクが高くなる。

この基礎に,この戦略はブリン帯の思想を適用する.上線を中線+n倍標準差,下線を中線-n倍標準差と設定する.価格が上線に近づくと,波動性が拡大し,より多くのチャンスを与える;価格が下線に近づくと,波動性が収縮し,空きチャンスを与える.

さらに,この戦略は,一定の周期内のパーセント原則に基づくストップの範囲を設定する.例えば90ポイントは,統計期間の最近の90%の価格である.価格が,この分位を超えると,波動が比較的大きいことを示すので,ストップを考慮することができる.

具体的な取引戦略では,DEMA指標の判断傾向を組み合わせます.価格が上線から穿越し,DEMAより低い場合にのみ多めに行います.価格が下線から穿越し,DEMAより高い場合にのみ空いてください.

戦略的優位分析

この戦略は,波動性を判断するウィリアム・VIX指数,標準差原理に基づくブリン帯,傾向を判断するDEMA指数を組み合わせて,総合性が強く,市場の2つの主要な要素:リスクと傾向をよりよく把握することができます.

具体的には,ウィリアム・VIX指数とブリン・ベア・ダウン・レール・ポーチは,波動的リスクを判断する;DEMA指数は,価格トレンドの方向を判断する;ストップ・レンジ設定は,利潤をロックし,過度の貪欲を拒絶する.

この戦略は,リスクとトレンドの両方を把握し,良い入場タイミングを選択するだけでなく,既に良い利益を得ている時に逆転リスクを回避するために,ストップ範囲を設定することで,安定した保守的な戦略と言えます.

戦略的リスク分析

この戦略の最大のリスクは,波動性指標とトレンド指標が分岐する可能性にある.すなわち,ウィリアムVIX指標は波動性が増加し,価格がブリン帯の軌道上または下に近づくと,DEMA指標の判断と不一致である.例えば,波動性表示は多チャンスだが,DEMAは下向きの傾向を示している.この場合,損失が生じることがあります.

また,止まり範囲の設定が過度に保守的であれば,戦略の収益性にも影響する.位分パラメータの設定が低すぎると,止まりを触発することが困難になり,収益性をロックすることができない.

最適化の方向

ストップ範囲のパラメータを調整可能なパラメータに設定することを考慮し,異なる市場環境で調整することができます.具体的には,揺れのある状況では,分位パラメータを適切に上昇させ,ストップ範囲を拡大することができます.しかし,傾向が顕著な状況では,分位パラメータを低下させ,時折ストップする必要があります.

また,他の判断トレンドの指標を追加することも考えることができます.元のDEMA指標と新しい指標が一致しない場合,偽信号による損失を避けるために仮設倉庫を構築します.

要約する

この戦略は,波動性指標,標準差原理,トレンド判断,ストップ思考を総合的に適用し,市場のリスクとトレンドの変化にうまく対応できます.それは安定して保守的で,長線保有に適しています.パラメータを最適化することで,戦略の安定性と収益性をさらに高めることができます.

ストラテジーソースコード
/*backtest
start: 2023-12-23 00:00:00
end: 2024-01-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("VIX and DEMA", overlay=false)
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
multupper = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
multlow = input(2.0,minval=1,maxval=5,title="BB STD LOW")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?")
sd = input(false, title="Show Standard Deviation Line?")

wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100

sDevupper = multupper * stdev(wvf, bbl)
sDevlow = multlow *stdev(wvf,bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDevlow
upperBand = midLine + sDevupper

rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl

col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
price=close 


plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=histogram, linewidth = 4, color=col)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)

yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)


lengthema = input(50, minval=1)
src = input(close, title="Source")
e1 = ema(src, lengthema)
e2 = ema(e1, lengthema)
dema = 2 * e1 - e2
plot(dema, color=green)


if ((crossunder(wvf,upperBand) ) and (price<dema) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if   ((( (wvf<lowerBand) ) and  (price>dema) ) ) 

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