マルチバンド価格反転識別戦略:ホーンパターンとEMAトレンドフィルタリング技術に基づく

ATR EMA 趋势过滤 价格结构 反转识别 波动率过滤
作成日: 2025-06-09 15:46:32 最終変更日: 2025-06-09 15:46:32
コピー: 0 クリック数: 285
2
フォロー
319
フォロワー

マルチバンド価格反転識別戦略:ホーンパターンとEMAトレンドフィルタリング技術に基づく マルチバンド価格反転識別戦略:ホーンパターンとEMAトレンドフィルタリング技術に基づく

概要

多波段価格逆転識別戦略は,価格構造に基づく取引戦略で,市場における短期的な逆転の機会を捕捉するために”ホーンモデル” (角形) を中心とする.この戦略は,形状識別,トレンドフィルタリングおよび波動率確認の3次元を組み合わせて,特定の3つのKラインの組み合わせのパターンを識別し,第4のKライン (Kラインの確認) が特定の条件を満たしたときに取引信号をトリガーします.この戦略は,EMA20を主要トレンドフィルタリングツールとして採用し,取引方向が中期トレンドと一致することを確保し,ATR指標を低波動率の環境をフィルタリングしながら,取引品質を効果的に向上させます.

戦略原則

この戦略の核心原則は,価格構造の”ホーンパターン”である,すなわち3つのK線が形成する特定の価格パターンに基づいています.

  1. 多頭ホーンモード

    • 3つのK線を要求する[3]、bar[2]、bar[1]) 中,中K線 ((bar[2]) の低点は,両側のK線の低点より高い
    • 1番目と3番目K線は陽線でなければならない (閉じる価格は開くよりも高い)
    • “低点 - 高点 - 低点”の W 形構造を形成する
  2. 空頭ホーンモード

    • 三つのK線のうち,中間K線の高さが両側K線の高さより低いことを要求する
    • 1番目と3番目K線は陰線でなければならない (閉じる価格が開く価格より低い)
    • “高点-低点-高点”を形成するM形構造
  3. 確認条件

    • 多頭シグナル:第4のK線 ((確認K線) 閉盘価格は前3のK線の最高点を突破し,陽線である
    • 空頭シグナル:第4のKラインの閉盘価格は,前3のKラインの最低点を破り,陰線である
  4. フィルタリング条件

    • トレンドフィルター:多頭信号は,K線閉盘価格がEMA20より高いことを確認するよう求め,空頭信号は,K線閉盘価格がEMA20より低いことを確認するよう求め
    • 波動率フィルター: 確認されたK線または前K線の波動幅はATRより大きいもので,低波動環境を回避することを保証する

策略は精密な入場価格設定とリスク管理方法を採用している.多頭は,K線収束価格を確認した上で最小波動単位で入場し,空頭は,K線収束価格を確認した上で最小波動単位で入場する.ストップロスは,Hornモデルの構造極点で設定されている.多頭は最低点として減1チック,空頭は最高点として減1チック,ストップゴールは1Rである.リスクリターン比は1:1) である.

戦略的優位性

  1. 構造化された取引論理戦略は,明確な価格構造と形態の識別に基づいています.これは主観的な判断を減らし,取引の一致性と再現性を向上させます.

  2. 複数のフィルタリング:EMAのトレンドフィルターとATRの波動率フィルターにより,信号の質が著しく向上し,不利な市場環境下での誤った取引を回避した.

  3. リスク管理と入場の精度戦略は,明確なエントリーポイント,ストップポイント,ストップポイントを設定し,リスク管理を簡単で効率的にし,取引のリスクを事前に把握します.

  4. 視覚的な支援戦略: ホーン・モデルの構造線,入場価格線,目標価格線をグラフに描き,トレーダーが取引の論理と価格動きを直感的に理解できるようにする.

  5. 適応性が高い: 戦略は,複数の時間枠 ((5分から1時間) と高波動性の品種に適用され,広範な適用シナリオがあります.

  6. パラメータの可変性EMAの長さ,ATRの長さ,変動率の値などの重要なパラメータは,異なる市場条件と個人の好みに合わせて調整され,戦略の柔軟性を高めることができます.

戦略リスク

  1. 偽の突破の危険性:高波動的な市場では,価格が偽突破を形成し,シグナルを誘発した後に迅速に反転し,ストップが誘発される. 解決策は,追加の確認指標を追加するか,入場タイミングを調整する,例えば,再入場のためのリコールを待つことです.

  2. トレンド・ターニング・ポイントの不確実性: トレンド転換点の近くでは,EMAフィルタリングが初期反転信号を逃す可能性がある.この問題を緩和するために,他のトレンド識別ツールを追加するか,より敏感なEMAパラメータを設定することを検討することができます.

  3. 低流動性の環境リスク低流動性の環境では,滑り点は,実際の入場価格が理想的な価格から偏って,リスク・リターン比率に影響を及ぼす可能性があります.この戦略は,流動性の高い品種または主要取引の時に使用することをお勧めします.

  4. パラメータ感度:EMAとATRのパラメータの選択は,戦略の性能に顕著な影響を及ぼし,異なる市場環境では異なるパラメータの設定が必要になる可能性があります. 異なる市場条件の反射でパラメータを最適化することをお勧めします.

  5. 継続的な損失のリスク取引戦略には連続的な損失の可能性があり,合理的な資金管理プログラムが単一取引のリスクを制御し,資金曲線の大幅な引き下げを避ける必要があります.

戦略最適化の方向性

  1. 複数時間枠確認:より高いタイムフレームのトレンド確認メカニズムを導入し,より高いタイムフレームのトレンド方向が一致するときにのみ取引を実行し,信号品質を向上させる.これはより長い周期のEMAまたは他のトレンド指標を追加することによって実現できる.

  2. ダイナミック・ストップ・メカニズム:現在の戦略は固定1Rストップターゲットを使用し,強気なトレンドでより多くの利益を得るために,トラッキングストップまたはATRベースのダイナミックストップなどのダイナミックストップメカニズムを導入することを検討することができます.

  3. 変動率は自律的に変化します.:現在の戦略は,固定ATR値を使用して低波動環境をフィルタリングし,近期市場の波動特性に応じて値を自動的に調整する波動率自己適応機構を実現することを考慮することができます.

  4. 入学最適化: リコール入場ロジックを追加することを検討し,確認信号の後にリコールが少しで再入場を待つことで,よりよい入場価格とリスク・リターン比率を得ることができる.

  5. 価格行動確認: 基本ホーンモデルに基づいて,取引量確認,グラフ形状確認などの価格行動確認要素を追加し,信号の質をさらに向上させる.

  6. 機械学習の統合: 機械学習アルゴリズムの導入を検討し,過去データ訓練モデルを使用して最も成功する可能性のあるホーンパターンを識別し,信号品質のインテリジェントフィルタリングを実現する.

要約する

多波段価格逆転識別戦略は,価格構造識別,トレンドフィルタリング,波動率確認を組み合わせた取引システムであり,特定のホーンパターン逆転シグナルをキャプチャして,中期トレンドに従った場合に取引を実行する. この戦略の優点は,明確な構造化取引論理,正確なリスク管理,複数のフィルタリング機構であり,中期短期トレーダーに市場での逆転の機会をキャプチャするために適用されます.

戦略リスクは,主に偽の突破,トレンド転換点の不確実性,パラメータの感受性から生じるが,追加の確認機構を追加し,パラメータ設定を最適化し,資金管理を完善することにより,これらのリスクを効果的に管理することができる.将来の最適化の方向性は,多時間枠確認,ダイナミックストップ機構,波動率自己適応,機械学習の統合を含む.これらの最適化は,戦略の安定性と収益性をさらに向上させる見込みである.

全体として,この戦略はトレーダーに価格逆転を認識し,取引するための体系的,測定可能な方法を提供し,合理的なリスク管理と継続的な最適化と組み合わせて,トレーダーのツールキットに有効なツールになる可能性があります.

ストラテジーソースコード
/*backtest
start: 2024-06-09 00:00:00
end: 2024-12-03 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("🦌 Horn Pattern - Horn + FT - Ming Joo", overlay=true, max_lines_count=500)

// 样式设置
bullColor = input.color(color.green, "Bullish Horn")
bearColor = input.color(color.red, "Bearish Horn")
showEntry = input.bool(true, "Show Entry")

tightRangeThreshold = input.float(0.5, title="Panda Threshold (×ATR)")
atrLen = input.int(14, title="ATR Length")
atr = ta.atr(atrLen)


// bar 类型判断
isBull(i) => close[i] > open[i]
isBear(i) => close[i] < open[i]

// 熊猫烧香判断
//pandaHighRange = math.abs(math.max(high[1], high[2], high[3]) - math.min(high[1], high[2], high[3]))
//pandaLowRange = math.abs(math.max(low[1], low[2], low[3]) - math.min(low[1], low[2], low[3]))



// ========== Bull Horn 条件(bar[3], [2], [1])==========
bullHornPattern =  (low[2] > low[3] and    low[2] > low[1])  and  (  isBull(1)  and isBull(3) )


// ========== FT bar 确认(bar[0])==========
bullFT = bullHornPattern and    close > high[2] and    close > open and    high > math.max(high[3], high[2], high[1])


bearHornPattern =     high[2] < high[3] and    high[2] < high[1] and   (isBear(1)  and isBear(3))

// ========== FT bar 确认(bar[0])==========
bearFT = bearHornPattern and    close < low[2] and    close < open and    low < math.min(low[3], low[2], low[1])
// ========== 控制箭头的显示 ==========
var bool showBullArrow = false
var bool showBearArrow = false

tick = syminfo.mintick

emaLen = input.int(20, title="EMA Filter Length")
ema20 = ta.ema(close, emaLen)


contextFilter_bull = close > ema20  and  (math.abs(high[1]-low[1]) > atr or math.abs(high-low) > atr)
contextFilter_bear = close < ema20  and (math.abs(high[1]-low[1]) > atr or math.abs(high-low) > atr)

// === Bull Horn 执行逻辑 ===
if bullFT and contextFilter_bull
    hornLow = math.min(low[3], low[2], low[1])
    hornHigh = math.max(high[3], high[2], high[1])

    entry = close + tick

    stop = hornLow - tick
    r = entry - stop
    tp = entry + r

    strategy.entry("Long Horn", strategy.long,limit = entry)
    strategy.exit("Exit Long", from_entry="Long Horn", stop=stop, limit=tp)



// === Bear Horn 执行逻辑 ===
if bearFT and contextFilter_bear
    hornHigh = math.max(high[3], high[2], high[1])
    hornLow = math.min(low[3], low[2], low[1])

    entry = close - tick
    stop = hornHigh + tick
    r = stop - entry
    tp = entry - r


    strategy.entry("Short Horn", strategy.short,limit = entry)
    strategy.exit("Exit Short", from_entry="Short Horn", stop=stop, limit=tp)



// ========== 全局画箭头标记 ==========
plotshape(showBullArrow, location=location.belowbar, offset=-2, color=bullColor, style=shape.triangleup, size=size.small, title="Bull Arrow")
plotshape(showBearArrow, location=location.abovebar, offset=-2, color=bearColor, style=shape.triangledown, size=size.small, title="Bear Arrow")

// 重置
showBullArrow := false
showBearArrow := false