Strategi trend berikut EMA adalah strategi trend tracking berdasarkan penunjuk EMA. Ia menilai arah trend dengan mengira garis EMA dari tempoh tertentu dan mengikuti trend. Ia pergi pendek apabila harga melintasi di atas garis EMA dan pergi panjang apabila harga melintasi di bawah garis EMA. Ini adalah strategi trend berikut yang tipikal.
Inti strategi ini adalah untuk menentukan trend menggunakan penunjuk EMA. EMA adalah purata bergerak eksponensial yang memberikan lebih banyak berat kepada harga baru-baru ini dan bertindak balas dengan lebih cepat terhadap perubahan harga. Dengan mengira harga purata dalam tempoh EMA, ia menghasilkan lengkung yang halus. Apabila harga melintasi di atas garis EMA dari bawah, ia menandakan trend menaik; apabila harga melintasi di bawah garis EMA dari atas, ia menandakan trend menurun.
Berdasarkan logik ini, strategi ini pendek apabila harga pecah di atas EMA dan pergi panjang apabila harga pecah di bawah EMA, menjejaki trend dengan mengikuti garis EMA. Khususnya, ia mengira EMA 8-periode pada harga penutupan - pendek apabila penutupan pecah di atas EMA dan pergi panjang apabila penutupan pecah di bawah EMA. Ia juga menetapkan stop loss untuk mengawal risiko.
Pengikut trend yang berkesan: EMA menyelaraskan turun naik harga, menapis bunyi bising pasaran dan mengikuti trend jangka sederhana hingga panjang.
Frekuensi dagangan yang munasabah. Berbanding dengan penunjuk jangka pendek, EMA mempunyai kekerapan penyesuaian sederhana, mengelakkan perdagangan berlebihan.
Mudah dilaksanakan. Strategi ini hanya bergantung pada satu penunjuk EMA namun mencapai matlamat trend berikut.
Kebolehluasan: Strategi boleh ditingkatkan dengan mengoptimumkan parameter EMA atau menambah penunjuk lain.
Apabila harga berbalik dengan cepat, EMA memerlukan masa untuk menyesuaikan diri dan mungkin terlepas titik kemasukan terbaik.
Peningkatan kerugian. EMA mengikuti trend dan tidak dapat menentukan titik penyesuaian dengan tepat. Pembalikan boleh menyebabkan kerugian besar. Penyelesaian adalah untuk menetapkan kerugian berhenti yang munasabah.
Frekuensi terlalu tinggi atau terlalu rendah. Tempoh EMA yang berbeza membawa kepada frekuensi perdagangan yang berbeza. Terlalu pendek mungkin terlalu berdagang, terlalu lama mungkin kehilangan peluang. Penyelesaian adalah untuk menguji tempoh EMA yang berbeza untuk mencari yang optimum.
Mengoptimumkan parameter EMA untuk mencari keseimbangan terbaik.
Tambah penunjuk lain untuk menentukan titik penyesuaian. Gabungkan dengan penunjuk seperti RSI untuk mengesan pembalikan dengan lebih baik.
Mengoptimumkan strategi stop loss untuk mencari tahap stop loss terbaik melalui backtesting.
Mengoptimumkan pemilihan simbol. Sesuaikan tempoh EMA berdasarkan ciri simbol untuk mencapai hasil yang terbaik.
EMA adalah strategi pengesanan trend yang sangat tipikal berdasarkan penunjuk. Ia mudah dan mudah dilaksanakan, sesuai untuk pemula untuk belajar. Sementara itu, ia mempunyai kemampuan untuk meningkatkan lagi strategi dengan menambah penunjuk atau mengoptimumkan parameter. Dengan peningkatan berterusan, ia boleh menjadi alat pengesanan trend yang sangat praktikal.
/*backtest start: 2022-10-09 00:00:00 end: 2023-10-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) EmaSource = input(defval = close, title = "EMA Source") EmaLength = input(defval = 8, title = "EMA Period", minval = 1) StartYear = input(2018, "Backtest Start Year") StartMonth = input(1, "Backtest Start Month") StartDay = input(1, "Backtest Start Day") stopLoss = input(30, title = "Stop loss percentage(0.1%)") UseStopLoss = input(true,"UseStopLoss") window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false EMA = ema(EmaSource,EmaLength) plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50) long = crossunder(EMA, close) short= crossover(EMA, close) if (long) strategy.entry("LongId", strategy.long, when=window()) if (short) strategy.entry("ShortId", strategy.short, when=window()) if (UseStopLoss) strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick) strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)