資源の読み込みに... 荷物...

トレンドフォロー・ギャップ・ブレークアウト・トレーディング・システムとSMAフィルター

作者: リン・ハーンチャオチャン開催日:2024年11月29日 15:07:43
タグ:ギャップSMAマルチ

img

概要

この戦略は,SMAトレンドフィルターと組み合わせた統計的に有意な価格ギャップを特定し,明確な市場トレンドが現れるときに取引を実行することによって,トレンド機会を捕捉する.コアコンセプトは,価格ギャップとして現れる供給と需要の不均衡によって生み出されるトレンド継続機会を活用することです.

戦略の原則

この戦略は,いくつかの重要な要素に基づいています.

  1. ギャップ識別 - このシステムは,小規模な変動をフィルタリングするための最小ギャップしきい値で,開店価格と前の閉店価格の割合差を計算することによってギャップを特定します.
  2. 方向選択 - 複数のギャップ取引モード (長アップギャップ,ショートダウンギャップ,など) を提供し,ユーザーが市場状況に適応できるようにします.
  3. SMAトレンドフィルタリング - 単純な移動平均値を使用して,全体的なトレンドを決定し,価格がトレンド方向に一致するときにのみポジションを入力します.
  4. ポジション管理 - ポジション管理とリスク管理のために事前に設定された保持期間を使用します.

戦略 の 利点

  1. 明確なシグナル - ギャップシグナルは視覚的に区別され,識別し実行するのが簡単です.
  2. 制御されたリスク - 最低ギャップの限界値と固定保持期間がリスクを効果的に管理します.
  3. 高い柔軟性 - 市場状況に応じて異なるギャップ取引方向を選択できます.
  4. トレンド確認 - SMAフィルターは,成功率を向上させる追加のトレンド確認を提供します.
  5. 高自動化 - 明確な戦略ロジックは自動化された取引の実施を容易にする.

戦略リスク

  1. 誤ったブレイクリスク - ギャップはすぐに埋められ,誤った信号になります.
  2. スリップリスク - ギャップ取引を開設すると,重大なスリップが発生する可能性があります.
  3. トレンド逆転リスク - 固定保持期間でトレンド逆転が見逃される可能性があります.
  4. 市場環境依存性 - 低波動性の市場では有効な信号が少ない.

戦略の最適化方向

  1. 動的保持期間 - 市場の変動に基づいて保持期間を調整する.
  2. 複数の確認 - 信号の確認のためにボリュームと波動性の指標を組み込む.
  3. Stop Loss Optimization - トレイリングストップまたは波動性ベースのストップを追加する.
  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)


関連性

もっと