マルチレベルの動的トレンド追跡定量戦略:ハル移動平均に基づくインテリジェントなストッププロフィットおよびストップロスシステム

HMA 移动平均线 趋势跟踪 动态追踪止损 交叉信号 云层过滤 止损机制 风险管理 Hull Moving Average TREND FOLLOWING Dynamic Trailing Stop Crossover Signal Cloud Filter Stop-Loss Mechanism risk management
作成日: 2025-07-08 09:40:44 最終変更日: 2025-07-08 09:40:44
コピー: 0 クリック数: 218
2
フォロー
319
フォロワー

マルチレベルの動的トレンド追跡定量戦略:ハル移動平均に基づくインテリジェントなストッププロフィットおよびストップロスシステム マルチレベルの動的トレンド追跡定量戦略:ハル移動平均に基づくインテリジェントなストッププロフィットおよびストップロスシステム

概要

多層ダイナミック・トラッキング・トレンド・量化戦略は,ハル移動平均 ((Hull moving average ((HMA)) をベースにした高度なトレンド・トラッキングシステムで,インテリジェントの入場信号認識とダイナミック・ストップ・ストップ・メカニズムを組み合わせている.この戦略の核心は,異なる周期 ((100,200,500,1000)) のHMA指標を利用して入場信号を構築することであり,同時に,トリガー前ハードストップ,トリガー後のインテリジェントのストップ・ストップとトレンド方向のフィルタリングという3層の保護メカニズムを採用し,完全な取引システムを形成する.戦略は,トレンドの始まりを正確に捕捉し,ポイント・ムーブメントの転換時にインテリジェント・ロック・リターンによって,高効率な資金とリスク管理の管理を実現する.

戦略原則

この戦略の核心的な論理は,以下の4つの重要な要素に分けられます.

  1. 入口信号生成機構:

    • 長線トレンド判断:HMA500とHMA1000を使って”雲層”を構築し,HMA500がHMA1000の上にあるときは牛市環境と,逆は熊市環境と判断する
    • 入場条件:牛市環境では,HMA100がHMA200を上向きに通過し,どちらもHMA500の上にあるとき,多信号を触発する.熊市環境では,HMA100がHMA200を下向きに通過し,どちらもHMA500の下にあるとき,空信号を触発する
  2. トリガーメカニズム:

    • %を設定してトリガー値 (デフォルト1. 2%)
    • 価格がエントリーポイントから有利な方向に移動し,トリガー値を超えると,ストップ・ロジックを追跡する.
  3. スマート・トラッキング・ストップ・メカニズム:

    • トリガー後,システムは新しい高点 ((多) や新しい低点 ((空) を追跡し続けます.
    • ユーザ定義のトラッキング幅 (デフォルト0.8%) に基づいて,動的にストップを設定する
    • 値引きが設定幅を超えると,自動平仓が利潤をロックします.
  4. ハード度損耗保護:

    • トラッキングストップをトリガーする前に最大損失のパーセントを設定します (デフォルトは2.5%)
    • トリガーポイント前に価格が不良方向に移動し,ハードストップ設定を超えた場合,資金を保護するために平仓を強制します.

戦略は厳格な単一ポジション制御を採用し,リスクを制御できるようにする.システムは自動的に入場価格,最高/最低価格およびトリガー状態を記録し,完全に自動化された資金管理を実現する.

戦略的優位性

この戦略のコード実装を詳しく分析すると,以下の顕著な利点が得られます.

  1. 多層のトレンド確認: 4つの異なる周期のHMAで構築されたシステムにより,厳格な複数の確認機構が形成され,入口信号の信頼性が著しく向上し,偽の突破による損失が減少した.

  2. リスク管理に適応する戦略は,2段階のストップメカニズムを設計した (トリガー前硬性ストップとトリガー後の追跡ストップ) で,大幅な不利な状況でタイムリーにストップし,トレンドの状況で収益を最大化し,異なる市場環境に適応する.

  3. 収益を正確に固定するダイナミック・トラッキング・ストップ・ロスは,価格の高低を自動で追跡し, “利潤を駆け出す”という古典的な取引理念を実現し,人工の介入を必要とせずに利益のほとんどをロックします.

  4. 高度なカスタマイズ性3つのキーパラメータ (トリガー・値,トラッキング・幅度,最大損失) は,異なる品種,異なる波動性,異なるリスク好みに合わせて,ユーザーによってカスタマイズできます.

  5. ビジュアルサポート: 戦略はHMA指標とトレンドのクラウドの可視化を内蔵しており,トレーダーは現在のトレンド状態とエントリーポイントの合理性を直感的に理解することができます.

戦略リスク

この戦略は精巧に設計されていますが,以下のような潜在的なリスクがあります.

  1. 地震の危険性: 明確なトレンドがない区間振動市場では,HMA交差信号が頻繁に偽信号を生じ,連続したストップを発生させる可能性があります. 解決策は,波動率指数やトレンド強度確認などの追加のフィルタリング条件を追加することです.

  2. パラメータ感度戦略の性能は3つの重要なパラメータの設定に高度に依存しています. 不適切なパラメータは,早期のストップまたは利益のほとんどを逃す可能性があります. 異なる品種と時間周期に対するパラメータの最適化には,歴史の回帰が推奨されています.

  3. スライドポイントと取引コストの影響: スライドポイントと取引コストは,特に追跡幅の低い設定では,戦略のパフォーマンスを大きく影響する可能性があります. これらの要因は反測で考慮し,パラメータを適切に調整する必要があります.

  4. トレンド・ターニング・ポイントの遅延ハル移動平均は,従来の移動平均よりも反応が速いが,依然として一定の遅れがある.傾向が突然逆転すると,大きな引き下がりにつながる可能性がある.より敏感な短期指標と組み合わせて,出場タイミングを最適化することを考慮することができる.

  5. 単一の技術指標依存戦略は主にHMA指標シリーズに依存し,多次元的な市場分析が欠如しています.特定の市場条件では不良なパフォーマンスを発揮することがあります.動量指標や交付量指標などの他のタイプの指標と組み合わせてクロス検証を推奨しています.

戦略最適化の方向性

戦略的原理とリスク分析に基づいて,以下の方向から最適化することができます.

  1. 適応パラメータシステム:

    • 市場の変動率に基づいた動的パラメータ調整メカニズムを導入する.例えば,高い変動期間に追跡幅を増やし,低い変動期間にトリガー値を下げる.
    • 実現原理:ATR (平均リアル波幅) 指数を用いて市場の変動を量化し,パラメータとATRの関数的関係を構築できる
  2. 多時間枠分析:

    • より大きな時間帯のトレンド情報を統合し,より大きな時間帯のトレンド方向が一致している場合にのみ入場を許可する
    • 実施方法:より厳格なトレンドフィルタリングを形成するために,より大きな周期 (例えば1時間,4時間) のHMA状態のチェックを追加する
  3. 量能検証メカニズム:

    • 取引量確認条件を追加し,信号が表示されたときに取引量を増幅するように要求
    • 具体的実施: 追加のフィルタリング条件として相対交替量指標 (OBVまたは相対交替量変化率など) を使用できます.
  4. 脳の部分の停止:

    • バッチストップメカニズムを導入し,最初の目標位に達したときに部分のポジションをクリアし,残りの部分は追跡ストップを使用します.
    • 原則:この方法は,確実性利益と潜在的大傾向利益のバランスをとって,全体的なリスク・リターン比率を向上させる
  5. 機械学習の最適化:

    • 最適なパラメータの組み合わせと市場環境を動的に識別する機械学習アルゴリズム
    • 方法:現在の市場環境に適したパラメータ設定を予測するために,歴史的データに基づく分類モデルを構築できます.
  6. 逆走勢保護機構:

    • 極端な価格変動に対する反転保護の論理を追加し,短期間の異常な価格変動の場合に特別な処理を行う
    • 実現: 短期的な価格変動率を監視し,値下げを超えると一時的にストップ・ローズまたは直接平仓を調整できます.

要約する

多層動的追跡トレンド量化策略は,多周期的なHull移動平均指標とインテリジェントのストップ・ストップ・システムを組み合わせた高度な量化取引策略である.それは,厳格なトレンド確認メカニズムによって入場信号の信頼性を向上させ,同時に,多層のリスク管理システムを活用する.この戦略は,トリガー前の硬性ストップとトリガー後の動的追跡ストップを含む.

この戦略の核心的な優位性は,その自己適応性および体系化された利益管理方法によって,異なる市場環境で比較的安定したパフォーマンスを保つのである.しかしながら,戦略にはパラメータの感受性および単一の指標に依存するなどのリスクがあり,トレーダーが補助指標の検証,自己適応性パラメータシステムと多時間枠分析などの方法の構築を加えることで最適化する必要があります.

合理的なパラメータ設定と市場環境の分析を組み合わせることで,この戦略は中長期のトレンド追跡システムのコアコンポーネントとして使用され,トレーダーがリスクをコントロールしながら主要なトレンドの機会を把握し,安定した資金の成長を実現するのに役立ちます.

ストラテジーソースコード
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Samil Dogru SmartTrailing v1.1", overlay=true, pyramiding=0,
     default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === PARAMETRELER ===
triggerPerc     = input.float(1.2,  "Tetikleme Eşiği (%)", step=0.1)
trailPerc       = input.float(0.8,  "Trailing Marj (%)", step=0.1)
hardStopPerc    = input.float(2.5,  "Maksimum Zarar (%) (Tetiklenmeden önce)", step=0.1)

// === HMA'lar (giriş için referans) ===
hma100 = ta.hma(close, 100)
hma200 = ta.hma(close, 200)
hma500 = ta.hma(close, 500)
hma600 = ta.hma(close, 600)

isBull = hma500 > hma600
longCond  = ta.crossover(hma100, hma200) and isBull and hma100 > hma500 and hma200 > hma500
shortCond = ta.crossunder(hma100, hma200) and not isBull and hma100 < hma500 and hma200 < hma500

// === GİRİŞLER ===
if (longCond)
    strategy.entry("Long", strategy.long)
if (shortCond)
    strategy.entry("Short", strategy.short)

// === DURUM DEĞİŞKENLERİ ===
var float entryPrice    = na
var float maxSinceEntry = na
var bool  triggered     = false

// === POZİSYON AÇILDIĞINDA BAŞLAT ===
if strategy.opentrades > 0
    if na(entryPrice)
        entryPrice := strategy.position_avg_price
        maxSinceEntry := close
        triggered := false
    else
        // Güncel zirve/dip güncellemesi
        if strategy.position_size > 0
            maxSinceEntry := math.max(maxSinceEntry, close)
        if strategy.position_size < 0
            maxSinceEntry := math.min(maxSinceEntry, close)

        // Tetikleme kontrolü
        longTriggerPrice  = entryPrice * (1 + triggerPerc / 100)
        shortTriggerPrice = entryPrice * (1 - triggerPerc / 100)

        if strategy.position_size > 0 and close >= longTriggerPrice
            triggered := true
        if strategy.position_size < 0 and close <= shortTriggerPrice
            triggered := true

        // Çıkış kontrolü (trailing)
        if triggered
            if strategy.position_size > 0
                trailStop = maxSinceEntry * (1 - trailPerc / 100)
                if close <= trailStop
                    strategy.close("Long", comment="TRAIL EXIT LONG")
            if strategy.position_size < 0
                trailStop = maxSinceEntry * (1 + trailPerc / 100)
                if close >= trailStop
                    strategy.close("Short", comment="TRAIL EXIT SHORT")
        else
            // Tetiklenmeden önce sert zarar çıkışı (hard stop)
            if strategy.position_size > 0 and close <= entryPrice * (1 - hardStopPerc / 100)
                strategy.close("Long", comment="HARD STOP LONG")
            if strategy.position_size < 0 and close >= entryPrice * (1 + hardStopPerc / 100)
                strategy.close("Short", comment="HARD STOP SHORT")

// === POZİSYON KAPANDIĞINDA RESET ===
if strategy.opentrades == 0
    entryPrice := na
    maxSinceEntry := na
    triggered := false

// === GÖRSEL ===
plot(hma100,  title="HMA 100",  color=color.white,  linewidth=2)
plot(hma200,  title="HMA 200",  color=color.yellow, linewidth=3)
p1 = plot(hma500,  title="HMA 500",  color=color.green, linewidth=2)
p2 = plot(hma600, title="HMA 600", color=color.red,   linewidth=2)
fill(p1, p2, color=isBull ? color.new(color.green, 70) : color.new(color.red, 70), title="HMA Cloud")