移動平均とHAモメンタムブレイクアウトに基づくトレンドフォロー戦略


作成日: 2023-12-11 16:56:47 最終変更日: 2023-12-11 16:56:47
コピー: 0 クリック数: 594
1
フォロー
1621
フォロワー

移動平均とHAモメンタムブレイクアウトに基づくトレンドフォロー戦略

概要

この戦略は,均線方向に基づいて大トレンドを判断し,HA動量指数で突破点を判断し,トレンド追跡を実現する量化取引戦略である.戦略は,単純で分かりやすい,均線を使用して大トレンドの方向を判断し,HA動量指数で具体的な入場点を決定する.

戦略原則

この戦略は,主に平均線とHA動量指標によってトレンド追跡を実現する.具体的論理は:

  1. 大トレンドの方向を判断する:20日間の簡易移動平均と200日間の簡易移動平均を計算し,20日線が200日線より高く (以下) であれば,上昇 (下降) のトレンドとして判断する.

  2. 入場時間を判断する:HA動量指数を計算し,実体部分のサイズ判断力を比較する.HAのパラメータより大きい指数_Candle_ストースは,動力の増幅とみなして,入場することができる。さらに,閉盘価格が20日平均線より高い/低いかをチェックして,突破方向を判断する。

  3. ストップ・ロスを設定する exits: 戦略は,得損数でストップ・ロスを設定する.

上述のプロセスにより,戦略はトレンドが起こる時に中間部を捕捉し,トレンド追跡操作を実現することができる.

優位分析

この戦略の利点は以下の通りです.

  1. 策略の論理はシンプルでわかりやすく,理解しやすい実装であり,パラメータの調整も便利である.

  2. 平均線を使って大きなトレンドを判断し,一部のノイズを効果的に排除し,主要なトレンドをロックすることができます.

  3. HA動力指数は突破力を判断し,偽突破を回避する.

  4. 均線方向と運動指標を組み合わせて,入場時刻の選択をより正確にする.

  5. ストップ・ストップ・ストップ・エグジットを設定することで,1回の取引のリスクをコントロールできます.

リスク分析

この戦略には以下のリスクがあります.

  1. 市場が整合状態にあるとき,誤った取引が起こる頻度の高い交差が生じやすい.

  2. パラメータ設定 (平均線パラメータ,HA強度パラメータなど) が不適切である場合,漏れ入り漏れ出たりすることがあります.

  3. 市場におけるあらゆる種類の動きに適応できないため,揺動的な動きでは大きな損失を招く可能性があります.

  4. 市場が変化する時に,その変化のポイントを正確に判断できず,そのタイミングで止まらなければ,その損失は拡大する可能性があります.

対応方法:

  1. 他の指標と組み合わせたフィルターで無効取引信号を表示する.

  2. パラメータをテスト最適化して,最適なパラメータ組み合わせを見つけます.

  3. 波動率指標などと組み合わせて,震動シナリオ下での誤った取引を避ける.

  4. 移動ストップを設定して利益をロックします.

最適化の方向

この戦略は,以下の点でも改善できます.

  1. 固定パラメータではなく,自律的な平均線パラメータを使用し,市場の変化に適応できるようにする.

  2. 市場が低迷したときに誤った信号を避けるため,取引量などの指標をフィルターする.

  3. 機械学習によるパラメータの自動最適化により,戦略がより安定する.

  4. 静的なストップではなく,ダイナミックストップを設定して利益を捉える.

  5. 信号の質と市場状況を判断する他の指標と組み合わせて,VIX指数など.

要約する

この戦略は,全体として,平均線に基づく大トレンド判断であり,HA動量指標が入場基盤としてのトレンド追跡戦略である.戦略の論理はシンプルで明確で,指標判断を使用すると,トレンドの進行で部分的な利益を上げることができる.しかしながら,さらにテストを最適化し,戦略の質を向上させるために他の補助指標を追加する必要のあるいくつかの制限もあります.全体として,この戦略は,量化取引初心者にとって良い学習事例を提供します.

ストラテジーソースコード
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HA Trend Following", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 2)


//parameters input
Trend_DIR_MA   = input(defval = 200, title = "MA for trend direction")
HA_Candle_strength   = input(defval = 2, title = "HA candle strength")

Rng = abs(open - close)

// HA_Momentum - size of break out body
HA_Momentum = sma(Rng, 1) / sma(Rng, 5)
plot(HA_Momentum, color=green, linewidth=1, style=line)
plot(HA_Candle_strength, color= blue)

// open position
longCondition = close > sma(close, 20) and (sma(close, 20) > sma(close, Trend_DIR_MA) )and HA_Momentum > HA_Candle_strength and close - open > 0
if (longCondition)
    strategy.entry(id = "Lng", long = true)

ShortCondition = close < sma(close, 20) and (sma(close, 20) < sma(close, Trend_DIR_MA) ) and HA_Momentum > HA_Candle_strength and close - open < 0
if (ShortCondition)
    strategy.entry(id = "Shrt", long = false)


// close position
strategy.exit("ExL", from_entry = "Lng", loss = 500 , profit = 1500)
strategy.exit("ExS", from_entry = "Shrt", loss = 500 , profit = 1500)