Strategi ini adalah strategi perdagangan trend berikut dan breakout berdasarkan purata bergerak eksponensial (EMA) beberapa jangka masa. Ia menggabungkan 5 EMA dengan tempoh yang berbeza dan mempunyai keupayaan yang kuat dalam pengenalan trend untuk menangkap pergerakan harga jangka sederhana hingga panjang di sepanjang trend.
Mengira 5 EMA dengan tempoh masing-masing 12, 15, 18, 21 dan 24.
Peraturan kedudukan EMA: EMA12 > EMA15 > EMA18 > EMA21 > EMA24 sebagai isyarat beli; EMA12 < EMA15 < EMA18 < EMA21 < EMA24 sebagai isyarat jual.
Trigger isyarat perdagangan hanya selepas tarikh permulaan yang ditakrifkan oleh pengguna.
Masuk panjang apabila isyarat beli dipicu; masuk pendek apabila isyarat jual dipicu.
Strategi ini membentuk saluran trend menggunakan beberapa EMA untuk menentukan arah trend berdasarkan hubungan antara jalur saluran. Tempoh EMA ditetapkan dekat untuk menjadi lebih sensitif terhadap isyarat pecah, sambil juga mengelakkan ditipu oleh bunyi pasaran jangka pendek.
Keupayaan yang kuat dalam pengenalan trend menggunakan pelbagai EMA sebagai saluran trend.
Tetapan tempoh EMA yang dekat menjadikannya sensitif terhadap isyarat pecah trend dan dapat menangkap trend jangka menengah hingga panjang tepat pada masanya.
Tarikh permulaan yang boleh disesuaikan memberikan fleksibiliti dalam penggunaan.
Pengurusan modal yang boleh disesuaikan untuk mengawal mengikut saiz pesanan.
Peraturan perdagangan yang jelas dan mudah, sesuai untuk mengikuti trend.
EMA secara semula jadi mempunyai kesan kelewatan, mungkin terlepas turun naik harga tajam jangka pendek.
Perdagangan breakout cenderung terperangkap, memerlukan stop loss yang munasabah.
Potensi kerugian besar apabila trend berbalik.
Perlu memilih produk yang sesuai, tidak terpakai untuk stok yang sangat tidak menentu.
Pengurusan risiko dan pengoptimuman yang sepadan:
Sesuaikan parameter EMA, optimumkan kombinasi tempoh.
Tambah penunjuk lain untuk pengesahan arah trend.
Tetapkan stop loss yang betul untuk kawalan setiap kehilangan pesanan.
Tambah penunjuk lain seperti MACD, KDJ untuk meningkatkan prestasi strategi.
Tambah syarat jumlah dagangan untuk mengelakkan pecah palsu.
Mengoptimumkan tempoh EMA untuk mencari kombinasi yang terbaik.
Hentikan perdagangan pada julat masa tertentu untuk mengelakkan tempoh pergolakan pasaran.
Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan tempoh dan parameter EMA secara dinamik.
Secara umum, ini adalah strategi trend berikut yang tipikal. Ia memanfaatkan kelebihan EMA dengan membentuk saluran dagangan menggunakan pelbagai EMA dan menghasilkan isyarat dagangan apabila harga keluar dari saluran. Kelebihan adalah peraturan dagangan yang mudah dan jelas yang memudahkan untuk mengikuti trend jangka menengah hingga panjang. Kelemahannya adalah kepekaan terhadap bunyi pasaran jangka pendek dan kesan kelewatan yang melekat. Penyesuaian parameter yang betul dan pengoptimuman seperti menambahkan alat bantuan lain dapat meningkatkan kestabilan dan prestasi. Ia sesuai untuk pelabur dengan beberapa pengalaman perdagangan.
/*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)