Strategi kuantitatif silang SMA-EMA pelbagai rangka masa

SMA EMA RSI HTF TP/SL Trailing Stop
Tarikh penciptaan: 2025-06-16 14:55:14 Akhirnya diubah suai: 2025-06-16 14:55:14
Salin: 4 Bilangan klik: 257
2
fokus pada
319
Pengikut

Strategi kuantitatif silang SMA-EMA pelbagai rangka masa Strategi kuantitatif silang SMA-EMA pelbagai rangka masa

Gambaran keseluruhan

Strategi kuantitatif silang EMA-SMA berkala adalah strategi analisis teknikal yang menggabungkan isyarat silang purata bergerak sederhana (SMA) dan rata-rata bergerak indeks (EMA) dan penilaian tambahan melalui penyaringan penyaringan berkala dan RSI. Idea teras strategi ini adalah untuk menangkap titik silang EMA15 dan SMA60 sebagai titik masuk, sambil memperkenalkan isyarat EMA200 sebagai rujukan trend jangka panjang, dan menggabungkan EMA200 yang lebih tinggi dengan penyaringan arah perdagangan, akhirnya mengelakkan perdagangan di kawasan jual beli yang berlebihan melalui RSI.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah berdasarkan beberapa komponen analisis teknikal berikut:

  1. Rata-rata bergerak silang

    • Menggunakan 15 kitaran EMA dan 60 kitaran SMA silang sebagai isyarat utama
    • EMA15 merentasi SMA60 membentuk sinyal ganda
    • EMA15 bawah menembusi SMA60 membentuk isyarat kosong
    • 200 EMA kitaran sebagai garis rujukan trend jangka panjang
  2. Penapisan masa berganda

    • EMA200 yang memperkenalkan selang masa yang lebih tinggi (default 60 minit) sebagai alat penilaian trend
    • Hanya dibenarkan melakukan lebih apabila harga berada di atas EMA200 pada waktu tinggi
    • Keringan hanya dibenarkan apabila harga berada di bawah EMA200 pada waktu tinggi
    • Mekanisme penapisan ini memastikan arah dagangan selaras dengan trend dalam tempoh masa yang lebih besar
  3. Mekanisme penapis RSI

    • Gunakan RSI 14 kitaran untuk mengelakkan kedudukan di kawasan jual beli yang berlebihan
    • RSI di bawah 30 adalah kawasan oversold, sekatan shorting
    • RSI di atas 70 adalah kawasan overbought, had untuk melakukan lebih banyak
    • Reka bentuk ini membantu mengelakkan dagangan berlawanan dan meningkatkan kualiti kemasukan.
  4. Sistem pengurusan risiko

    • Tetapan penangguhan yang fleksibel, menyokong penentuan nilai tetap atau peratusan
    • Tetapan Stop Loss untuk nombor titik tetap
    • Mekanisme Henti Kerosakan, Kunci Keuntungan
    • Kawalan masa perdagangan untuk mengelakkan pegangan sebelum pasaran ditutup

Logik perdagangan strategi mengikuti pemikiran “mengikuti trend + pengesahan berganda”, dengan mekanisme penapisan berlapis memastikan perdagangan hanya dalam arah kebarangkalian yang tinggi, sambil melindungi keselamatan dana melalui langkah-langkah kawalan risiko yang ketat.

Kelebihan Strategik

