
Ringkasan
Tujuan dari strategi ini adalah untuk mengidentifikasi titik balik tren potensial melalui persilangan rata-rata bergerak indeks 20 periode (EMA) dan rata-rata bergerak sederhana 20 periode (SMA).
Prinsip Strategi
- Bila EMA 20 siklus melewati SMA 20 siklus dari bawah dan harga penutupan lebih tinggi dari EMA 20 siklus, lakukan lebih.
- Ketika 20 siklus EMA dari atas ke bawah melewati 20 siklus SMA dan harga penutupan di bawah 20 siklus EMA, kosongkan.
- Untuk melakukan over order, posisi terpadat saat melewati SMA 20 siklus di bawah EMA 20 siklus.
- Untuk shorting, ketika 20 siklus EMA dan 20 siklus SMA berada di posisi kosong.
Strategi ini menggunakan fungsi crossover dan crossunder dari ta untuk mendeteksi persimpangan garis rata.
Analisis Keunggulan
Strategi ini menggabungkan fitur pelacakan tren dari moving averages dan menghasilkan sinyal dari crossover rata-rata, dengan keuntungan sebagai berikut:
- Moving averages efektif untuk menyaring sebagian dari kebisingan pasar dan mengidentifikasi tren jangka menengah dan panjang.
- Garis rata silang mudah dioperasikan, sehingga dapat dengan jelas menilai titik balik pergerakan pasar.
- Pengaturan parameter 20 siklus berlaku untuk sebagian besar saham dan periode waktu, tanpa perlu sering disesuaikan.
- Menggunakan hubungan harga penutupan dengan EMA untuk menghindari beberapa sinyal palsu.
- Aturan yang jelas dan sederhana, mudah dipahami dan diterapkan, cocok untuk investor tingkat rendah.
Analisis risiko
Strategi ini juga memiliki risiko sebagai berikut:
- Rata-rata bergerak memiliki keterbelakangan dan mungkin akan melewatkan pembalikan tren jangka pendek dan tajam.
- Persilangan rata-rata mudah menghasilkan sinyal bising yang mempengaruhi stabilitas strategi.
- Pengaturan parameter 20 siklus tetap mungkin tidak terlalu cocok untuk beberapa saham dan perlu disesuaikan.
- Tidak ada mekanisme stop loss yang dapat menyebabkan kerugian tunggal yang lebih besar.
Tanggapan:
- Siklus rata-rata harus dipersingkat sesuai dengan kebutuhan, untuk mempercepat reaksi.
- Menambahkan kondisi filter lainnya untuk menghindari sinyal palsu.
- Untuk menguji dan mengoptimalkan parameter dan kategori saham.
- Menambahkan Stop Loss Mode untuk Mengontrol Risiko
Arah optimasi
Strategi ini juga dapat dioptimalkan dengan:
- Menambahkan penilaian indikator lain, membangun strategi komposit, seperti menambahkan volume transaksi, RSI dan indikator lainnya.
- Optimasi tes untuk siklus rata-rata dan varietas perdagangan, dengan pengaturan parameter adaptasi.
- Membangun mekanisme keluar yang dinamis, seperti trend tracking stop loss, time stop loss, dan lain-lain.
- Menambahkan fungsi perdagangan algoritmik untuk perdagangan otomatis.
- Menambahkan algoritma pembelajaran mesin, adaptasi dan optimalisasi strategi.
Meringkaskan
Strategi ini secara keseluruhan relatif sederhana dan praktis, dengan menggunakan teori persilangan linear untuk mengidentifikasi titik balik tren potensial, merupakan ide strategi yang umum dan efektif. Namun, ada ruang untuk perbaikan, dengan menambahkan indikator teknis lainnya, pengaturan parameter dinamis, metode stop loss, dan metode perdagangan algoritmik yang dapat membuat strategi menjadi tidak dapat dipantau.
Kode Sumber Strategi
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true)
// Define the length of the moving averages
emaLength = 20
smaLength = 20
// Calculate moving averages
emaValue = ta.ema(close, emaLength)
smaValue = ta.sma(close, smaLength)
// Buy condition
buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue
// Short sell condition
sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue
// Exit conditions for both Buy and Short sell
exitBuyCondition = ta.crossunder(emaValue, smaValue)
exitSellCondition = ta.crossover(emaValue, smaValue)
// Strategy logic
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
if (exitBuyCondition)
strategy.close("Buy")
if (exitSellCondition)
strategy.close("Sell")
// Plot the moving averages
plot(emaValue, color=color.blue, title="20 EMA")
plot(smaValue, color=color.red, title="20 SMA")