
Strategi ini adalah strategi perdagangan lintas-siklus berdasarkan indikator EMA. Strategi ini menggunakan EMA dari dua periode yang berbeda sebagai sinyal jual beli, melakukan over pada EMA jangka panjang pada EMA jangka pendek, dan melakukan shorting pada EMA jangka panjang pada EMA jangka pendek. Strategi ini adalah strategi pelacakan tren.
Strategi ini menggunakan indikator EMA sebagai sinyal perdagangan. Secara khusus, EMA jangka pendek dan EMA jangka panjang dihitung secara terpisah, menghasilkan sinyal beli lebih banyak ketika EMA jangka pendek melewati EMA jangka panjang; menghasilkan sinyal jual kosong ketika EMA jangka pendek melewati EMA jangka panjang. Dengan demikian, arah jual beli ditentukan melalui tren bergerak EMA.
Setelah masuk ke posisi, strategi mengatur stop loss dan stop loss secara bersamaan. Stop loss adalah persentase dari harga masuk yang digunakan sebagai garis stop loss, dan jika harga menyentuh garis stop loss, maka stop loss; stop loss adalah persentase dari harga masuk yang digunakan sebagai garis stop loss, dan jika harga menyentuh garis stop loss, maka stop loss.
Strategi ini juga memungkinkan pilihan untuk hanya melakukan over atau short, serta pilihan untuk melakukan perdagangan intraday atau perdagangan posisi. Untuk perdagangan intraday, posisi kosong akan diwajibkan sebelum penutupan saham AS.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan indikator EMA untuk memfilter kurva, menghindari tertipu oleh fluktuasi frekuensi tinggi, dapat secara acak menangkap tren garis tengah dan panjang.
Menggunakan EMA periode pendek dan EMA periode panjang sebagai sinyal perdagangan untuk menghindari perdagangan yang sering.
Pengaturan Stop Loss untuk mengontrol rasio risiko-keuntungan dari setiap order, yang membantu dalam pengelolaan dana.
Anda dapat memilih untuk melakukan hanya over atau short, serta perdagangan intraday atau perdagangan posisi, sesuai dengan jenis pedagang yang berbeda.
Kompatibel dengan berbagai jenis transaksi, termasuk saham, valuta asing, mata uang digital, dll.
Strategi ini juga memiliki beberapa potensi risiko:
Indikator EMA memiliki keterlambatan dan mungkin melewatkan titik balik tren jangka pendek.
Salah memilih EMA jangka pendek dan panjang dapat menyebabkan sinyal perdagangan yang salah.
Terlalu lama memegang saham dapat menyebabkan kejutan pasar yang lebih besar.
Penundaan kerugian secara mekanis dapat menyebabkan kekalahan lebih awal atau mengurangi keuntungan.
Langkah-langkah manajemen risiko yang sesuai adalah:
Optimalkan parameter EMA untuk menemukan kombinasi siklus optimal.
Menambahkan indikator lain sebagai penilaian tambahan.
Dinamiskan Stop Loss Stop Stop.
Intervensi manusia dalam kondisi yang tidak normal.
Strategi ini dapat dioptimalkan dari beberapa arah:
Optimalkan parameter EMA untuk menemukan kombinasi siklus panjang dan pendek yang sesuai untuk varietas yang berbeda.
Menambahkan penilaian indikator lainnya, seperti MACD, KD, dan lain-lain, untuk mencapai resonansi multi-indikator.
Meningkatkan pelatihan model pembelajaran mesin untuk menghasilkan stop loss dinamis.
Akses ke indikator RISK yang lebih canggih untuk melakukan rekayasa karakteristik.
Menambahkan elemen perdagangan yang dapat disesuaikan, dan mengoptimalkan parameter.
Strategi ini secara keseluruhan adalah template strategi trend tracking yang sangat baik, dan keunggulan utamanya adalah penggunaan indikator EMA untuk memfilter kebisingan dan menghasilkan keuntungan yang stabil, dengan manajemen risiko dan keuntungan yang baik. Dengan terus-menerus dioptimalkan, strategi ini dapat menjadi strategi kuantitatif yang umum di seluruh pasar, yang layak untuk dipelajari dan dipraktikkan oleh pedagang.
/*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 Crossover Strategy by Vikrant Singh", overlay=true)
// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")
// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")
// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)
// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)
// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
strategy.entry("Long", strategy.long)
runningPOS := true
stopLossLevel := close * (1 - stopLossPct / 100)
targetLevel := close * (1 + targetPct / 100)
//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
strategy.entry("Short", strategy.short)
runningPOS := true
stopLossLevel := close * (1 + stopLossPct / 100)
targetLevel := close * (1 - targetPct / 100)
// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
runningPOS := false
//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
strategy.close("Short", comment = "Exit Short")
runningPOS := false
if intraDay and runningPOS
if (hour >= 15)
strategy.close_all(comment = "Intraday square off")
//strategy.close("Long",comment = "intraday square off")
runningPOS := false
// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")