Sumber daya yang dimuat... Pemuatan...

Sistem Trading Gap Breakout Trend-Following dengan Filter SMA

Penulis:ChaoZhang, Tanggal: 2024-11-29 15:07:43
Tag:GAPSMAMA

img

Gambaran umum

Ini adalah sistem perdagangan yang mengikuti tren berdasarkan kesenjangan harga dan penyaringan rata-rata bergerak. Strategi ini menangkap peluang tren dengan mengidentifikasi kesenjangan harga yang signifikan secara statistik dikombinasikan dengan filter tren SMA, mengeksekusi perdagangan ketika tren pasar yang jelas muncul.

Prinsip Strategi

Strategi ini bekerja pada beberapa elemen utama:

  1. Identifikasi Gap - Sistem mengidentifikasi gap dengan menghitung persentase perbedaan antara harga pembukaan dan harga penutupan sebelumnya, dengan ambang minimum gap untuk menyaring fluktuasi kecil.
  2. Pemilihan Arah - Menawarkan beberapa mode perdagangan gap (gap panjang, gap pendek, dll.), Yang memungkinkan pengguna untuk beradaptasi dengan kondisi pasar.
  3. SMA Trend Filtering - Menggunakan Simple Moving Average untuk menentukan tren keseluruhan, hanya memasuki posisi ketika harga sejajar dengan arah tren.
  4. Manajemen Posisi - Memakai periode penyimpanan yang telah ditetapkan untuk manajemen posisi dan pengendalian risiko.

Keuntungan Strategi

  1. Sinyal yang jelas - Sinyal celah secara visual berbeda dan mudah diidentifikasi dan dilaksanakan.
  2. Risiko terkontrol - ambang batas celah minimum dan periode penahanan tetap secara efektif mengelola risiko.
  3. Fleksibilitas tinggi - Arah perdagangan gap yang berbeda dapat dipilih berdasarkan kondisi pasar.
  4. Konfirmasi Tren - Filter SMA memberikan konfirmasi tren tambahan, meningkatkan tingkat keberhasilan.
  5. Otomatisasi Tinggi - Logika strategi yang jelas memfasilitasi implementasi perdagangan otomatis.

Risiko Strategi

  1. Risiko Kebocoran Palsu - Celah-celah dapat dengan cepat diisi, yang mengarah pada sinyal palsu.
  2. Risiko slippage - Opening gap trades dapat menghadapi slippage yang signifikan.
  3. Risiko Pembalikan Tren - Periode penyimpanan tetap mungkin tidak mengalami pembalikan tren.
  4. Dependensi Lingkungan Pasar - Sinyal yang kurang efektif di pasar dengan volatilitas rendah.

Arah Optimasi Strategi

  1. Periode Holding Dinamis - Sesuaikan waktu Holding berdasarkan volatilitas pasar.
  2. Multiple Confirmations - Menggabungkan indikator volume dan volatilitas untuk konfirmasi sinyal.
  3. Stop Loss Optimization - Tambahkan trailing stop atau stop berbasis volatilitas.
  4. Grading sinyal - Desain ukuran posisi bertingkat berdasarkan besar celah.
  5. Pemilihan Pasar - Mengembangkan mekanisme identifikasi kondisi pasar untuk perdagangan selektif.

Ringkasan

Strategi ini menggabungkan kesenjangan harga dan penyaringan tren rata-rata bergerak untuk menciptakan sistem perdagangan dengan logika yang jelas dan risiko yang terkendali. Melalui pengaturan parameter yang tepat dan pengoptimalan berkelanjutan, strategi dapat mencapai pengembalian yang stabil di pasar tren. Pedagang disarankan untuk melakukan pengujian historis menyeluruh sebelum implementasi langsung dan mengoptimalkan berdasarkan karakteristik pasar tertentu.


/*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)


Berkaitan

Lebih banyak