
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada crossover dan kontrol interval waktu dari moving average (EMA) multi-indeks. Strategi ini menggunakan sinyal crossover dari 50 siklus EMA dengan 5 siklus dan 10 siklus EMA untuk menghasilkan keputusan beli dan jual. Strategi ini juga mengintegrasikan mekanisme interval waktu 30 grafik untuk menghindari overtrading, dan menetapkan tingkat stop loss dan stop loss yang tetap untuk mengelola risiko.
Sistem rata-rata: Strategi menggunakan tiga EMA - 50 siklus (lambat), 10 siklus (sedang) dan 5 siklus (cepat).
Sinyal masuk:
Kontrol Jarak Waktu: Sebelum melakukan perdagangan baru, strategi memastikan bahwa setidaknya 30 siklus grafik telah berlalu sejak perdagangan terakhir. Ini membantu mengurangi perdagangan bising dan fokus pada perubahan tren yang lebih signifikan.
Manajemen Risiko:
Eksekusi transaksi:
Visualisasi: Strategi menggambar tiga garis EMA dan sinyal perdagangan di grafik untuk memudahkan analisis dan pengukuran.
Konfirmasi ganda: Menggunakan dua EMA cepat ((5 dan 10 siklus) sekaligus melintasi EMA lambat ((50 siklus) memberikan sinyal konfirmasi tren yang lebih kuat, yang dapat mengurangi false breakout.
Pelacakan tren: 50 siklus EMA sebagai indikator tren utama, membantu menangkap tren pasar jangka menengah dan panjang.
Filter waktu: Permintaan interval 30 siklus pemetaan secara efektif mengurangi over-trading dan meningkatkan kualitas sinyal.
Pengendalian risiko: Tingkat stop loss dan stop loss yang tetap memberikan rasio risiko-pengembalian yang jelas untuk setiap perdagangan.
Otomatisasi: Strategi sepenuhnya otomatis, menghilangkan gangguan emosional buatan manusia.
Adaptabilitas: Meskipun strategi menggunakan parameter tetap, logikanya dapat dengan mudah beradaptasi dengan pasar dan kerangka waktu yang berbeda.
Bantuan visual: representasi grafis dari garis EMA dan sinyal perdagangan membantu penilaian intuitif dari kinerja strategi.
Lagging: EMA pada dasarnya adalah indikator lagging, yang mungkin bereaksi lambat dalam pasar yang sangat berfluktuasi.
Pertunjukan di pasar yang bergoyang: Dalam pasar yang bergoyang, strategi dapat menghasilkan sinyal palsu yang sering.
Fixed Stop Loss: Meskipun menyediakan manajemen risiko yang stabil, mungkin tidak cocok untuk semua kondisi pasar.
Sensitivitas parameter: Pilihan siklus EMA dan interval waktu dapat secara signifikan mempengaruhi kinerja strategi.
Terlalu bergantung pada indikator teknis: Strategi tidak mempertimbangkan faktor-faktor mendasar, dan mungkin tidak akan bekerja dengan baik pada peristiwa berita besar.
Risiko penarikan balik: Strategi mungkin menghadapi penarikan balik yang lebih besar jika terjadi pembalikan tren yang kuat.
Eksekusi slippage: Dalam pasar yang cepat, mungkin menghadapi risiko eksekusi slippage yang lebih tinggi.
Penyesuaian parameter dinamis: Pertimbangkan untuk menyesuaikan siklus EMA dan interval perdagangan sesuai dengan dinamika volatilitas pasar.
Masukkan indikator kuantitatif: Gabungkan volume lalu lintas atau indikator momentum lainnya untuk meningkatkan keandalan sinyal.
Adaptive Stop Loss: Tingkat Stop Loss berdasarkan volatilitas pasar atau pengaturan ATR yang dinamis.
Klasifikasi kondisi pasar: masukkan logika penilaian kondisi pasar ((trend/shake), gunakan strategi perdagangan yang berbeda dalam kondisi yang berbeda.
Fusion time frame: Mempertimbangkan konfirmasi sinyal dari beberapa time frame untuk meningkatkan kualitas transaksi.
Manajemen risiko: Memperkenalkan logika pengukuran posisi, menyesuaikan volume perdagangan sesuai dengan risiko akun dan fluktuasi pasar.
Menambahkan filter: seperti indikator intensitas tren atau filter tingkat fluktuasi untuk mengurangi sinyal palsu.
Optimasi Retrospektif: melakukan optimasi parameter yang lebih luas dan pengujian sampingan untuk meningkatkan kehandalan strategi.
Strategi integrasi multi-equilibrium crossover dengan interval waktu adalah sistem perdagangan kuantitatif yang menggabungkan analisis teknis dan manajemen risiko. Strategi ini menangkap tren melalui beberapa EMA crossover, meningkatkan kualitas sinyal dengan menggunakan filter waktu, dan mengelola risiko melalui stop loss yang tetap. Meskipun strategi ini menunjukkan potensi untuk menangkap tren jangka panjang, tetapi juga menghadapi beberapa keterbatasan indikator teknis yang melekat.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Cross Strategy", overlay=true)
// Define the EMAs
ema50 = ta.ema(close, 50)
ema5 = ta.ema(close, 5)
ema10 = ta.ema(close, 10)
// Define crossover and crossunder conditions
buyCondition = ta.crossover(ema5, ema50) and ta.crossover(ema10, ema50)
sellCondition = ta.crossunder(ema5, ema50) and ta.crossunder(ema10, ema50)
// Calculate pip values
pip = syminfo.mintick * 10
takeProfitPips = 50 * pip
stopLossPips = 30 * pip
// Track the last order time to ensure 30 candle gap
var float lastOrderTime = na
timeElapsed = (na(lastOrderTime) ? na : (time - lastOrderTime) / (1000 * syminfo.mintick))
// Close previous orders before opening new ones
if (buyCondition or sellCondition) and (na(timeElapsed) or timeElapsed >= 30)
strategy.close_all()
lastOrderTime := time
// Open buy orders
if buyCondition and (na(timeElapsed) or timeElapsed >= 30)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=takeProfitPips, stop=stopLossPips)
lastOrderTime := time
// Open sell orders
if sellCondition and (na(timeElapsed) or timeElapsed >= 30)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=takeProfitPips, stop=stopLossPips)
lastOrderTime := time
// Plot signals
plotshape(series=buyCondition and (na(timeElapsed) or timeElapsed >= 30), location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition and (na(timeElapsed) or timeElapsed >= 30), location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot EMAs for visualization
plot(ema50, color=color.blue, title="EMA 50")
plot(ema5, color=color.orange, title="EMA 5")
plot(ema10, color=color.purple, title="EMA 10")