Dengan analisis kod yang mendalam, strategi ini mempunyai kelebihan yang ketara:

  1. Mekanisme pengesahan bergandaGabungan antara purata bergerak jangka pendek, penilaian trend jangka panjang dan penapisan RSI, membentuk mekanisme pengesahan tiga, meningkatkan kualiti isyarat dengan ketara, mengurangkan pecah palsu dan isyarat salah.

  2. Beradaptasi dengan keadaan pasaran yang berbezaDengan reka bentuk parameter, strategi boleh disesuaikan secara fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza dan jenis perdagangan, seperti menyesuaikan kitaran purata bergerak, nilai RSI, dan sebagainya.

  3. Kawalan risiko yang baik

    • Sokongan pelbagai cara untuk berhenti ((setitik tetap / peratusan)
    • Dana perlindungan kerugian tetap
    • Trailing Stop Loss Locked Profit
    • Mekanisme pengurusan risiko bertingkat ini berkesan mengawal risiko terbesar dalam satu transaksi
  4. Pengurusan masa transaksi: Secara automatik menetapkan masa untuk menutup kedudukan sebelum penutupan, mengelakkan risiko malam dan ketidakpastian yang disebabkan oleh turun naik penutupan, terutama untuk peniaga dalam hari.

  5. Penapisan trend pada waktu yang tinggi: Meningkatkan kadar kemenangan dengan memastikan arah dagangan selaras dengan trend utama dengan memperkenalkan penilaian trend yang lebih tinggi.

  6. Reka bentuk modularKomponen-komponen strategi (generasi isyarat, mekanisme penapisan, pengurusan risiko) dipisahkan dengan jelas untuk memudahkan pemahaman dan penyesuaian, serta untuk memudahkan pengoptimuman dan pengembangan selanjutnya.

Risiko Strategik

Walaupun strategi ini dirancang secara menyeluruh, terdapat risiko yang berpotensi:

  1. Kepekaan ParameterKesan strategi sangat bergantung kepada parameter seperti kitaran purata bergerak, nilai RSI. Perbezaan keadaan pasaran mungkin memerlukan kombinasi parameter yang berbeza, dan pengoptimuman parameter yang tidak tepat boleh menyebabkan data sejarah yang terlalu sesuai.

  2. Masalah ketinggalan zaman: Rata-rata bergerak pada dasarnya adalah penunjuk yang ketinggalan, yang mungkin menghasilkan isyarat yang lebih lewat dalam pasaran yang bergolak atau berbalik dengan cepat, terlepas titik masuk terbaik atau menyebabkan penarikan balik yang lebih besar.

  3. Perkembangan pasaran yang kurang baikDalam pasaran yang tidak mempunyai trend yang jelas, persilangan purata bergerak boleh menghasilkan isyarat palsu yang kerap, yang menyebabkan kerugian berterusan.

  4. Terlalu banyak bergantung kepada petunjuk teknikalStrategi ini hanya berdasarkan kepada petunjuk teknikal dan tidak mengambil kira faktor asas dan sentimen pasaran, yang mungkin tidak berfungsi dengan baik dalam pasaran yang didorong oleh berita atau peristiwa utama.

  5. Risiko Hentian Tetap: Penutupan titik tetap mungkin tidak fleksibel dalam pasaran yang berubah-ubah, penutupan mungkin terlalu longgar apabila turun naik meningkat, dan penutupan mungkin terlalu ketat apabila turun naik menurun.

Penyelesaian:

  • Mengkaji semula pasaran dan tempoh yang berbeza untuk mencari kombinasi parameter yang kukuh
  • Pertimbangan untuk meningkatkan mekanisme penangguhan kerugian yang menyesuaikan diri dengan kadar turun naik
  • Menambah syarat penapisan tambahan di pasaran horizontal, seperti penurunan kadar turun naik
  • Strategi penambahbaikan yang digabungkan dengan faktor asas atau penunjuk sentimen pasaran
  • Pertimbangan untuk memasukkan mekanisme pengesahan jumlah transaksi untuk meningkatkan kualiti isyarat

Arah pengoptimuman strategi

Berdasarkan kerangka strategi yang sedia ada, berikut adalah beberapa arah pengoptimuman yang perlu dipertimbangkan:

  1. Mekanisme adaptasi kadar turun naik

    • Memperkenalkan ATR (Average True Range) untuk menyesuaikan tahap hentian dan hentian
    • Memperluas jangkauan stop loss dalam persekitaran yang bergelombang tinggi dan mengetatkan stop loss dalam persekitaran yang bergelombang rendah
    • Mekanisme penyesuaian ini dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.
  2. Peningkatan kesesuaian dalam jangka masa yang panjang

    • Menambah pengesahan selang masa pertengahan, membentuk tiga kerangka masa yang konsisten untuk keperluan jangka pendek + pertengahan + jangka panjang
    • Perdagangan hanya dijalankan apabila isyarat dari pelbagai tempoh masa adalah sama
    • Ini dapat mengurangkan risiko isyarat palsu.
  3. Pengesahan jumlah transaksi

    • Menambah analisis jumlah transaksi yang memerlukan peningkatan jumlah transaksi apabila isyarat muncul
    • Indeks jumlah urus niaga relatif seperti OBV atau Chaikin Money Flow boleh digunakan
    • Pengesahan jumlah transaksi dapat meningkatkan kualiti isyarat dan keberkesanan terobosan secara ketara
  4. Optimumkan parameter dinamik

    • Mempunyai mekanisme penyesuaian dinamik parameter untuk mengoptimumkan secara automatik purata bergerak kitaran dan RSI terhad berdasarkan prestasi pasaran terkini
    • Pendekatan penyesuaian ini dapat membantu strategi untuk menyesuaikan diri dengan keadaan pasaran yang berubah-ubah
  5. Klasifikasi keadaan pasaran

    • Tambahan modul pengenalan keadaan pasaran untuk membezakan pasaran trend dan pasaran goyah
    • Peraturan penjanaan dan penapisan isyarat yang berbeza untuk keadaan pasaran yang berbeza
    • Penyesuaian dinamik ini dapat meningkatkan kebolehan adaptasi strategi dalam pelbagai keadaan pasaran.
  6. Memperkenalkan pengoptimuman pembelajaran mesin

    • Menggunakan algoritma pembelajaran mesin seperti pokok keputusan atau rangkaian saraf untuk mengoptimumkan keputusan kemasukan
    • Mempertimbangkan faktor-faktor lain seperti musim, sentimen pasaran, turun naik dan sebagainya
    • Ini boleh meningkatkan kemampuan strategi untuk meramalkan dan menyesuaikan diri.

Arahan pengoptimuman ini dapat memperbaiki kekurangan strategi untuk mengekalkan prestasi yang stabil dalam persekitaran pasaran yang lebih luas.

ringkaskan

Strategi kuantitatif silang SMA-EMA berlainan waktu adalah sistem perdagangan analisis teknikal yang tersusun dengan baik dan logik yang jelas. Ia membentuk kerangka keputusan perdagangan berlainan peringkat dengan menggabungkan isyarat silang purata bergerak, penapisan trend berlainan waktu dan penghakiman RSI yang lebih baik.

Kelebihan utama strategi ini terletak pada mekanisme pengesahan berganda dan kawalan risiko yang baik, yang membolehkan ia berprestasi dalam pasaran yang sedang tren, sambil mengawal risiko dengan berkesan. Walau bagaimanapun, strategi ini juga mempunyai masalah seperti kepekaan parameter yang tinggi dan ketidakupayaan yang lemah terhadap pasaran horizontal.

Terdapat banyak ruang untuk penambahbaikan strategi dengan memperkenalkan mekanisme penyesuaian diri kadar turun naik, meningkatkan keperluan kesesuaian jangka masa, meningkatkan pengesahan jumlah transaksi, dan mencapai pengoptimuman parameter dinamik. Pengoptimuman ini dapat membantu strategi menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza, meningkatkan kestabilan dan keuntungan secara keseluruhan.

Secara keseluruhannya, ini adalah strategi mengikuti trend yang dirancang dengan baik dan sesuai untuk digunakan oleh peniaga yang mempunyai asas analisis teknikal. Dengan penyesuaian dan pengoptimuman parameter yang sesuai, ia boleh menjadi alat perdagangan yang boleh dipercayai, terutamanya dalam keadaan pasaran yang jelas mengenai trend jangka menengah dan jangka panjang.

Kod sumber strategi
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-15 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy(title="PhaiSinh_SMA & EMA [VNFlow]", overlay=true, slippage=1, backtest_fill_limits_assumption=1, initial_capital=100.000, default_qty_type=strategy.fixed, default_qty_value=4, commission_type=strategy.commission.cash_per_order, commission_value=2700,fill_orders_on_standard_ohlc=true, calc_on_order_fills=true, process_orders_on_close=true)

// === Chỉ báo chính ===
sma60 = ta.sma(close, 60)
ema15 = ta.ema(close, 15)
ema200 = ta.ema(close, 200)
plot(sma60, title="SMA 60", color=color.rgb(227, 10, 251), linewidth=1)
plot(ema15, title="EMA 15", color=color.rgb(246, 222, 11), linewidth=1)
plot(ema200, title="EMA 200", color=color.rgb(13, 141, 245), linewidth=1)

// === Cấu hình thời gian thoát trước khi hết phiên ===
session_close_hour = input.int(14, title="Giờ đóng phiên (24h)")
session_close_minute = input.int(30, title="Phút đóng phiên")
minutes_before_close = input.int(5, title="Số phút thoát lệnh trước đóng phiên")
exit_hour = session_close_hour
exit_minute = session_close_minute - minutes_before_close
exit_hour := exit_minute < 0 ? exit_hour - 1 : exit_hour
exit_minute := exit_minute < 0 ? exit_minute + 60 : exit_minute
cutoff_time = (hour > exit_hour) or (hour == exit_hour and minute >= exit_minute)

// === Bộ lọc RSI ===
use_rsi_filter = input.bool(true, title="Bộ lọc RSI?")
rsi_period = input.int(14, title="Chu kỳ RSI")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
rsi_val = ta.rsi(close, rsi_period)

// === Bộ lọc EMA từ HTF ===
use_htf_filter = input.bool(true, title="Bộ lọc EMA HTF?")
htf_tf = input.timeframe("60", title="Khung thời gian EMA cao hơn")
htf_ema = request.security(syminfo.tickerid, htf_tf, ta.ema(close, 200))
ema_trend_up = close > htf_ema
ema_trend_down = close < htf_ema

// === Cài đặt TP/SL/Trailing ===
use_percent_tp = input.bool(false, title="TP theo % (nếu không: tính theo tick)")
tp_value = input.float(1.0, title="Take Profit (tick hoặc %)")
sl_value = input.float(20.0, title="Stop Loss (tick)")
trail_offset = input.int(10, title="Trailing Stop (tick)")

// === Logic tín hiệu vào/ra ===
long_entry = ta.crossover(ema15, sma60) and close >= ema15 and not cutoff_time
short_entry = ta.crossunder(ema15, sma60) and close <= ema15 and not cutoff_time
long_ok = long_entry and (not use_htf_filter or ema_trend_up) and (not use_rsi_filter or rsi_val > rsi_oversold)
short_ok = short_entry and (not use_htf_filter or ema_trend_down) and (not use_rsi_filter or rsi_val < rsi_overbought)

// === Vào lệnh ===
if long_ok
    strategy.entry("Long", strategy.long)
if short_ok
    strategy.entry("Short", strategy.short)

// === Tính TP theo giá nếu chọn % ===
long_tp_price = close * (1 + tp_value / 100)
short_tp_price = close * (1 - tp_value / 100)

// === Thoát lệnh với TP/SL/Trailing ===
if strategy.position_size > 0
    if use_percent_tp
        strategy.exit("Dừng Long %", from_entry="Long", loss=sl_value, limit=long_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng Long Tick", from_entry="Long", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

if strategy.position_size < 0
    if use_percent_tp
        strategy.exit("Dừng Short %", from_entry="Short", loss=sl_value, limit=short_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng short Tick", from_entry="Short", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

// === Đóng toàn bộ trước phiên ===
if cutoff_time
    strategy.close_all()