
Triple Index Moving Average dan Triple Relative Moving Average Adaptive Channel Cross Strategy adalah sistem perdagangan kuantitatif yang menggabungkan EMA (Indeks Moving Average) dan RMA (Relative Moving Average) periode pendek. Strategi ini menggunakan indikator ATR (Real Tone Ratio) untuk membangun saluran harga dan mengidentifikasi sinyal masuk dengan menangkap tindakan harga yang melanggar saluran tersebut. Strategi ini memiliki mekanisme manajemen risiko yang dibangun dengan ukuran posisi yang dihitung dengan menggunakan rasio risiko tetap dan menggunakan harga bukaan sebagai titik berhenti, sementara mekanisme posisi yang disepakati dirancang berdasarkan harga bukaan periode sebelumnya, membentuk sistem perdagangan yang lengkap.
Logika inti dari strategi ini didasarkan pada kombinasi dua set rata-rata dengan saluran ATR-nya:
Sistem saluran EMA:
Sistem RMA:
Kondisi pemicu sinyal:
Manajemen Posisi:
Mekanisme Stop Loss dan Pemberhentian:
Tanggapan cepat terhadap perubahan pasarDengan menggunakan rata-rata bergerak dengan periode yang sangat pendek, strategi ini dapat menangkap fluktuasi harga dengan cepat dan masuk ke tren tepat waktu.
Mekanisme konfirmasi gandaSistem EMA dan RMA bekerja sama, dan ketika keduanya mengirimkan sinyal ke arah yang sama, reliabilitas transaksi meningkat secara signifikan.
Adaptasi untuk fluktuasiDengan penyesuaian lebar saluran melalui indikator ATR, strategi dapat secara otomatis menyesuaikan sensitivitas dalam lingkungan fluktuasi yang berbeda.
Pengendalian Risiko yang TepatSetiap transaksi risiko tetap sebesar 0,5% dari jumlah akun, dan batas risiko transaksi tunggal dikontrol secara ketat.
Strategi Keluar yang JelasPada bulan Agustus, perusahaan ini mengumumkan bahwa mereka telah mengkonsolidasikan sahamnya di bawah harga yang sama dengan periode sebelumnya, dan bahwa mereka akan melakukan penarikan pada bulan September.
Perkalian saluran diferensiasi: Saluran EMA menggunakan 1.5 kali ATR, sedangkan Saluran RMA menggunakan 1.0 kali ATR, desain ini membuat kedua sistem memiliki sensitivitas yang berbeda untuk menangkap berbagai jenis peluang pasar.
Risiko Terlalu Banyak BerdagangMoving averages dengan periodik yang sangat pendek (3) dapat menghasilkan terlalu banyak sinyal palsu di pasar yang bergoyang, yang menyebabkan erosi perdagangan dan biaya yang sering terjadi.
Stop loss terlalu tetapMenggunakan harga bukaan sebagai titik tolak mungkin tidak selalu menjadi pilihan terbaik, terutama dalam situasi fluktuasi tinggi atau di pasar yang tidak stabil.
Kondisi pegadaian yang lebih sederhanaJika Anda memiliki banyak uang, Anda mungkin memiliki banyak uang yang Anda miliki, tetapi jika Anda tidak memiliki banyak uang, Anda mungkin tidak memiliki banyak uang.
Kurangnya penyaringan pasarStrategi tidak membedakan antara kondisi pasar yang berbeda (trend/shake), mungkin sering diperdagangkan dalam kondisi pasar yang tidak sesuai.
Risiko Optimasi Parameter: Parameter saat ini (seperti siklus 3 dan ATR) mungkin terlalu cocok dengan data historis, dan kinerja di masa depan tidak pasti.
Optimalisasi adaptasi kondisi pasar:
Konfirmasi multi-frame waktu:
Optimasi stop loss dinamis:
Peningkatan strategi posisi kosong:
Evaluasi kualitas sinyal:
Triple Indeks Moving Average dan Triple Relative Moving Average Adaptive Cross-Channel Strategi dengan cerdik menggabungkan dua jenis moving average dan ATR channel, membentuk sistem perdagangan yang sensitif terhadap terobosan harga dan memiliki kemampuan untuk mengendalikan risiko. Strategi ini sangat cocok untuk menangkap fluktuasi harga jangka pendek dan bereaksi cepat terhadap tren yang berkembang pesat.
Namun, strategi ini juga memiliki potensi risiko over-trading dan masalah adaptasi dengan kondisi pasar. Dengan cara menambahkan pemfilteran kondisi pasar, mengoptimalkan mekanisme stop loss, dan memperkenalkan konfirmasi multi-frame waktu, strategi ini dapat secara signifikan meningkatkan stabilitas dan kinerja jangka panjang. Khususnya, penambahan kemampuan untuk mengidentifikasi lingkungan pasar akan memungkinkan strategi untuk berpartisipasi dalam perdagangan secara selektif dalam berbagai kondisi pasar, dan meningkatkan kepraktisan dan profitabilitas strategi lebih lanjut.
Secara keseluruhan, ini adalah strategi perdagangan kuantitatif yang terstruktur dengan jelas dan logis, dengan dasar teoritis yang baik dan potensi aplikasi. Dengan arah optimasi yang disarankan dalam artikel ini, strategi ini diharapkan untuk menunjukkan adaptasi dan stabilitas yang lebih kuat dalam berbagai lingkungan pasar.
/*backtest
start: 2024-04-07 00:00:00
end: 2025-04-06 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA3 & RMA3 ATR Strategy", overlay=true, initial_capital=10000, currency=currency.USD)
// —— 输入参数 ——
ema_len = input.int(3, "EMA周期")
ema_mult = input.float(1.5, "EMA通道ATR乘数", step=0.1)
rma_len = input.int(3, "RMA周期")
rma_mult = input.float(1.0, "RMA通道ATR乘数", step=0.1)
atr_len = input.int(3, "ATR周期")
// —— 核心计算 ——
ema_val = ta.ema(close, ema_len)
atr_val = ta.atr(atr_len)
ema_upper = ema_val + atr_val * ema_mult
ema_lower = ema_val - atr_val * ema_mult
rma_val = ta.rma(close, rma_len)
rma_upper = rma_val + atr_val * rma_mult
rma_lower = rma_val - atr_val * rma_mult
// —— 信号条件 ——
ema_buy = barstate.isconfirmed and close > ema_upper
ema_sell = barstate.isconfirmed and close < ema_lower
rma_buy = barstate.isconfirmed and close > rma_upper
rma_sell = barstate.isconfirmed and close < rma_lower
// —— 仓位计算 ——
risk_percent = 0.5 // 单次风险0.5%
position_size(price, stop_price) =>
risk_amount = strategy.equity * risk_percent / 100
math.abs(price - stop_price) > 0 ? (risk_amount / math.abs(price - stop_price)) : na
// —— 交易逻辑 ——
var float prev_open = na
if barstate.isconfirmed
prev_open := open[1]
// 多单逻辑
if (ema_buy or rma_buy) and strategy.position_size == 0
stop_price = open
qty = position_size(close, stop_price)
if not na(qty)
strategy.entry("Long", strategy.long, qty=qty)
strategy.exit("Long Stop", "Long", stop=stop_price)
// 空单逻辑
if (ema_sell or rma_sell) and strategy.position_size == 0
stop_price = open
qty = position_size(close, stop_price)
if not na(qty)
strategy.entry("Short", strategy.short, qty=qty)
strategy.exit("Short Stop", "Short", stop=stop_price)
// 平仓逻辑
if strategy.position_size > 0
if ta.crossover(low, prev_open)
strategy.close("Long")
if strategy.position_size < 0
if ta.crossunder(high, prev_open)
strategy.close("Short")
// —— 可视化 ——
plot(ema_val, "EMA3", color.new(#00BFFF, 0), 2)
plot(ema_upper, "EMA Upper", color.red, 1)
plot(ema_lower, "EMA Lower", color.green, 1)
plot(rma_val, "RMA3", color.new(#FFA500, 0), 2)
plot(rma_upper, "RMA Upper", #FF1493, 1)
plot(rma_lower, "RMA Lower", #32CD32, 1)