Strategi perdagangan pasangan multi-MA

Penulis:ChaoZhang, Tanggal: 2023-09-23
Tag:

Gambaran umum

Strategi ini menggabungkan dua pilihan rata-rata bergerak dan pengenalan pola harga untuk membentuk mekanisme masuk yang lebih komprehensif untuk meningkatkan kualitas sinyal.

Logika Strategi

Strategi ini mencakup indikator dan aturan berikut:

  1. 3 SMA menilai tren keseluruhan.

  2. 2 EMA membuat penilaian arah yang terperinci.

  3. SAR membantu dengan tren dan momentum.

  4. Pola harga mengidentifikasi formasi sebagai sinyal masuk.

  5. Keuntungan maksimum mengambil kontrol batas keuntungan perbendaharaan.

  6. Batas periode kepemilikan menghindari ekspansi kerugian.

Kombinasi dari beberapa indikator membentuk sinyal masuk yang kuat dan mekanisme keluar, menyeimbangkan profitabilitas dan pengendalian risiko untuk perdagangan yang stabil.

Keuntungan

Dibandingkan dengan strategi indikator tunggal, keuntungannya adalah:

  1. Beberapa indikator meningkatkan akurasi.

  2. Pengakuan pola harga meningkatkan waktu masuk.

  3. Keuntungan mengambil kendali mewujudkan keuntungan.

  4. Periode kepemilikan menghindari ekspansi kerugian.

  5. SMA mengikuti tren.

  6. EMA meningkatkan sensitivitas.

  7. SAR memverifikasi keandalan pelarian.

  8. Secara keseluruhan keseimbangan risiko-balasan yang baik, ketahanan.

  9. Parameter tuning dapat mencapai alfa yang stabil.

Risiko

Terlepas dari manfaatnya, risiko berikut harus diperhatikan:

  1. Beberapa indikator meningkatkan kompleksitas.

  2. Penyesuaian parameter luas berisiko over-optimasi.

  3. Efektivitas pengakuan pola harga tidak pasti.

  4. Keuntungan mengambil risiko hilang trend kelanjutan.

  5. Periode kepemilikan membatasi potensi keuntungan.

  6. Stabilitas dan profitabilitas memiliki kompromi.

  7. Kekuatan multi-pasar membutuhkan validasi.

  8. Pemantauan yang sedang berlangsung terhadap ketahanan model sangat penting.

Peningkatan

Berdasarkan analisis, peningkatan dapat mencakup:

  1. Sesuaikan parameter untuk stabilitas kembali.

  2. Masukkan pembelajaran mesin untuk waktu masuk.

  3. Mengoptimalkan stop loss dinamis dan mengambil keuntungan.

  4. Mengevaluasi dampak periode kepemilikan pada kurva ekuitas.

  5. Uji ketahanan di pasar yang berbeda.

  6. Tambahkan pemeriksaan ketahanan parameter untuk mencegah pemasangan berlebihan.

  7. Mengembangkan manajemen risiko kuantitatif.

  8. Terus memvalidasi efektivitas strategi.

Kesimpulan

Pendekatan multi-indikator merupakan sistem perdagangan yang relatif kuat. tetapi optimasi dan validasi terus-menerus adalah kunci untuk setiap strategi, dengan fokus pada ketahanan parameter untuk kemampuan adaptasi pasar. perdagangan kuantum adalah proses iteratif.


//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Lebih banyak