Strategi Kuantitatif Pelacakan Momentum Crossover Rata-rata Bergerak Ganda

MA SMA EMA SMMA RMA WMA VWMA
Tanggal Pembuatan: 2024-11-27 15:06:57 Akhirnya memodifikasi: 2024-11-27 15:06:57
menyalin: 1 Jumlah klik: 478
1
fokus pada
1617
Pengikut

Strategi Kuantitatif Pelacakan Momentum Crossover Rata-rata Bergerak Ganda

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang didasarkan pada sinyal silang dua garis rata-rata. Strategi ini menggunakan dua rata-rata bergerak, satu sebagai garis sinyal utama dan yang lain sebagai garis sinyal halus. Strategi ini menghasilkan sinyal perdagangan dengan memantau persilangan harga dengan garis sinyal halus, untuk menangkap tren pasar dan melacak momentum.

Prinsip Strategi

Strategi ini menggunakan dua tingkatan perhitungan rata-rata bergerak. Pertama, sebuah rata-rata bergerak dasar ((default period 9) dihitung, dan kemudian rata-rata ini diproses dua kali ((default period 5)). Strategi ini menawarkan pilihan dari berbagai metode perhitungan rata-rata, termasuk rata-rata bergerak sederhana (SMA), rata-rata bergerak indeks (EMA), rata-rata bergerak geser (SMMA), rata-rata bergerak berbobot (WMA) dan rata-rata bergerak berbobot (VWMA).

Keunggulan Strategis

  1. Mekanisme pembuatan sinyal jelas dan sederhana, mudah dipahami dan diterapkan
  2. Dengan pengolahan halus kedua, secara efektif mengurangi produksi sinyal palsu
  3. Berbagai metode perhitungan linear rata-rata tersedia, dengan pilihan yang fleksibel sesuai dengan karakteristik pasar yang berbeda
  4. Konfigurasi parameter yang fleksibel, dapat dioptimalkan sesuai dengan siklus pasar yang berbeda
  5. Struktur kode yang jelas, mudah dipertahankan dan diperluas
  6. Memiliki kemampuan untuk melacak tren yang baik

Risiko Strategis

  1. Sinyal perdagangan yang sering dapat dihasilkan di pasar yang bergejolak, sehingga meningkatkan biaya transaksi
  2. Ada beberapa keterlambatan, mungkin kehilangan titik awal.
  3. Kemunduran yang lebih besar mungkin terjadi dalam situasi yang berubah dengan cepat.
  4. Strategi indikator teknis tunggal, kurangnya penilaian terhadap kondisi pasar
  5. Parameter yang terlalu dioptimalkan dapat menyebabkan risiko overfitting

Arah optimasi strategi

  1. Memperkenalkan mekanisme penilaian kondisi pasar, menggunakan konfigurasi parameter yang berbeda dalam kondisi pasar yang berbeda
  2. Menambahkan mekanisme stop loss untuk mengontrol risiko
  3. Meningkatkan filter volume transaksi untuk menghindari transaksi di lingkungan yang kurang likuid
  4. Masukkan indikator teknis lainnya sebagai sinyal konfirmasi tambahan
  5. Mengembangkan mekanisme parameter yang dapat disesuaikan dengan perubahan dinamika pasar
  6. Menambahkan modul manajemen posisi untuk kontrol posisi yang lebih fleksibel

Meringkaskan

Ini adalah versi yang lebih baik dari strategi pelacakan tren klasik, yang meningkatkan stabilitas dengan desain rata-rata bergerak bertingkat dua, sambil menjaga kesederhanaan strategi. Strategi ini memiliki skalabilitas dan fleksibilitas yang baik, dapat beradaptasi dengan lingkungan pasar yang berbeda melalui pengoptimalan parameter dan perluasan fungsi. Namun, pengguna perlu berhati-hati untuk mengontrol biaya perdagangan dan mengelola risiko, dan disarankan untuk melakukan pengujian ulang yang memadai sebelum melakukan perdagangan di tempat.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)