Strategi ini menggunakan dua garis EMA dari periode yang berbeda untuk mengidentifikasi pembalikan tren melalui persilangan mereka sebagai sinyal masuk dan keluar.
Strategi ini menghitung dua garis EMA menggunakan ta.ema, satu dengan panjang 10 untuk jangka pendek dan satu dengan panjang 20 untuk tren jangka panjang. Ini mengidentifikasi crossover dan crossunder EMA menggunakan ta.crossover dan ta.crossunder untuk menentukan titik masuk dan keluar. Ketika EMA pendek melintasi EMA panjang, itu panjang. Ketika EMA pendek melintasi di bawah EMA panjang, itu pendek. Dengan cara ini crossover EMA digunakan untuk menangkap titik balik dalam tren.
Strategi ini juga menggunakan variabel lastCrossTime untuk mencatat waktu crossover terakhir untuk menghindari sinyal berulang. Pada setiap crossover yang valid, ia menutup semua posisi saat ini terlebih dahulu, kemudian membuka posisi baru ke arah crossover. Setelah membuka posisi, take profit dan stop loss diatur untuk keluar.
Logika strategi sederhana dan jelas, mudah dimengerti dan diterapkan.
Menggunakan crossover EMA untuk mengidentifikasi titik pembalikan tren adalah strategi indikator teknis yang efektif yang umum digunakan.
Mengadopsi EMA dari periode yang berbeda membantu meningkatkan sensitivitas terhadap pergerakan jangka pendek sambil tetap menangkap tren besar.
Ambil keuntungan dan stop loss membantu mengontrol risiko dan imbalan dari setiap perdagangan.
Variabel lastCrossTime menyaring sinyal duplikat dan menghindari perdagangan yang tidak perlu.
EMA crossovers dapat menghasilkan sinyal palsu, dengan beberapa risiko whipsaw.
TP dan SL tetap mungkin tidak dapat beradaptasi dengan perubahan kondisi pasar.
Sistem yang hanya mengandalkan EMA crossover dapat mengalami kerugian di pasar yang berbeda.
Biaya perdagangan seperti spread tidak dipertimbangkan yang berdampak pada kinerja aktual.
Strategi ini bekerja lebih baik dalam tren daripada pasar yang berbeda.
Peningkatan dapat dilakukan dengan mengoptimalkan TP/SL, menambahkan filter, menggabungkan indikator lain, dll. Pengendalian risiko yang ketat dan menghindari kerugian perdagangan tunggal yang besar sangat penting untuk perdagangan langsung.
Uji dan optimalkan periode EMA untuk menemukan kombinasi yang lebih baik.
Tambahkan indikator lain seperti KDJ, MACD dll untuk meningkatkan kualitas sinyal dan menghindari whipsaws.
Gunakan dinamis mengambil keuntungan dan stop loss, seperti trailing stop sepanjang tren.
Pertimbangkan volume perdagangan untuk mengkonfirmasi sinyal.
Masukkan pola aksi harga seperti breakout untuk memperkuat sinyal.
Perhitungkan biaya perdagangan seperti spread dan optimalkan tingkat TP/SL sesuai.
Strategi ini mengidentifikasi pembalikan tren menggunakan EMA crossover dengan cara yang sederhana dan langsung. TP / SL digunakan untuk mengontrol risiko dan imbalan. Mudah diterapkan tetapi crossover EMA memiliki risiko whipsaw. Optimasi lebih lanjut dapat dilakukan dengan menyesuaikan parameter, menambahkan filter dan menggabungkan indikator lain untuk meningkatkan ketahanan.
/*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)