適応型トレーリングストップロスシステムと組み合わせたマルチインジケーターモメンタムブレイクアウト戦略

OBV RSI MFI EMA Net Volume Trailing Stop momentum BREAKOUT
作成日: 2025-07-08 14:35:20 最終変更日: 2025-07-08 14:35:20
コピー: 0 クリック数: 273
2
フォロー
319
フォロワー

適応型トレーリングストップロスシステムと組み合わせたマルチインジケーターモメンタムブレイクアウト戦略 適応型トレーリングストップロスシステムと組み合わせたマルチインジケーターモメンタムブレイクアウト戦略

概要

この戦略は,複数の指標を組み合わせた定量取引システムであり,主要は取引量確認と動量指標の協同作用を使用して,市場突破の機会を捕捉する.この戦略は,取引量累積指標 (OBV),取引量ネット (Net Volume),相対的に強い指標 (RSI) と資金流動指標 (MFI) を統合し,指数移動平均線 (EMA) と連携してトレンドを確認し,ダイナミックストップトラッキングメカニズムを採用し,収益性とリスク管理を効果的にバランスさせる.

追溯データによると,この戦略は過去12ヶ月の15分周期で83.20%の勝利率を達成し,平均1取引が746.18USDTの利益をもたらし,最高の単一取引が65,654USDTの利益をもたらし,合計381の取引が完了した.これらのデータは,この戦略は,高周波取引環境で相当な安定性と利益の潜在性を示している.

戦略原則

この戦略の核心的な論理は,複数の指標の共同確認機構に基づいています.具体的には,以下の原理で動作します.

  1. 入学条件システムでは,主に複数のオッズを捕捉し,以下の条件がすべて満たされたときに買入シグナルをトリガーします.

    • OBV指数は21周期単調移動平均より高く,取引量による価格上昇を支えていることを示している.
    • 純取引量は正値で,現在の期間における買い値プレッシャーが売り値より大きいことを確認する
    • RSIが45を超えると,十分な動力があるが,過剰に買い過ぎていないことを示します.
    • MFI指数は50未満で,資金流入の可能性がまだ十分であることを示しています.
  2. 出場メカニズムダイナミック・トラッキング・ストップ・システム (DTS):

    • トリガーオフセット (Trigger Offset):価格上昇が入場価格の0.35%を超えるとストップトラッキングを起動する
    • トレイルオフセット (Trail Offset):価格が0.3%以上の高値を超えると平仓を触発する
    • 最大損失制御 (Max Loss): 追跡ストップが起動されているか否かに関わらず,入場価格の3%以上の値下がりで強制的に平仓
  3. 技術指標の組み合わせ

    • OBVと移動平均の比較は,取引量の累積傾向を検出するために使用される
    • 短期的な売買圧力のリアルタイムの指標である純取引量
    • RSIは価格動力の状態を識別するために使用される
    • MFIは,資金流動と市場の活性を評価するために使用されます.
    • 21周期EMAは,全体的なトレンド方向を確認するために使用されます.

この多層の確認メカニズムは,入場信号の質を保証し,ダイナミック・トラッキング・ストップ・ロスは,利益を効果的にロックし,リスクを制御する.

戦略的優位性

この戦略のコード構造と論理を深く分析すると,以下の顕著な利点が得られます.

  1. 多次元信号確認価格,取引量,動力の3次元指標を組み合わせると,偽信号の確率が大幅に低下します.OBV,純取引量,RSI,MFIが同時に条件を満たす場合,入場信号の信頼性が著しく向上します.

  2. 取引量による価格行動: OBVと純取引量による二重検証により,価格変動が十分な取引量に支えられることを確認し”,無量急落”の罠に陥らないようにする.

  3. インテリジェンス・ダイナミック・ストローこの戦略は,固定ストップを使用するのではなく,価格行動に応じて自動的にストップポジションを調整します.この方法は,資金を保護しながら,価格に十分な波動の余地を与えることができます.

  4. リスクの階層化: 偏移量,偏移量と最大損失を追跡する三層メカニズムを誘発することで,リスクの精細化管理を実現し,単一の保護メカニズムが機能しなくなることで引き起こされる重大な損失を防ぐ.

  5. 高周波取引の適応性15分間の時間枠に最適化され,日中の波動を捉え,短期的な市場情緒の波動を利用して,複数の取引機会を創出する.

  6. 安定した勝利率:83.20%の勝利率は,この戦略が一貫した信号品質を有することを示しており,これは量的な取引戦略の長期的持続性にとって重要である.

