流量指数に基づく傾向 戦略に従う

作者: リン・ハーンチャオチャン開催日:2023年11月15日 17時53分51秒
タグ:

img

概要

この戦略は,取引量の変化を計算することによって市場傾向の方向性を判断し,トレンド開始時にポジションを設定し,トレンド終了時にポジションを閉じることで,トレンドに従うアプローチを採用します.

戦略の論理

  1. 平均価格,対数回帰率,および回帰偏差を計算します.
  2. 平均取引量 vave,最大取引量ドレッシング値 vmax を計算する
  3. 価格変動mfを計算し,価格動向 vcpを得るために変数値切断値と比較します.
  4. 総額 vcp を得ると,ボリューム価格指標 vfi を計算し,移動平均 vfima を計算します.
  5. 差 dVFI を得るために vfima と vfi を比較し,トレンド方向を決定します
  6. dVFIが0を超えると上昇信号で,0を下回ると下落信号です
  7. dVFIパターンをベースにした長期・短期戦略を確立する

利点分析

  1. この戦略は,トレンド判断に対する取引量の変化の影響を完全に考慮し,トレンド強さを測定し,トレンド転換点をより正確に把握するためにモメント指標を使用します.

  2. この戦略は,通常の変動をフィルタリングし,市場の騒音に惑わされないように,大規模な資金の集団行動のみを把握するために,取引量値の計算を組み込む.

  3. 価格と量を組み合わせることで,誤ったブレイクを効果的に回避できます.

  4. 移動平均値と論理的基準を使うことで ほとんどの誤った信号をフィルターで排除できます

  5. 逆転を予測するのではなく,トレンドを追跡することは,中長期のトレンド取引と市場の主要方向性を把握するのに適しています.

リスク分析

  1. この戦略は,トレンドを決定するために主に取引量の変化に依存しており,取引量が不活発な製品ではその有効性が損なわれる可能性があります.

  2. 取引量データは操作され,誤った信号を生む可能性があるため,価格と取引量の差は注意する必要があります.

  3. 価格と量の関係はしばしば遅れていて,トレンドの開始時に最適なエントリータイミングを欠いている可能性があります.

  4. 原始的なストップロスは,トレンドを持続的に把握できないため,トレードを早急に終了する可能性があります.

  5. 短期的な修正に効果的に反応できず,突然の出来事には敏感でないかもしれません.

引入とストップを最適化するために移動平均値や波動指標を組み込むこと; 誤解を招く信号を避けるためにより多くのデータ源で価格・ボリュームを分析すること; 短期的訂正に対する反応力を向上させるための適切な技術指標を組み込むことを検討する.

オプティマイゼーションの方向性

  1. トレンドが始まってからエントリを確認するために移動平均,イチモク・キンコ・ヒョウなどを取り入れてエントリー条件を最適化します.

  2. ストップを最適化して,ストップが価格とトレンドストップに密接に合致するようにします.

  3. ADXのようなトレンドメトリックを追加して レンジ・バインドと不安定な市場で不正な取引を避けるのです

  4. パラメータの最適組み合わせを見つけるため,より長いバックテストでパラメータを最適化します.

  5. 戦略をさらに多くの製品に拡大し 活発な容量を持つ より高品質な機器を探します

  6. 価格・量分析のためにより多くのデータを活用し,信号品質を改善するために 機械学習モデルを追加することを検討します

結論

戦略の全体的な論理は明確で,直感的なコアインジケーターがトレンド方向を信頼的に識別する.利点は,中長期のトレンドを追跡するのに適した取引量の変化を強調することにあるが,誤解を招くシグナルに注意する必要がある.パラメータ,ストップ損失,インジケーターの組み合わせのさらなる改善は,ライブパフォーマンスを向上させる.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Strategy for Volume Flow Indicator with alerts and markers on the chart", overlay=true)
// This indicator has been copied form Lazy Bear's code
lengthVFI = 130 
coefVFI = 0.2 
vcoefVFI = 2.5 
signalLength= 5 
smoothVFI=true 

ma(x,y) => smoothVFI ? sma(x,y) : x

typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coefVFI * vinter * close
vave = sma( volume, lengthVFI )[1]
vmax = vave * vcoefVFI
vc = iff(volume < vmax, volume, vmax)
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )

vfi = ma(sum( vcp , lengthVFI )/vave, 3)
vfima=ema( vfi, signalLength )
dVFI=vfi-vfima

bullishVFI = dVFI > 0 and dVFI[1] <=0
bearishVFI =  dVFI < 0 and dVFI[1] >=0

longCondition = dVFI > 0 and dVFI[1] <=0
shortCondition = dVFI < 0 and dVFI[1] >=0

plotshape(bullishVFI, color=color.green, style=shape.labelup, textcolor=#000000, text="VFI", location=location.belowbar, transp=0)
plotshape(bearishVFI, color=color.red, style=shape.labeldown, textcolor=#ffffff,  text="VFI", location=location.abovebar, transp=0)

alertcondition(bullishVFI, title='Bullish - Volume Flow Indicator', message='Bullish - Volume Flow Indicator')
alertcondition(bearishVFI, title='Bearish - Volume Flow Indicator', message='Bearish - Volume Flow Indicator')

if(year > 2018)
    strategy.entry("Long", strategy.long, when=dVFI > 0 and dVFI[1] <=0)

if(shortCondition)
    strategy.close(id="Long")



もっと