傾向分析指数に基づく定量的な取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-12 10:40:52
タグ:

img

概要

この戦略の主なアイデアは,市場傾向を判断するために移動平均の傾斜を使用し,トレンド分析指数 (TAI) を取引信号として構築することです.価格がトレンドしているとき,移動平均の傾斜は増加します.価格がトレンドのないゾーンに範囲を帯びているとき,移動平均の傾斜は減少します.トレンド分析指数の増加はトレンドの始まりを示し,減少はトレンドの終わりを意味します.

戦略の論理

この戦略は,まず価格のシンプル・ムービング・アベア (X日MA) を計算する.その後,変動範囲を得るために,この移動平均の過去Y日間の最高値と最低値を計算する.最後に,このY日間の範囲を価格と比較して,0-1の間の標準化指標,すなわちトレンド分析指数に変換する.インデックスが限界値を超えるとロングポジションと,別の限界値を下回るとショートポジションを取る.

利点分析

この戦略の利点は次のとおりです.

  1. 中期から長期間の傾向を効果的に把握する
  2. より明確な取引信号のための標準化されたインデックスの構築
  3. 異なる市場環境の MA とトレンド判断パラメータを調整できる
  4. 他の戦略を追跡またはヘッジするために選択可能なリバース取引

リスク分析

リスクもあります:

  1. 範囲限定市場において誤った信号に易く
  2. 動向逆転点が欠けている場合,MAパラメータが正しく設定されていない場合
  3. 標準化パラメータが不適切に設定された場合,弱傾向が欠けている場合
  4. 逆取引による損失の増加

解決策:

  1. フィルター信号と他の指標
  2. 最適な組み合わせを見つけるためにパラメータを最適化
  3. 標準化パラメータの限界値を調整する
  4. リバース トレーディングを注意深く

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

戦略は次の側面で最適化できます.

  1. BOLLのような他の指標を組み合わせて信号をより信頼性のあるものにします
  2. 単一の損失を制御するストップ損失を追加
  3. 異なるタイムフレームの特徴に合わせて MA 日を最適化する
  4. 列車の最適な限界パラメータ
  5. トレーディングを支援するためにトレンド確率のMLモデルを追加する

結論

概要すると,これは移動平均の傾斜に基づいた中長期トレンドフォロー戦略である.トレンドを効果的に捕捉できるが,いくつかの誤った信号リスクもある.他の指標と組み合わせ,ストップ損失,パラメータ最適化などを追加することで,戦略はより堅牢である.本質的には,まだ単純なトレンド追跡戦略である.


//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/2017
// In essence, it is simply the standard deviation of the last x bars of a 
// y-bar moving average. Thus, the TAI is a simple trend indicator when prices 
// trend with authority, the slope of the moving average increases, and when 
// prices meander in a trendless range, the slope of the moving average decreases.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Trend Analysis Index", shorttitle="TAI")
AvgLen = input(28, minval=1)
TAILen = input(5, minval=1)
TopBand = input(0.11, step=0.01)
LowBand = input(0.02, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xPrice = close
xSMA = sma(xPrice, AvgLen)
xHH = highest(xSMA, TAILen)
xLL = lowest(xSMA, TAILen)
nRes = (xHH - xLL) * 100 / xPrice
pos = iff(nRes > TopBand, 1,
       iff(nRes < LowBand, -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=blue, title="TAI")


もっと