定量指標に基づく反転取引戦略


作成日: 2024-01-12 12:08:05 最終変更日: 2024-01-12 12:08:05
コピー: 0 クリック数: 677
1
フォロー
1617
フォロワー

定量指標に基づく反転取引戦略

概要

Volume Ratio反転トレード戦略 (以下,VR反転戦略) は,based on volume indicatorの短周期反転トレード戦略である.それは,ある期間における取引量と平均量の比率を計算して,市場主力が入っているかどうかを判断して,取引信号を生成する.この戦略は,主にショートライン範囲内の反転性が強い品種に適用される.

戦略原則

VR反転戦略の核心指標は,現在のサイクルにおける取引量と,一期間の平均取引量との比率を表すVolume Ratio (略称VR) である.具体的計算方法は:

VR = Current Volume / SMA(Volume, N)

ここでNはパラメータLengthを表し,現在の周期の取引量をLength周期内の取引量の単純移動平均で割る.

VR > 値であるとき,主力入力の信号とみなされる.このとき,価格の上下突破と組み合わせて,買入と売却の信号を生成する.

この戦略は同時に,方向補助判断指標dirを導入する.これは,現在の周期閉盘価格とN周期前の閉盘価格を比較することによって,多頭方向に1より大きく,空頭方向に1より小さい.

VRが指定された値より大きい場合,dir=1なら買信が生成され,dir=-1なら売信が生成される.

利点

VR反転戦略の最大の優点は,突然の価格反転の機会を捕捉することです.主力介入のシグナルが発生すると,戦略は迅速に判断し,反弹または後退の機会を間に合うように捕捉することができます.

他の利点は以下の通りです.

  • 取引量指標を用いて,市場主権の判断は比較的確実である.
  • アルゴリズムはシンプルで,理解し,実行しやすい.
  • 設定可能なパラメータの柔軟性,適応性

リスク

仮想現実の反転戦略にはいくつかの利点があるものの,注意すべきリスクもあります.

  • 短線戦略として,一定のランダム性があり,利回り曲線は比較的変動する可能性があります.
  • VR指標の失敗が起こり,主権の判断ができない場合
  • パラメータに適した品種を選択し,波動が緩やかであれば効果が悪くなる

また,過度な取引を防止し,単一損失を制御するためにストップを設定することも注意する必要があります.

改善の提案

VRの逆転戦略にはさらなる最適化のための余地があり,主な提案は以下の通りです.

  • 判断をさらに多くの指標と組み合わせて,VR指標の失敗を回避する.
  • ストップ・ロジックを追加し,ATR指標を参考にストップ・幅度を設定できます.
  • 最適化パラメータ,特にLength周期パラメータ,異なる周期と品種に調整
  • 回測結果に応じて,正反転のVR値を調整し,その安定性を確保する

要約する

VR反転取引戦略は,シンプルで直接で,容易に実施できる短線量化戦略である.主力となる信号を捕捉し,反転のチャンスを掴む.この戦略は,特に波動が激しい,反転が顕著な品種に適しているが,リスク管理にも注意する必要がある.さらなる最適化により,戦略をより安定させ,より多くの偽信号をフィルターすることができる.

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

//@version=4

strategy(title="Volume Ratio_30min", shorttitle="VR_30min")//,initial_capital=1000)

// User Input ------------------------------------------------------------------
len = input(20, title="Length", minval=1)
threshold  = input(3,step=0.05, title="閾値")

// Volume Caliculetion ---------------------------------------------------------
vol = volume
sma=sma(volume,len)
vrs = vol / sma

// Direction -------------------------------------------------------------------
dirtime=input(1,"direction picker # bars")
dir=if close/close[dirtime] > 1
    1
else
    -1

// Plot ------------------------------------------------------------------------
plot(vrs, title="VRS",  color=color.green, transp=0)
hline(1, title="baseline")
plot(threshold, color=color.white)

// ️⚠️⚠️Logic -----------------------------------------------------------------

long    = vrs > threshold  and dir == 1
short   = vrs > threshold  and dir ==-1

// Back Test Fnction -----------------------------------------------------------
start = timestamp(input(2019, "Start Year"), input(1, "Start Month"), input(1, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)
_testPeriod() => true

// Order -----------------------------------------------------------------------
if _testPeriod()
    if long
        strategy.entry("Long", strategy.long)
    if short
        strategy.entry("Short", strategy.short)