戦略リスク

この戦略は,非常に良い結果を出していますが,コード分析により,以下の潜在的なリスクが特定されています.

  1. 変動性依存: 戦略は,足る市場の波動に依存して,追跡停止メカニズムを触発する.低波動性の環境では,長期にわたってポジションを保持し,効果的に利益をロックすることができない可能性があります. 解決方法: タイムベースの停止メカニズムを追加したり,低波動期にトリガー偏移量パラメータを調整したりできる.

  2. 平均的な損失が大きい追溯データによると,平均損失 (−30,713 USDT) は平均利益 (7,097 USDT) よりはるかに大きい.勝利率は高いものの,少数の大きな損失は全体的な業績に重大な影響を及ぼします. 解決方法: 厳格な最大損失コントロールを設定したり,より多くの出場フィルタリング条件を追加することも考えられます.

  3. 利益因子が低い:0.231の利益因子は,リスクと報酬の比率に最適化スペースがあることを示している。 解決方法: ストップ・ロスの戦略を再評価し,最大損失率を下げるか,部分的な利益ロックメカニズムを増やす必要があるかもしれない.

  4. 単方向の好み戦略は,多くの機会を最適化することを目的としており,継続的な下落の市場では不十分なパフォーマンスを発揮する可能性があります. 解決方法: アクティベーションコードで定義されているが使用されていない空白条件を考慮するか,全体的な市場トレンドフィルターを追加する.

  5. パラメータ感度ストップ・ロスを追跡する3つの重要なパラメータ (トリガー偏移量,追跡偏移量,最大損失) は,戦略のパフォーマンスに顕著な影響を及ぼし,パラメータを正しく設定しないことは,早出や過度の損失を引き起こす可能性があります. 解決方法:パラメータの感受性分析を行い,最適なパラメータの範囲を決定し,市場の波動的な動態に基づいてこれらのパラメータの調整を考慮する.

戦略最適化の方向性

