
Strategi ini adalah strategi pengesanan trend yang mudah berdasarkan indikator EMA. Ia menggunakan dua garis EMA dengan parameter yang berbeza, garis EMA jangka pendek dan garis EMA jangka panjang. Apabila garis EMA jangka pendek melintasi garis EMA jangka panjang, lakukan lebih banyak; apabila garis EMA jangka pendek melintasi garis EMA jangka panjang, posisi kosong.
EMA merupakan satu jenis indikator trend-following yang menggunakan purata bergerak rata-rata pada harga. Garis EMA jangka pendek bertindak balas lebih cepat terhadap perubahan harga, mencerminkan trend harga terkini; Garis EMA jangka panjang bertindak balas lebih lambat terhadap perubahan harga, mencerminkan trend jangka panjang. Apabila EMA jangka pendek melintasi garis EMA jangka panjang, menunjukkan kenaikan harga terkini lebih kuat daripada trend jangka panjang, lebih banyak boleh dilakukan; sebaliknya, EMA jangka pendek melintasi EMA jangka panjang, menunjukkan penurunan harga terkini lebih kuat daripada trend jangka panjang, dan lebih banyak harus dihapuskan.
Strategi ini menetapkan garis EMA 9 kitaran dan 21 kitaran. Ia menggunakan garis EMA 9 kitaran pendek dan garis EMA 21 kitaran panjang sebagai isyarat perdagangan. Secara khusus, logik kedudukan yang lebih aman adalah seperti berikut:
Penyelesaian risiko:
Strategi ini menggunakan dua parameter EMA yang berlainan untuk membentuk isyarat perdagangan dan mendapat keuntungan dengan mengikuti trend. Keuntungan strategi ini adalah mudah untuk dikendalikan, frekuensi perdagangan sederhana, dan dapat menangkap trend garis tengah. Tetapi terdapat masalah ketinggalan dalam indikator EMA, isyarat isyarat dan pengoptimuman stop loss dinamik dapat mengurangkan risiko lebih lanjut.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Crossover Strategy", overlay=true)
// Input parameters
shortPeriod = input(9, title="Short EMA Period")
longPeriod = input(21, title="Long EMA Period")
stopLossPercent = input(1, title="Stop Loss (%)") / 100
takeProfitMultiplier = input(2, title="Take Profit Multiplier")
// Calculate EMAs
emaShort = ema(close, shortPeriod)
emaLong = ema(close, longPeriod)
// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")
// Strategy logic
strategy.entry("Buy", strategy.long, when=crossover(emaShort, emaLong))
strategy.close("Buy", when=crossunder(emaShort, emaLong))
// Risk management
atrValue = atr(14)
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * takeProfitMultiplier
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel)