Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-10-17 16:46:57
Tag:

img

Gambaran umum

Strategi ini adalah strategi trend-mengikuti berdasarkan rata-rata bergerak. Ini menggunakan crossover dan crossunder rata-rata bergerak cepat dan lambat untuk menentukan arah tren untuk perdagangan tren berisiko rendah.

Logika Strategi

Strategi ini menggunakan rata-rata bergerak cepat periode 9 dan rata-rata bergerak lambat periode 21. Ketika MA cepat melintasi di atas MA lambat, itu menandakan tren naik di pasar dan posisi panjang diambil. Ketika MA cepat melintasi di bawah MA lambat, itu menandakan tren menurun dan posisi panjang ditutup.

Secara khusus, strategi menghitung nilai MA cepat dan lambat dan membandingkan hubungan mereka untuk menentukan arah tren. Dalam tren naik, jika MA cepat melintasi di atas MA lambat, sinyal masuk panjang dipicu. Dalam tren menurun, jika MA cepat melintasi di bawah MA lambat, sinyal keluar dipicu untuk menutup posisi panjang yang ada.

Dengan cara ini, crossover dan crossunder dari MAs cepat dan lambat menangkap transisi tren untuk tren berisiko rendah setelah perdagangan.

Keuntungan

  • Menggunakan rata-rata bergerak untuk menentukan tren menyaring keluar kebisingan pasar dan mengidentifikasi arah tren
  • MA cepat menangkap perubahan tren lebih cepat, sementara MA lambat menyaring sinyal palsu
  • Menggunakan crossover untuk membeli dan crossunder untuk menjual menghindari mengejar atas dan menjual bawah
  • Logika perdagangan yang sederhana dan jelas, mudah dimengerti dan diterapkan

Risiko

  • Rata-rata bergerak memiliki keterlambatan dan mungkin melewatkan titik masuk/keluar terbaik untuk transisi tren
  • Panjang MA tetap tidak dapat disesuaikan dengan siklus pasar yang berbeda
  • Strategi MA ganda cenderung menghasilkan sinyal perdagangan yang berlebihan dan overfit
  • Menggunakan hanya MAs untuk menentukan perdagangan rentan terhadap kejadian mendadak dan kerugian

Risiko dapat dikelola dengan menyesuaikan parameter, menambahkan filter, stop loss/take profit.

Arah Peningkatan

  • Uji pengaturan parameter yang berbeda seperti panjang MA, ambang batas crossover/crossunder dll.
  • Tambahkan indikator momentum sebagai filter untuk menghindari pecah palsu
  • Tambahkan indikator penentu tren untuk membedakan pasar tren dan rentang
  • Masukkan metrik volatilitas untuk mengoptimalkan stop dan mengambil keuntungan
  • Menggunakan pembelajaran mesin untuk mengoptimalkan parameter secara dinamis

Ringkasan

Sebagai strategi tren yang sederhana, ide utamanya adalah menggunakan MA cepat dan lambat untuk menentukan arah tren. Keuntungannya adalah kesederhanaan, aturan yang jelas, dan pelacakan tren yang efektif. Kelemahannya adalah lag, sinyal palsu, dan perdagangan yang berlebihan. Kita dapat mengoptimalkannya dengan menyesuaikan parameter dan menambahkan indikator lain untuk lebih beradaptasi dengan kondisi pasar. Secara keseluruhan, strategi MA ganda memberikan pendekatan yang sederhana dan andal untuk perdagangan kuantitatif. Dengan perbaikan berkelanjutan, kinerjanya dapat menjadi lebih baik lagi.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-20 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profitable Crypto Strategy", shorttitle="Profit Strategy", overlay=true)

// Define strategy parameters
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
stopLossPercent = input.float(1.0, title="Stop Loss %", step=0.1)
takeProfitPercent = input.float(1.0, title="Take Profit %", step=0.1)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Entry condition: Buy when fast MA crosses above slow MA
longCondition = ta.crossover(fastMA, slowMA)
// Exit condition: Sell when fast MA crosses below slow MA
shortCondition = ta.crossunder(fastMA, slowMA)

// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.orange, title="Slow MA")

// Strategy entry and exit logic
var stopLossPrice = 0.0
var takeProfitPrice = 0.0

if (longCondition)
    stopLossPrice := close * (1.0 - stopLossPercent / 100)
    takeProfitPrice := close * (1.0 + takeProfitPercent / 100)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")

// Set stop loss and take profit for open positions
strategy.exit("Stop Loss/Profit", stop=stopLossPrice, limit=takeProfitPrice)


Lebih banyak