ハル移動平均と真の範囲に基づくトレンドフォロー戦略


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

ハル移動平均と真の範囲に基づくトレンドフォロー戦略

概要

この戦略の核心思想は,ハル平均線と実際の波幅 ((ATR) を組み合わせて市場のトレンド方向を識別し,トレンド方向が確認された後に入場することである.具体的には,一定の周期内のハル平均線と前期のハル平均線の間の差値を計算し,差値が上昇すると看板傾向と判断し,差値が低下すると看板傾向と判断する.同時に,ATR指標の指標判断を組み合わせて,トレンド方向が確認されたと同時に波幅が拡大するときに入場を選択する.

戦略原則

この戦略は主にハル平均線とATRの2種類の指標に基づいています.

ハル平均線は,アメリカの先物取引業者アラン・ハル (Alan Hull) が開発したトレンド追跡型の指標である.ハル平均線は,移動平均線に似ていますが,ハル平均線は,価格変化のトレンドをより迅速に捉えるために,より高い感度を持っています.戦略には,調整可能なパラメータであるhullLengthが,ハル平均線の周期長さを制御するために設定されており,現在の周期と前の周期のハル平均線の間の差値を計算して,現在の価格トレンドの方向を判断します.

ATRは,Average True Range,つまり実際の波幅である.それは,毎日の価格の変動の幅を反映している.波動が大きくなったら,実際の波幅は上昇し,波動が小さくなったら,実際の波幅は低下する.戦略は,atrLength,atrSmoothingなどのパラメータを設定し,ATRの計算方法を制御する.そして,入場指標の1つとしてグラフに描画する.

具体的には,戦略の論理は次のとおりです.

  1. 現在の周期 (hullLength設定) のハル平均 currentHullMAと,前回の周期のハル平均 previousHullMAを計算する
  2. hullDiff = currentHullMA - previousHullMA を計算する
  3. hullDiff > 0時,多頭傾向として判断; hullDiff < 0時,空頭傾向として判断
  4. 傾向の幅の指標として,一定の周期 (atrLength 設定) のATR値を計算します.
  5. 多頭トレンドと判断され,ATRが価格より大きく,価格がatrLength周期前の価格より大きい場合,多頭;空頭トレンドと判断され,ATRが価格より小さく,価格がatrLength周期前の価格より小さい場合,空頭
  6. HullDiffの正負によって平仓信号を判断する

戦略的優位分析

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

  1. トレンド判断と波動率指標を組み合わせて,価格トレンドが明確で波動が拡大する時に入場を選択し,波動的な市場で被ばくのを避ける.
  2. ハル平均線は価格の変化に敏感で,新しいトレンドの方向を素早く判断できる.
  3. ATRは市場の波動性や熱さを反映し,入場時刻の選択を基に提供します.
  4. 調整できるパラメータが多く,最適化により最適なパラメータの組み合わせが得られる.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. ハル平均線とATRは,偽突破の問題を完全に回避できず,まだセットされる可能性があります.
  2. パラメータを正しく設定しない場合,取引が頻繁にまたは不十分に敏感になり,戦略の効果に影響を与える可能性があります.
  3. 突破や暴落などの急激な状況に効果的に対応できない.

対応方法:

  1. 適切な緩やかな停止を施し,牢屋を突破されないようにする.
  2. 繰り返しテストすることでパラメータを最適化し,異なる市場環境に適した指標を作ります.
  3. 危機が迫った時に戦略を一時停止する.

最適化の方向

この戦略の最適化には,以下のような部分から多くの余地があります.

  1. 異なるHull平均線周期パラメータをテストし,現在の市場環境に最も適した周期設定を見つけます.
  2. 異なるATRサイクルパラメータの組み合わせをテストし,市場熱を最も捉える周期を見つけます.
  3. ATRの滑り方 (RMA,SMA,EMAなど) を試して,どちらが最も効果的か見てみましょう.
  4. ポジション開設条件の最適化,例えば波動指標のReactionとATRの組み合わせ条件判断.
  5. ストップを最適化し,ストップ幅を適正に緩和し,ストップを回避する.

要約する

この戦略は,ハル平均線のトレンド追跡能力とATRの熱指数判断能力を統合して,トレンドを確認しながら,波動が大きい積極的な時間点の入場を選択し,いくつかの無効な信号をフィルターすることができます.指標パラメータの最適化とリスク管理手段の使用は,戦略の効果をさらに強化することができます.全体的に,この戦略は,トレンド追跡と熱判断の複数の要素を組み合わせて,パラメータの調整と最適化に応じて,より良い効果を得ることができます.

ストラテジーソースコード
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//                                                Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) => 
    if smoothing == "RMA"
        rma(p, length)
    else
        if smoothing == "SMA"
            sma(p, length)
        else
            if smoothing == "EMA"
                ema(p, length)
            else
                wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
    strategy.close("buy")
closeshort = n1>n2
if (closeshort)
    strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
    strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
    strategy.entry("sell", strategy.short, comment="SELL")