HMA モメンタム インジケーター ブレイクアウト戦略


作成日: 2024-01-04 15:34:52 最終変更日: 2024-01-04 15:34:52
コピー: 0 クリック数: 805
1
フォロー
1621
フォロワー

HMA モメンタム インジケーター ブレイクアウト戦略

2 戦略概要

この戦略は,HMA ((Hull Moving Average) 指数とK線の技術分析を使用して,価格の動的判断と突破操作を実現します.

3つ目 戦略の原則

  1. HMA指数の原理

HMA指数は,Alan Hullによって2005年に作成され,敏感で滑らかな移動平均を作成することを目的としています.計算方法は以下の通りです.

(1) 半周期のダブルスムージング平均DMAを計算する

(2) 周期全体の平均SMAを計算する

(3) DMAとSMAの差値DIFFを計算する

(4) DIFFのSQRT (周期) 周期平均を計算し,HMAが得られる

  1. 取引戦略

戦略は,HMA指標の上方突破と下方突破をシグナルとして,K線実体部分の突破と組み合わせて,買入と売却のシグナルを生成する.同時に,止損と停止の原則を設定し,損益状況をリアルタイムで監視し,利益保護を実現する.

4 戦略的優位性

  1. HMA指標の”コンバージェンス”特性により,価格の変化に非常に敏感でありながら,平均の平滑性を保ち,偽信号を避けます.

  2. 信号の信頼性を高めるため,ダブル突破メカニズムで,遮断を回避する.

  3. ダイナミック・ストップ・ストップ・ストップと収益保護により,リスクと収益を最適にコントロールできます.

  4. 自動取引で取引を簡素化する.

5 戦略的リスク

  1. 市場が急激に波動する時には,ストップダスが打たれる可能性が高い.

  2. 取引の頻度が高く,手数料のコストが上がります.

  3. パラメータを正しく設定しない場合,大量の偽信号が生じる可能性があります.

解決方法

  1. ストップ・ダメージ・ストップ条件を最適化し,合理的な撤退を設定する.

  2. 取引の頻度を調整し,手数料の影響を減らす.

  3. HMAサイクルと突破条件のテスト最適化,最適なパラメータを決定する.

6 戦略の最適化方向

  1. 逆転取引を避けるために,トレンド判断の指標を組み合わせる.

  2. データのソースの切り替えの自動判断を増やし,より多くの市場環境に適応する.

  3. 機械学習アルゴリズムを追加し,パラメータの自動最適化を実現する.

  4. サーバーにデプロイして24時間リアルタイムで検証する機能が追加された.

VII. 結論

HMAダイナミック指数突破策は,Hull移動平均のユニークな優位性を活用して,市場の動力を正確に捕捉します.ダブル突破フィルタリング機構は,信号品質を向上させ,ダイナミックストップストロップが効果を保証します.この戦略は,使用が簡単で,効果は明らかで,非常に実用的な量化取引ツールであり,広める価値があります.

ストラテジーソースコード
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//SeaSide420
strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
// settings----------------------
q=input(title="HullMA",defval=5)
SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=500.00, title="Target Point in $", type=float, step=1)
price=input(ohlc4,title="Price data")
ot=1
p=price[1]
// Daily candle crossover---------
dt = 0.0010
Daily=(p-p[1])/p[1]
//--------------------------------
// Hull MA's----------------------
n2ma=2*wma(p,round(q/2))
nma=wma(p,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(p[1],round(q/2))
nma1=wma(p[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
//---------------------------------
// Plotting------------------------
z1e=n1>n2?green:black
z2e=n1>n2?black:red
z3e=n1>n2?green:red
n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
// Order controls-------------------
closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)