Strategi Pelacakan Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-10-20 17:02:52
Tag:

img

Gambaran umum

Strategi pelacakan rata-rata bergerak adalah strategi yang mengikuti tren berdasarkan rata-rata bergerak sederhana. Ini menggunakan rata-rata bergerak sederhana 200 hari untuk menentukan arah tren harga. Ketika harga melintasi di atas rata-rata bergerak, itu panjang. Ketika harga melintasi di bawah rata-rata bergerak, itu pendek. Strategi ini melacak tren untuk keuntungan.

Logika Strategi

Strategi ini didasarkan pada prinsip-prinsip berikut:

  1. Gunakan rata-rata bergerak sederhana 200 hari (slowMA) untuk menentukan tren harga.
  2. Ketika harga penutupan (penutupan) melintasi di atas slowMA, itu menandakan tren naik, jadi pergi panjang.
  3. Ketika harga penutupan (penutupan) melintasi di bawah slowMA, itu menandakan tren menurun, jadi pergi pendek.
  4. Gunakan variabel last_long dan last_short untuk merekam waktu entri panjang dan pendek terakhir.
  5. Gunakan fungsi crossover untuk mendeteksi crossover antara last_long dan last_short untuk menghasilkan sinyal perdagangan.
  6. Dalam periode backtest, pergi panjang ketika menerima sinyal panjang (long_signal), dan pergi pendek ketika menerima sinyal pendek (short_signal).

Strategi ini melacak tren dengan bergerak arah rata-rata dan membuat perdagangan terbalik ketika MA crossover terjadi, untuk mendapatkan keuntungan dari tren.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Logika strategi sederhana dan mudah dipahami dan diterapkan.
  2. Rata-rata bergerak jangka panjang menyaring kebisingan dan mengunci tren utama.
  3. Perdagangan reverse yang tepat waktu dapat menangkap perubahan harga yang signifikan di sekitar pembalikan tren.
  4. Ini hanya menggunakan satu indikator, menghindari kompleksitas beberapa indikator.
  5. Aturan masuk dan keluar yang jelas tanpa banyak intervensi manusia.

Analisis Risiko

Ada juga beberapa risiko:

  1. MA jangka panjang tidak sensitif terhadap koreksi jangka pendek, kehilangan peluang jangka pendek.
  2. Kemampuan yang lemah dalam mengidentifikasi pembalikan tren utama, dengan kerugian pembalikan.
  3. Tidak ada mekanisme stop loss, yang mengarah pada penarikan besar.
  4. Parameter tetap memiliki kemampuan beradaptasi yang lemah di berbagai produk dan lingkungan pasar.
  5. Backtest risiko overfit karena strategi hanya diuji pada data historis.

Risiko dapat ditangani melalui optimasi berikut:

  1. Tambahkan MA jangka pendek untuk menangkap tren jangka pendek juga.
  2. Tambahkan filter volume untuk menghindari sinyal palsu.
  3. Tambahkan indikator yang mengikuti tren untuk meningkatkan identifikasi pembalikan tren.
  4. Tambahkan stop loss dinamis untuk mengendalikan kerugian perdagangan tunggal.
  5. Menggunakan metode optimasi parameter untuk meningkatkan kemampuan beradaptasi.
  6. Tes ketahanan di lingkungan pasar yang berbeda.

Arahan Optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:

  1. Mengoptimalkan parameter periode MA menggunakan metode seperti Walk Forward Analysis untuk menemukan parameter optimal.

  2. Tambahkan MA jangka pendek untuk melacak tren jangka panjang dan jangka pendek.

  3. Menggabungkan indikator tren seperti MACD untuk meningkatkan identifikasi pembalikan tren.

  4. Tambahkan mekanisme stop loss seperti trailing stop loss untuk mengendalikan kerugian perdagangan tunggal.

  5. Uji ketahanan pada produk dan periode waktu yang berbeda.

  6. Gunakan pembelajaran mesin untuk optimasi adaptif parameter.

Kesimpulan

Strategi pelacakan rata-rata bergerak adalah strategi yang sederhana dan praktis mengikuti tren. Strategi ini memiliki logika yang jelas dan mudah diterapkan untuk menangkap tren. Tetapi juga memiliki beberapa kelemahan seperti tidak sensitif terhadap koreksi jangka pendek dan kontrol risiko yang lemah. Kita dapat mengoptimalkan strategi dari berbagai aspek untuk membuatnya lebih kuat, lebih parameter dan dengan manajemen risiko yang lebih kuat. Secara keseluruhan, strategi pelacakan rata-rata bergerak memiliki nilai aplikasi yang baik dan merupakan konsep perdagangan tren penting dalam perdagangan kuantitatif.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)

Lebih banyak