Strategi ini menggunakan dua garis EMA dari tempoh yang berbeza untuk mengenal pasti pembalikan trend melalui persilangan mereka sebagai isyarat masuk dan keluar.
Strategi ini mengira dua garis EMA menggunakan ta.ema, satu dengan panjang 10 untuk jangka pendek dan satu dengan panjang 20 untuk trend jangka panjang. Ia mengenal pasti silang EMA dan crossunder menggunakan ta.crossover dan ta.crossunder untuk menentukan titik masuk dan keluar. Apabila EMA pendek melintasi EMA panjang, ia pergi panjang. Apabila EMA pendek melintasi di bawah EMA panjang, ia pergi pendek. Dengan cara ini silang EMA digunakan untuk menangkap titik perubahan dalam trend.
Strategi ini juga menggunakan pembolehubah lastCrossTime untuk merekodkan masa penyambungan terakhir untuk mengelakkan isyarat berulang. Pada setiap penyambungan yang sah, ia menutup semua kedudukan semasa terlebih dahulu, kemudian membuka kedudukan baru ke arah penyambungan.
Logik strategi adalah mudah dan jelas, mudah difahami dan dilaksanakan.
Menggunakan persilangan EMA untuk mengenal pasti titik pembalikan trend adalah strategi penunjuk teknikal yang berkesan yang biasa digunakan.
Mengambil EMA dari tempoh yang berbeza membantu meningkatkan kepekaan terhadap pergerakan jangka pendek sambil masih menangkap trend besar.
Ambil keuntungan dan hentikan kerugian membantu mengawal risiko dan ganjaran setiap perdagangan.
LastCrossTime pembolehubah menapis isyarat pendua dan mengelakkan perdagangan yang tidak perlu.
Pembebasan EMA boleh menghasilkan isyarat palsu, dengan beberapa risiko whipsaw.
TP tetap dan SL mungkin tidak dapat menyesuaikan diri dengan keadaan pasaran yang berubah.
Sistem yang hanya bergantung pada silang EMA boleh mengalami kerugian di pasaran yang berbeza.
Kos dagangan seperti spread tidak dipertimbangkan yang memberi kesan kepada prestasi sebenar.
Strategi ini berfungsi dengan lebih baik dalam tren daripada pasaran yang berbeza.
Peningkatan boleh dibuat melalui pengoptimuman TP / SL, menambah penapis, menggabungkan penunjuk lain dll. Kawalan risiko yang ketat dan mengelakkan kerugian perdagangan tunggal yang besar adalah penting untuk perdagangan langsung.
Uji dan optimumkan tempoh EMA untuk mencari kombinasi yang lebih baik.
Tambah penunjuk lain seperti KDJ, MACD dan lain-lain untuk meningkatkan kualiti isyarat dan mengelakkan whipsaws.
Gunakan keuntungan dinamik dan hentikan kerugian, seperti hentikan jejak di sepanjang trend.
Pertimbangkan jumlah dagangan untuk mengesahkan isyarat.
Masukkan corak tindakan harga seperti pecah untuk menguatkan isyarat.
Mengira kos dagangan seperti spread dan mengoptimumkan tahap TP / SL dengan sewajarnya.
Strategi ini mengenal pasti pembalikan trend menggunakan persilangan EMA dengan cara yang mudah dan mudah. TP / SL digunakan untuk mengawal risiko dan ganjaran. Ia mudah dilaksanakan tetapi persilangan EMA mempunyai risiko whipsaw. Pengoptimuman lanjut boleh dilakukan dengan menyesuaikan parameter, menambah penapis dan menggabungkan penunjuk lain untuk meningkatkan ketahanan. Ia berfungsi dengan lebih baik dalam trend daripada pasaran yang berkisar. Pengurusan risiko yang ketat dan ukuran TP / SL yang optimum adalah penting untuk perdagangan langsung. Secara keseluruhan ia berfungsi sebagai sistem trend berikut asas dan merupakan titik permulaan yang baik untuk pendidikan perdagangan algoritma.
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('XXXquang', overlay=true) // Sử dụng hàm input.int() và input.float() để tạo các trường nhập liệu với giới hạn giá trị length1 = input.int(10, title="Length EMA Short", minval=1) length2 = input.int(20, title="Length EMA Long", minval=1) lotSize = input.int(1, title="Lot Size", minval=1) takeProfitLevel = input.int(600, title="Take Profit Level", minval=1) stopLossLevel = input.int(200, title="Stop Loss Level", minval=1) ema1 = ta.ema(close, length1) ema2 = ta.ema(close, length2) var float lastCrossTime = na if ta.crossover(ema1, ema2) if na(lastCrossTime) strategy.close_all() strategy.entry('Buy Order', strategy.long, qty=lotSize) strategy.exit('Exit Buy', 'Buy Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue) lastCrossTime := timenow if ta.crossunder(ema1, ema2) if na(lastCrossTime) strategy.close_all() strategy.entry('Sell Order', strategy.short, qty=lotSize) strategy.exit('Exit Sell', 'Sell Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue) lastCrossTime := timenow plot(ema1, title='EMA Short', color=color.new(color.blue, 0), linewidth=2) plot(ema2, title='EMA Long', color=color.new(color.red, 0), linewidth=2)