相対ボラティリティ指数バックテスト戦略


作成日: 2023-09-26 16:15:44 最終変更日: 2023-09-26 16:15:44
コピー: 0 クリック数: 878
1
フォロー
1617
フォロワー

概要

相対波動指数 (RVI) は,相対強弱指数 (RSI) から改良された技術指標である.これは10日間の閉盘価格標準差を計算することによって波動性の方向を測定し,市場傾向と強さを判断する.

戦略原則

この戦略の核心的な論理は:

  1. 10日間の閉盘価格の標準差をStdDevとして計算する.

  2. 10日間の閉盘価格が前日より上昇した部分を計算します.

  3. 10日間の閉盘価格が前日より下がった部分dを計算する.

  4. 指数平滑法を使用して,u と d の14日指数移動平均 nU と nd を計算する.

  5. nUとnDの比率を計算し,それを100で掛けると,波動指数nResが得られる.

  6. nResが買区より低いときは空し,売区より高いときは多する.

  7. コードで買取区,売出区のパラメータ,および逆取引を設定できます.

この戦略は,10日間の閉盘価格の変動の多空差を比較して,市場の次の動きを判断する.多頭波動が大きいときは看板信号,空頭波動が大きいときは下落信号である.

優位分析

相対波動指数反測策には以下の利点がある.

  1. 閉盤価格標準差による変動の計算は,価格そのものよりも市場の変動情報を反映する.

  2. 計算方法はシンプルでわかりやすく,理解しやすい.

  3. 買い/売却のシグナルが作られていて,判断は不要です.

  4. 柔軟に購入区,販売区のパラメータを設定し,戦略の感度を調整できます.

  5. 逆転取引をサポートし,さまざまなタイプの市場で使用できます.

  6. 指数線と買取区画を視覚的に表示し,直感的な取引信号を形成する.

  7. この戦略の有効性を検証した.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 買い/売却シグナルが誤報される可能性があり,トレンドとサポートレジスタンスとの組み合わせで判断する必要があります.

  2. 閉盤価格の変動のみを考慮し,閉盤価格の動きを反映することはできません.

  3. パラメータを正しく設定しない場合,取引が頻繁になり,収益が低下する可能性があります.

  4. 取引コストは最終収益率に影響する.

  5. 逆転取引では,損失のリスクが増加します.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 他の技術指標のフィルタリング誤報信号と組み合わせる.例えばMACD,KDなど.

  2. ポジション開設率の動的調整

  3. 信号の精度を向上させるため,購入区と販売区の範囲を最適化します.

  4. 単一損失を抑えるため,ストップ・ロスの追加.

  5. 波動性のある状況でポジションの規模を小さくする.

  6. 異なる指標パラメータ設定をテストする.例えば,計算日数,指数平滑パラメータなど.

要約する

相対波動指数反測戦略は,相対多空波動性を判断して市場の方向を判断し,比較的シンプルで直感的なトレンド追跡戦略を実現する.この戦略の優点は,論理が明確で,実行が容易で,反測効果が良好で,適切な最適化によってその取引パフォーマンスを改善することができる.しかし,取引では依然としてリスク管理に注意し,取引信号を検証するために他の指標と組み合わせる必要がある.全体的に,この戦略は,取引を量化するための価値ある思考の道を提供します.

ストラテジーソースコード
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/10/2017
// The RVI is a modified form of the relative strength index (RSI). 
// The original RSI calculation separates one-day net changes into 
// positive closes and negative closes, then smoothes the data and 
// normalizes the ratio on a scale of zero to 100 as the basis for the 
// formula. The RVI uses the same basic formula but substitutes the 
// 10-day standard deviation of the closing prices for either the up 
// close or the down close. The goal is to create an indicator that 
// measures the general direction of volatility. The volatility is 
// being measured by the 10-days standard deviation of the closing prices. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Relative Volatility Index", shorttitle="RVI")
Period = input(10, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=purple, linestyle=hline.style_dashed)
hline(BuyZone, color=red, linestyle=hline.style_solid)
hline(SellZone, color=green, linestyle=hline.style_solid)
xPrice = close
StdDev = stdev(xPrice, Period)
d = iff(close > close[1], 0, StdDev)
u = iff(close > close[1], StdDev, 0)
nU = (13 * nz(nU[1],0) + u) / 14
nD = (13 * nz(nD[1],0) + d) / 14
nRes = 100 * nU / (nU + nD)
pos = iff(nRes < BuyZone, -1,
	   iff(nRes > SellZone, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(nRes, color=red, title="RVI")