政策コードの詳細な分析に基づいて,以下はいくつかの可能な最適化方向です.

  1. 適応パラメータの調整: 現在,戦略は固定された追跡ストップ・ローズパラメータを使用し,市場の変動 (ATR指数など) に応じて動的に調整する偏移を誘発し,偏移を追跡することを考えることができます. 偏移を高変動の市場で増加させ,偏移を低変動の市場で減少させ,戦略を異なる市場環境により適したものにします.

  2. トレンド強度フィルター: 入場条件にトレンド強度評価を加え,例えばADX ((平均方向指数) を加え,トレンドが十分に強ければ入場し,市場を整理する際に過度な取引を避ける.これは偽の突破信号を効果的に減らす.

  3. 入場・出場区分: 修正コードは,バッチリ建仓とバッチリ平仓を実現する.例えば,資金を3枚に分けて,基本条件を満たしたときに入場1/3,条件が強かったときに加仓,同じ出場も3回分けて完了する.これにより,平均保有価格を最適化し,タイミング選択の圧力を軽減することができる.

  4. 市場環境分析を統合する: より高い時間周期に市場環境の評価を追加し,例えば,1時間または4時間のチャート上のトレンド方向を判断し,より大きなトレンドのサポートの場合のみで15分信号を実行し,信号の質を向上させる.

  5. 利益因子を最適化する: 部分利潤ロックメカニズムの追加,例えば,利潤が一定比率に達すると,利潤をロックする部分のポジションを平準化し,残りの部分は追跡ストップを継続する.これは,高い勝率と平均利潤比率の改善の矛盾をバランスすることができます.

  6. ショートショート戦略の追加: アクティベーションコードで既に定義されている空白条件と,空白策略に特別の最適化を行って,異なる市場環境で戦略が安定したパフォーマンスを維持できるようにする.

  7. タイムフィルター: タイムフィルター条件を追加し,主要な経済データ発表前後などの既知の低流動性または高変動性の時期を回避して,異常な状況から生じるリスクを軽減します.

要約する

この複数の指標の動量突破戦略は,取引量分析,動量指標,トレンド確認を巧みに組み合わせて,論理的に厳格な取引システムを構築しています.その核心的な優位性は,多次元信号確認を利用して入場品質を向上させ,同時に,自己適応的なストップトラッキングメカニズムによってリスクの動的管理を実現することです.

83.20%の高い勝利率は印象的であるが,平均損失が平均利益より大きいという状況は,戦略がリスク管理の面で改善の余地があることを示している.推奨された最適化措置,特に動態パラメータ調整,バッチ操作,部分利益のロックを実行することによって,戦略は,高い勝利率を維持しながら,全体のリスク・リターン比率を大幅に改善する見込みである.

経験豊富な量的なトレーダーにとって,この戦略は,個人のリスクの好みと資金管理の原則に基づいてカスタマイズされた調整を行うための堅固な枠組みを提供します.最も重要なことは,トレーダーは,この戦略の背後にある論理的原理を理解し,過去の反省されたパフォーマンスにのみ注目すべきです.

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

//@version=6
strategy("BullFinder_15M_OBV_RSI_MFI", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Göstergeler ===
// OBV
obv = ta.cum(math.sign(ta.change(close)) * volume)
obvMA = ta.sma(obv, 21)

// Net Volume
netVol = request.security(syminfo.tickerid, "1", volume - volume[1])

// RSI & MFI
rsi = ta.rsi(close, 14)
mfi = ta.mfi(hlc3, 14)
ema21 = ta.ema(close, 21)

// === Trailing Stop Parametreleri ===
trigger_offset = input.float(0.35, "Trigger Offset (%)") / 100
trail_offset   = input.float(0.3,  "Trail Offset (%)") / 100
max_loss       = input.float(3.0,  "Max Loss (%)")     / 100

// === Durum Değişkenleri ===
var float highestPrice = na
var bool  trailActive = false

// === GİRİŞ KOŞULLARI ===
// Long (Aynı kaldı)
longCond = obv > obvMA and netVol > 0 and rsi > 45 and mfi < 50

// Short (Genişletildi - v2.9)
shortCond1 = rsi > 70 and obv < obv[1] and netVol < 0 and close < close[1]              // Reversal
shortCond2 = rsi > 65 and mfi > 80 and close < ema21                                    // Weak Pullback
shortCond  = shortCond1 or shortCond2

// === Giriş Emirleri ===
if longCond
    strategy.entry("Long", strategy.long)
    highestPrice := close
    trailActive := false

if shortCond
    // strategy.entry("Short", strategy.short)
    highestPrice := close
    trailActive := false

// === Long Trailing Stop ===
if strategy.position_size > 0
    highestPrice := math.max(highestPrice, high)
    triggerPrice = strategy.opentrades.entry_price(0) * (1 + trigger_offset)
    lossLevel    = strategy.opentrades.entry_price(0) * (1 - max_loss)
    trailLevel   = highestPrice * (1 - trail_offset)

    if not trailActive and close > triggerPrice
        trailActive := true

    if (trailActive and close < trailLevel) or close < lossLevel
        strategy.close("Long")

// === Short Trailing Stop ===
if strategy.position_size < 0
    highestPrice := math.min(highestPrice, low)
    triggerPrice = strategy.opentrades.entry_price(0) * (1 - trigger_offset)
    lossLevel    = strategy.opentrades.entry_price(0) * (1 + max_loss)
    trailLevel   = highestPrice * (1 + trail_offset)

    if not trailActive and close < triggerPrice
        trailActive := true

    if (trailActive and close > trailLevel) or close > lossLevel
        strategy.close("Short")


// === ALERT ŞARTLARI ===
alertcondition(longCond, title="BullFinder Long Signal", message="BullFinder: Long Entry on {{ticker}} at {{close}}")