
Strategi kuantitatif silang EMA-SMA pada pilar waktu ganda adalah strategi analisis teknis yang menggabungkan sinyal silang SMA dan EMA dan membantu penilaian melalui filter waktu ganda dan indikator RSI. Ide inti dari strategi ini adalah untuk menangkap titik silang EMA15 dan SMA60 sebagai titik masuk, sekaligus memasukkan sinyal EMA200 sebagai referensi tren jangka panjang, dan menggabungkan EMA200 dengan pilar waktu yang lebih tinggi untuk memfilter arah perdagangan, dan akhirnya menghindari perdagangan di area oversold melalui indikator RSI.
Prinsip-prinsip inti dari strategi ini didasarkan pada beberapa komponen analisis teknis berikut:
Moving Average Crossover:
Filter waktu ganda:
Mekanisme penyaringan RSI:
Sistem manajemen risiko:
Logika perdagangan strategi mengikuti pola pikir “mengikuti tren + konfirmasi ganda”, memastikan perdagangan hanya dalam arah probabilitas tinggi melalui mekanisme penyaringan berlapis, sementara melindungi keamanan dana melalui langkah-langkah kontrol risiko yang ketat.
Strategi ini memiliki beberapa keuntungan yang menonjol, seperti:
Mekanisme multiple confirmationKombinasi crossover rata-rata bergerak jangka pendek, penilaian tren jangka panjang dan penyaringan RSI, membentuk mekanisme konfirmasi tiga, secara signifikan meningkatkan kualitas sinyal, mengurangi false breaks dan sinyal salah.
Beradaptasi dengan lingkungan pasar yang berbedaDengan desain parameter, strategi dapat disesuaikan secara fleksibel untuk menyesuaikan diri dengan lingkungan pasar yang berbeda dan varietas perdagangan, seperti penyesuaian siklus moving average, RSI threshold, dan sebagainya.
Pengendalian risiko yang baik:
Manajemen waktu transaksiPendinginan otomatis sebelum penutupan, menghindari risiko malam dan ketidakpastian yang ditimbulkan oleh volatilitas penutupan, sangat cocok untuk pedagang intraday.
Filter tren waktu tinggiDengan memperkenalkan timeline yang lebih tinggi untuk menilai tren, memastikan bahwa arah perdagangan konsisten dengan tren besar dan meningkatkan tingkat kemenangan.
Desain modularKomponen-komponen strategi (generasi sinyal, mekanisme penyaringan, manajemen risiko) dapat dipisahkan dengan jelas, sehingga mudah dipahami dan disesuaikan, serta mudah dioptimalkan dan diperluas.
Meskipun strategi ini dirancang secara menyeluruh, ada risiko potensial sebagai berikut:
Parameter SensitivitasEfektivitas strategi sangat bergantung pada pengaturan parameter seperti siklus moving average, RSI thresholds, dan lain-lain. Kombinasi parameter yang berbeda mungkin diperlukan dalam lingkungan pasar yang berbeda, dan pengoptimalan parameter yang tidak tepat dapat menyebabkan over-fitting data historis.
Masalah keterbelakangan: Moving averages pada dasarnya merupakan indikator yang tertinggal, yang dapat menghasilkan sinyal yang terlambat dalam pasar yang sangat berfluktuasi atau berbalik cepat, melewatkan titik masuk terbaik atau menyebabkan penarikan yang lebih besar.
Performa pasar horizontal tidak baikDalam pasar yang tidak memiliki tren yang jelas, persilangan rata-rata bergerak dapat menghasilkan sinyal palsu yang sering terjadi, yang menyebabkan kerugian berkelanjutan.
Terlalu mengandalkan indikator teknisStrategi ini sepenuhnya didasarkan pada indikator teknis, tidak mempertimbangkan faktor-faktor mendasar dan sentimen pasar, yang mungkin tidak akan berkinerja baik di pasar yang didorong oleh berita atau peristiwa besar.
Stop loss tetapStop loss dengan titik tetap mungkin tidak cukup fleksibel di pasar yang berubah-ubah, stop loss mungkin terlalu longgar saat volatilitas meningkat, dan stop loss mungkin terlalu ketat saat volatilitas menurun.
Solusi:
Berdasarkan kerangka strategi yang ada, berikut adalah beberapa hal yang perlu dipertimbangkan:
Adaptasi dari fluktuasi:
Kekuatan konsistensi multi-waktu:
Konfirmasi volume transaksi:
Optimalisasi parameter dinamis:
Klasifikasi kondisi pasar:
Memperkenalkan optimasi pembelajaran mesin:
Keunggulan ini memungkinkan untuk memperbaiki kekurangan strategi yang memungkinkan kinerja yang stabil dalam lingkungan pasar yang lebih luas.
Multiple time frame SMA-EMA cross quantification strategy adalah sistem perdagangan analisis teknis yang terstruktur dan logis. Ini membentuk kerangka keputusan perdagangan bertingkat dengan menggabungkan sinyal crossover moving average, filter tren multi-time frame, dan penilaian RSI overbought dan oversold. Strategi ini juga mencakup mekanisme manajemen risiko yang komprehensif, termasuk beberapa metode stop loss dan kontrol waktu perdagangan.
Keuntungan utama dari strategi ini adalah mekanisme multiple confirmation dan pengendalian risiko yang baik, yang memungkinkannya untuk melakukan kinerja yang baik di pasar yang sedang tren, sementara risiko dikendalikan secara efektif. Namun, strategi ini juga memiliki masalah seperti sensitivitas parameter yang tinggi, adaptasi yang buruk terhadap pasar horizontal.
Ada banyak ruang untuk perbaikan strategi dengan cara memperkenalkan mekanisme adaptasi tingkat volatilitas, meningkatkan persyaratan konsistensi multi-tahap, meningkatkan konfirmasi volume transaksi, dan mengoptimalkan parameter dinamis. Pengoptimalan ini dapat membantu strategi lebih beradaptasi dengan berbagai lingkungan pasar, meningkatkan stabilitas dan profitabilitas secara keseluruhan.
Secara keseluruhan, ini adalah strategi mengikuti tren yang dirancang dengan baik dan cocok untuk digunakan oleh pedagang dengan basis analisis teknis tertentu. Dengan penyesuaian dan pengoptimalan parameter yang tepat, ini dapat menjadi alat perdagangan yang andal, terutama untuk lingkungan pasar dengan tren yang jelas dalam jangka menengah dan panjang.
/*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()