ダブル・ハール移動平均戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-15 16:39:48
タグ:

戦略概要

ダブルハル移動平均戦略 (Double HULL Moving Average Strategy) は,アラン・ハルによって作成されたHULL移動平均 (HMA) インジケーターに基づいた取引戦略である.この戦略は,入口と出口点を決定するために,長期線と短期線という2つのHMA線を使用する.HMAは価格データに重み平均を適用することによって遅れを軽減する改良された移動平均である.短期線と長期線のクロスオーバーは,買い売り信号を生成するために使用される.

HMAの計算式は以下のとおりです.

HmaL = wma(2 * wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2 * wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

戦略は,短期線と長期線の値を比較して,購入・販売条件を決定する.

利点:

  1. HMAは,従来の移動平均値と比較して遅延が少なく,価格動向の変化に迅速に対応し,購入と販売のためのより正確な信号を提供します.
  2. 単純性: 戦略はクロスオーバー分析のために2つの移動平均線を使用し,理解と実施が比較的簡単です.
  3. 高度なカスタマイズ可能性: 戦略の期間パラメータは,特定の市場や取引手段に基づいて調整され,異なる市場状況により適応可能になります.

リスク:

  1. 市場変動: 市場の変動期間中,移動平均線は頻繁に交差し,誤った信号を生成し,過剰な取引と損失につながる可能性があります.
  2. スリップとレイテンシー:戦略の実行は,特に高周波取引では,スリップとレイテンシーにさらされ,実行価格が予想価格から逸脱し,取引結果に影響を与える可能性があります.
  3. 単一の指標に依存:この戦略は,他の技術指標や市場情報を含まない限り,HMA指標のみに依存しており,市場の変化と動向の全範囲を把握する能力を制限する可能性があります.

結論は

ダブルHULL移動平均戦略は,HULL移動平均指標に基づいた取引戦略である.入口と出口点を決定するために,短期および長期HMAラインのクロスオーバーを使用する.この戦略は,遅延,シンプルさ,高いカスタマイズなどの利点を提供しています.しかし,市場変動,滑り込み,遅延,単一の指標への依存に関連するリスクも伴います.実用的な応用では,戦略は,特定の状況に基づいて調整および最適化され,他の技術指標とリスク管理方法を組み込み,取引の成功と収益性を高めることができます.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)

もっと