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