トレンドギャップブレイクアウトSMAフィルター取引システム

GAP SMA MA
作成日: 2024-11-29 15:07:43 最終変更日: 2024-11-29 15:07:43
コピー: 0 クリック数: 377
1
フォロー
1617
フォロワー

トレンドギャップブレイクアウトSMAフィルター取引システム

概要

これは,価格跳躍と移動平均のフィルタリングに基づくトレンド追跡取引システムである.この戦略は,統計的に有意な価格跳躍の信号を識別し,SMAトレンドフィルターと組み合わせて,市場が明確なトレンドを形成するときに取引を行う.戦略の核心心理は,需要と供給の不均衡によって引き起こされる価格跳躍によってもたらされるトレンド継続の機会を捕捉することである.

戦略原則

この戦略は以下の重要な要素に基づいています.

  1. 跳躍識別 - システムは,開盤価格と前回の閉盤価格のパーセント差を計算して跳躍を識別し,微小な変動をフィルターするために最小跳躍値を設定する.
  2. 方向性選択 - 多種多様な跳躍取引モードが提供される (上昇跳躍,下降跳躍など),市場状況に応じて柔軟に選択することができます.
  3. SMAのトレンドフィルター - シンプル・ムービング・アベアで全体的なトレンドを判断し,価格がトレンドの方向と一致している場合にのみポジションを開きます.
  4. ポジション管理 - ポジションを管理するために預定されたポジション管理周期を採用し,リスクを効果的に制御する.

戦略的優位性

  1. 信号明瞭 - 飛び降り信号は判断と実行に便利である.
  2. リスク管理 - 最低空飛値と保有期間を設定することで,リスクを効果的に制御する.
  3. 柔軟性 - 市場の状況に応じて異なるジャンプトレード方向を選択できます.
  4. トレンド確認 - SMAフィルターにより,トレンド確認が追加され,取引の成功率が向上する.
  5. 自動化度が高い - 戦略の論理が明確で,自動化取引を容易に実現する.

戦略リスク

  1. 偽突破の危険性 - 飛び降りた後に急速な補足が起こり,偽信号を引き起こす.
  2. スライドポイントリスク - オープン・ジャンプ取引は大きなスライドポイントに直面する可能性があります.
  3. トレンド反転リスク - 固定期間の保有者はトレンド反転を逃す可能性があります.
  4. 市場環境依存 - 低波動率の市場では,有効なシグナルが少ない.

戦略最適化の方向性

  1. ダイナミックなポジション保持期 - 市場の変動率に動的に調整されたポジション保持時間.
  2. 多重確認 - 交差量,波動率などの指標を導入して信号確認を行う.
  3. ストップ・ローズ・最適化 - 追跡ストップまたは波動率ストップを追加する.
  4. 信号階層化 - 跳躍幅に応じて階層化して設計された倉庫開きシステム。
  5. 市場選択 - 市場環境の識別機構を確立し,適切な市場条件で取引する.

要約する

この戦略は,価格飛躍と均線トレンドフィルタを組み合わせて,論理的に明確な,リスクが制御可能な取引システムを構築している.合理的なパラメータ設定と継続的な最適化により,この戦略は,トレンド市場で安定した収益を得ることができる.トレーダーは,実況使用の前に十分な歴史テストを行い,特定の市場特性に応じてターゲットに最適化することを推奨している.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simplified Gap Strategy with SMA Filter", overlay=true)

// Input fields for user control
long_gap_threshold = input.float(0.1, title="Gap Threshold (%)", minval=0.01, step=0.01)  // Minimum percentage for gaps
hold_duration = input.int(10, title="Hold Duration (bars)", minval=1)  // Duration to hold the position
gap_trade_option = input.string("Long Up Gap", title="Select Trade Option", options=["Long Up Gap", "Short Down Gap", "Short Up Gap", "Long Down Gap"])  // Combined option
use_sma_filter = input.bool(false, title="Use SMA Filter")  // Checkbox to activate SMA filter
sma_length = input.int(200, title="SMA Length", minval=1)  // Length of the SMA

// RGB color definitions for background
color_up_gap = color.new(color.green, 50)    // Green background for up gaps
color_down_gap = color.new(color.red, 50)    // Red background for down gaps

// Gap size calculation in percentage terms
gap_size = (open - close[1]) / close[1] * 100  // Gap size in percentage

// Calculate gaps based on threshold input
up_gap = open > close[1] and gap_size >= long_gap_threshold  // Long gap condition
down_gap = open < close[1] and math.abs(gap_size) >= long_gap_threshold  // Short gap condition

// Calculate the SMA
sma_value = ta.sma(close, sma_length)

// Define the trading logic based on selected option and SMA filter
if (gap_trade_option == "Long Up Gap" and up_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)
if (gap_trade_option == "Short Down Gap" and down_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Short Up Gap" and up_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Long Down Gap" and down_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)

// Exit position after the hold duration
if (strategy.opentrades > 0)
    if (bar_index - strategy.opentrades.entry_bar_index(0) >= hold_duration)
        strategy.close("Long")
        strategy.close("Short")

// Background coloring to highlight gaps on the chart
bgcolor((gap_trade_option == "Long Up Gap" and up_gap) ? color_up_gap : na, title="Up Gap Background")
bgcolor((gap_trade_option == "Short Down Gap" and down_gap) ? color_down_gap : na, title="Down Gap Background")
bgcolor((gap_trade_option == "Short Up Gap" and up_gap) ? color_down_gap : na, title="Short Up Gap Background")
bgcolor((gap_trade_option == "Long Down Gap" and down_gap) ? color_up_gap : na, title="Long Down Gap Background")

// Plot the SMA for visualization
plot(use_sma_filter ? sma_value : na, color=color.white, title="SMA", linewidth=1)