
Strategi ini adalah strategi perdagangan trend-following dan trend-breaking berdasarkan purata bergerak indeks pelbagai tempoh ((EMA)). Ia menggabungkan 5 EMA yang berbeza pada masa yang sama, dengan keupayaan pengenalan trend yang kuat, yang dapat menangkap pergerakan harga garis tengah dan panjang secara beransur-ansur.
Hitung EMA untuk 5 kitaran yang berbeza, iaitu 12 kitaran, 15 kitaran, 18 kitaran, 21 kitaran dan 24 kitaran EMA.
Urutan EMA: EMA12 > EMA15 > EMA18 > EMA21 > EMA24 sebagai isyarat membeli; EMA12 < EMA15 < EMA18 < EMA21 < EMA24 sebagai isyarat menjual.
Isyarat perdagangan akan dicetuskan hanya selepas tarikh permulaan yang ditetapkan oleh pengguna.
Apabila isyarat beli tercetus, lakukan operasi bukaan kedudukan panjang; apabila isyarat jual tercetus, lakukan operasi bukaan kedudukan pendek.
Strategi ini menggabungkan beberapa EMA untuk membentuk satu saluran trend dan menggunakan hubungan dalam dan luar saluran untuk menentukan arah trend harga. Pengaturan kitaran EMA yang lebih dekat dapat meningkatkan kepekaan terhadap isyarat terobosan, dan juga mengelakkan gangguan pasaran jangka pendek.
Menggunakan pelbagai EMA untuk membentuk saluran trend, kemampuan untuk mengenal pasti trend lebih kuat.
Pengaturan kitaran EMA berdekatan, sensitif kepada isyarat trend yang pecah, dapat menangkap trend garis tengah dan panjang tepat pada masanya.
Anda boleh menyesuaikan tarikh permulaan strategi, dan anda boleh menggunakan strategi ini secara fleksibel.
Pengurusan wang boleh disesuaikan dan boleh mengawal saiz pesanan tunggal.
Peraturan perdagangan adalah jelas dan mudah, sesuai untuk trend-tracking.
EMA secara semula jadi bersifat ketinggalan dan mungkin akan terlepas daripada turun naik yang kuat dalam jangka pendek.
Perdagangan terobosan mudah dirampas dan memerlukan hentian kerugian yang munasabah.
Jika trend berbalik, ia boleh menyebabkan kerugian besar.
Anda perlu memilih jenis saham yang sesuai, tidak sesuai untuk saham yang terlalu bergolak.
Langkah-langkah kawalan dan pengoptimuman risiko:
Sesuai menyesuaikan parameter EMA, mengoptimumkan kombinasi kitaran.
Menambah penapis untuk indikator lain untuk menentukan arah trend.
Tetapkan titik hentian yang munasabah untuk mengawal kerugian tunggal.
Menambah kombinasi penunjuk lain, seperti MACD, KDJ dan lain-lain, untuk meningkatkan kesan strategi.
Menambah jumlah transaksi untuk mengelakkan penipuan palsu.
Mengoptimumkan parameter kitaran EMA untuk mencari kombinasi terbaik.
Berhenti berdagang dalam tempoh tertentu untuk mengelakkan turun naik pasaran.
Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan kitaran dan parameter EMA secara dinamik.
Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang lebih tipikal. Ia menggunakan kelebihan EMA, dengan menggabungkan beberapa EMA membentuk saluran perdagangan, menghasilkan isyarat perdagangan apabila harga menembusi saluran. Keuntungan strategi adalah peraturan perdagangan yang mudah dan jelas, mudah untuk mengikuti trend garis tengah; Kelemahannya adalah sensitif terhadap bunyi pasaran jangka pendek, terdapat keterlambatan tertentu. Dengan penyesuaian parameter yang sesuai dan pengoptimuman alat bantu lain, anda boleh meningkatkan kestabilan dan keberkesanan strategi. Ia sesuai untuk digunakan oleh pelabur dengan pengalaman perdagangan tertentu.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Scalping Strategy - EMA",
shorttitle="EMA Scalp",
overlay=true)
// User input for start date
startDateInput = input(title="Start Date", defval=timestamp("2024-02-01"))
// Calculate EMAs
ema_12 = ta.ema(close, 12)
ema_15 = ta.ema(close, 15)
ema_18 = ta.ema(close, 18)
ema_21 = ta.ema(close, 21)
ema_24 = ta.ema(close, 24)
// Plot EMAs
plot(ema_12, color=color.red, title="EMA 12")
plot(ema_15, color=color.orange, title="EMA 15")
plot(ema_18, color=color.yellow, title="EMA 18")
plot(ema_21, color=color.green, title="EMA 21")
plot(ema_24, color=color.blue, title="EMA 24")
// Define a start date for the strategy based on user input
isAfterStartDate = true
// Visualize the isAfterStartDate condition
bgcolor(isAfterStartDate ? color.new(color.green, 90) : na, title="After Start Date")
// Entry conditions
buy_condition = (ema_12 > ema_15) and (ema_15 > ema_18) and (ema_18 > ema_21) and (ema_21 > ema_24) and isAfterStartDate
sell_condition = (ema_12 < ema_15) and (ema_15 < ema_18) and (ema_18 < ema_21) and (ema_21 < ema_24) and isAfterStartDate
// Execute trades using conditional blocks
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)