
Ringkasan
Strategi ini menggunakan moving averages ((MA) dari dua periode yang berbeda untuk menghasilkan sinyal perdagangan. Ketika MA jangka pendek melintasi MA jangka panjang dari bawah ke atas, menghasilkan sinyal beli; Ketika MA jangka pendek melintasi MA jangka panjang dari atas ke bawah, menghasilkan sinyal jual.
Prinsip Strategi
- Hitung moving average (MA) dari dua periode yang berbeda, yaitu MA jangka pendek dan MA jangka panjang.
- Ketika MA jangka pendek melintasi MA jangka panjang dari bawah ke atas, ini menunjukkan bahwa tren ke atas dapat terbentuk dan menghasilkan sinyal beli.
- Ketika MA jangka pendek melintasi MA jangka panjang dari atas ke bawah, ini menunjukkan bahwa tren turun dapat terbentuk dan menghasilkan sinyal jual.
- Perdagangan berdasarkan sinyal beli dan jual, buka posisi over saat sinyal beli muncul, buka posisi kosong saat sinyal jual muncul.
Keunggulan Strategis
- Sederhana: Strategi ini memiliki logika yang jelas, mudah dipahami dan diterapkan.
- Pelacakan tren: menangkap perubahan tren melalui MA crossover, sehingga dapat beradaptasi dengan lebih baik dengan tren pasar yang berbeda.
- Fleksibilitas parameter: Parameter periodik untuk MA jangka pendek dan jangka panjang dapat disesuaikan dengan pasar dan periode waktu yang berbeda untuk mengoptimalkan kinerja strategi.
Risiko Strategis
- Pasar bergoyang: Dalam pasar bergoyang, seringnya MA melintasi dapat menyebabkan banyak sinyal palsu, sehingga menghasilkan lebih banyak perdagangan yang merugikan.
- Penundaan tren: MA adalah indikator yang tertinggal, sehingga pada awal perubahan tren, strategi ini mungkin kehilangan sebagian keuntungan.
- Optimasi parameter: pengaturan parameter yang berbeda dapat secara signifikan mempengaruhi kinerja strategi, optimasi parameter membutuhkan banyak data historis dan sumber daya komputasi.
Arah optimasi strategi
- Menambahkan filter tren: Setelah sinyal MA yang terjalin, dapat dilakukan konfirmasi kedua dengan indikator tren lainnya (seperti MACD, DMI, dll.) untuk menyaring beberapa sinyal palsu.
- Optimalkan Stop Loss: Setel stop loss yang masuk akal untuk mengurangi kerugian dalam kasus keterlambatan tren dan membiarkan keuntungan berlari.
- Optimasi parameter dinamis: menyesuaikan parameter siklus MA secara dinamis sesuai dengan kondisi pasar yang berbeda, agar sesuai dengan karakteristik pasar saat ini.
- Kombinasi sinyal lain: menggabungkan sinyal MA silang dengan indikator teknis lainnya (seperti RSI, Bollinger Bands, dll) untuk membentuk sinyal perdagangan yang lebih andal.
Meringkaskan
Strategi crossover linier ganda adalah strategi pelacakan tren yang sederhana dan mudah digunakan untuk menangkap pergeseran tren melalui persilangan dua MA periode yang berbeda. Keuntungan dari strategi ini adalah logika yang jelas, sinyal yang jelas, dan cocok untuk pasar tren. Namun, dalam pasar yang bergolak, strategi ini mungkin menghasilkan lebih banyak sinyal palsu dan perdagangan yang merugikan.
Kode Sumber Strategi
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Combined Strategy", overlay=true)
// Moving Averages Length Inputs
short_length = input.int(20, "Short MA Length")
long_length = input.int(50, "Long MA Length")
// Moving Averages
ma_short = ta.sma(close, short_length)
ma_long = ta.sma(close, long_length)
// Buy Condition (Moving Average Crossover)
buy_condition = ta.crossover(ma_short, ma_long)
plotshape(series=buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
// Sell Condition (Moving Average Crossover)
sell_condition = ta.crossunder(ma_short, ma_long)
plotshape(series=sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Strategy Entry and Exit
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Debug statements
if (buy_condition)
label.new(x=bar_index, y=low, text="Buy Signal", color=color.green, style=label.style_label_up)
if (sell_condition)
label.new(x=bar_index, y=high, text="Sell Signal", color=color.red, style=label.style_label_down)