
Strategi ini didasarkan pada prinsip moving averages untuk membuat sinyal perdagangan. Ini menggabungkan moving averages dengan tiga parameter yang berbeda dalam jangka pendek, menengah, dan panjang. Dengan membandingkan hubungan tinggi dan rendah dari tiga rata-rata ini untuk menilai kondisi kosong pasar, menghasilkan sinyal perdagangan.
Strategi ini memiliki tiga rata-rata bergerak, yaitu rata-rata bergerak sederhana jangka pendek, rata-rata bergerak berbobot jangka menengah, dan rata-rata bergerak indeks jangka panjang. Secara khusus, garis SMA panjang 1, garis WMA panjang 20, dan garis EMA panjang 25.
Ketika garis SMA jangka pendek melintasi garis WMA tengah dan harga penutupan lebih tinggi dari garis WMA, menunjukkan bahwa pasar berbalik dari bawah ke atas, membentuk sinyal multihead; Ketika garis SMA jangka pendek melintasi garis WMA tengah atau harga penutupan lebih rendah dari garis WMA, adalah sinyal kosong. Oleh karena itu, strategi ini menilai keadaan pasar yang berlubang dengan membandingkan kenaikan, penurunan, dan persilangan tiga garis rata-rata.
Strategi ini menggabungkan tiga garis rata-rata berbeda, pendek, menengah, dan panjang, untuk merespons perubahan pasar dalam siklus yang berbeda, meningkatkan akurasi untuk menangkap tren. WMA, khususnya, memiliki efek yang lebih baik dari fluctuasi noise, dapat secara efektif memfilter sinyal kesalahan. Selain itu, strategi ini hanya mengirim sinyal posisi ketika SMA dan sinyal multihead dari harga penutupan mencapai konsistensi yang tinggi, yang menghindari whipsaws, memastikan efektivitas setiap entri.
Strategi ini mungkin memiliki risiko misinformasi. Ketika short-term SMA menghasilkan sinyal kesalahan, karena strategi ini sangat bergantung pada sinyal dari garis SMA, dapat menyebabkan kerugian yang tidak perlu. Selain itu, strategi ini sangat sensitif terhadap parameter, dan ketika pasar memasuki zona getaran dan parameter yang tidak disetel pada waktu yang tepat, akan menghasilkan banyak perdagangan yang salah.
Untuk mencegah risiko-risiko ini, disarankan untuk menyesuaikan panjang garis rata-rata, meredakan kondisi perdagangan dengan tepat, dan mengatur stop loss untuk mengendalikan kerugian tunggal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan lebih banyak jenis indikator rata-rata, seperti garis KC, dan lain-lain, membentuk kumpulan indikator, meningkatkan akurasi penilaian
Faktor-faktor yang meningkatkan volume transaksi, seperti penembusan volume
Indikator Volatilitas untuk Menghindari Kegagalan
Pelatihan dan pengoptimalan parameter dengan cara seperti pembelajaran mesin
Strategi ini berdasarkan pada hubungan real-time dari tiga garis rata-rata yang melintasi dan menutup harga untuk menilai kondisi pasar yang kosong, sederhana dan dapat diandalkan. Ini menggabungkan garis rata-rata dengan rentang panjang yang berbeda, yang dapat secara efektif menemukan tren, kualitas sinyal yang lebih tinggi. Dengan penyesuaian parameter yang tepat dan pengenalan lebih banyak indikator tambahan, strategi ini dapat meningkatkan lebih lanjut dari target dan stabilitas.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Candle Close Strategy KHANH 11/11/2023", overlay=true, initial_capital=100, commission_type=strategy.commission.percent, commission_value=0.0000005, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len1 = input.int(1, title="SMA #1 Length", minval=1)
src1 = input(close, title="SMA Source #1")
out1 = ta.sma(src1, len1)
plot(out1, title="SMA #1", color=close >= out1 ? color.rgb(120, 123, 134, 100) : color.rgb(120, 123, 134, 100), linewidth=1)
len2 = input.int(20, title="HMA #2 Length", minval=1)
src2 = input(close, title="HMA Source #2")
out2 = ta.hma(src2, len2)
plot(out2, title="HMA #2", color=close >= out2 ? color.rgb(253, 255, 254, 100) : color.rgb(255, 255, 255, 100), linewidth=1)
len3 = input.int(25, title="EMA #3 Length", minval=1)
src3 = input(close, title="EMA Source #3")
out3 = ta.ema(src3, len3)
plot(out3, title="EMA #3", color=close >= out3 ? color.blue : color.blue, linewidth=1)
// Define the long condition
longCondition = (out1 > out2 and close > out2)
// Define the short condition
shortCondition = (out1 < out2 or close < out2)
// Entry conditions
if (longCondition)
strategy.entry("Long",strategy.long)
else if (shortCondition)
strategy.entry("Short", strategy.short)
// Trade channel plot
PeriodLookBack = input(55, title="Period Look Back")
xHighest55 = request.security(syminfo.tickerid, timeframe.period, ta.highest(PeriodLookBack))
xLowest55 = request.security(syminfo.tickerid, timeframe.period, ta.lowest(PeriodLookBack))
plot(xHighest55[1], color=color.red, title="HH")
plot(xLowest55[1], color=color.green, title="LL")
//@version=5
//indicator("Custom Moving Averages", shorttitle="CMA", overlay=true)
shortLength = input(defval=40, title="Short Length")
longLength = input(defval=80, title="Long Length")
// Sử dụng khung thời gian của biểu đồ đang sử dụng thay vì cố định là "D"
shortTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, shortLength))
shortBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, shortLength))
longTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, longLength))
longBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, longLength))
shortAverageLine = (shortTopBorder + shortBottomBorder) / 2
longAverageLine = (longTopBorder + longBottomBorder) / 2
plot(shortAverageLine, color=color.new(#fc0000, 0))
plot(longAverageLine, color=color.new(#01ff27, 0))