Strategi perdagangan kuantitatif berdasarkan rata-rata pergerakan cepat dan rata-rata pergerakan lambat


Tanggal Pembuatan: 2024-01-24 14:49:29 Akhirnya memodifikasi: 2024-01-24 14:49:29
menyalin: 0 Jumlah klik: 484
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif berdasarkan rata-rata pergerakan cepat dan rata-rata pergerakan lambat

Ringkasan

Dual Moving Average Breakout Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada rata-rata bergerak cepat dan rata-rata bergerak lambat. Ini menggunakan rata-rata bergerak indeks (EMA) dari dua periode yang berbeda sebagai sinyal perdagangan.

Prinsip Strategi

Logika inti dari strategi ini adalah menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk membentuk sinyal perdagangan. Strategi ini mendefinisikan siklus rata-rata bergerak cepat selama 12 hari dan siklus rata-rata bergerak lambat selama 26 hari. Metode perhitungan adalah sebagai berikut:

  1. Perhitungan indeks moving average AP dari array harga, dengan periode 2 hari
  2. Perhitungan rata-rata bergerak cepat berdasarkan AP Fast, periode 12 hari
  3. Rata-rata bergerak lambat yang dihitung berdasarkan AP Slow, periode 26 hari
  4. Bandingkan rata-rata bergerak cepat dengan rata-rata bergerak lambat:
    1. Ketika Fast memakai Slow untuk sinyal multihead
    2. Ketika Fast melewati Slow, sinyal ke udara
  5. Untuk menentukan sinyal perdagangan tertentu, perbandingan antara harga dan rata-rata bergerak:
    1. Sinyal multihead: Fast>Slow && AP>Fast
    2. Sinyal kepala kosong: Fast

Strategi ini digunakan untuk menilai tren pasar dan menghasilkan sinyal perdagangan melalui persilangan rata-rata bergerak cepat dan rata-rata bergerak lambat.

Analisis Keunggulan

Strategi penembusan garis rata bergerak ganda memiliki keuntungan sebagai berikut:

  1. Logika strategi sederhana dan jelas, mudah dipahami dan diterapkan
  2. Adaptasi terhadap kondisi pasar yang berbeda dengan menyesuaikan siklus rata-rata bergerak
  3. Anda dapat melakukan lebih banyak shorting sekaligus untuk mendapatkan keuntungan yang lebih tinggi.
  4. Sinyal perdagangan yang lebih akurat dapat dikombinasikan dengan harga dan hubungan rata-rata bergerak
  5. Garis rata bergerak memiliki keterlambatan tertentu, yang dapat secara efektif menghapus kebisingan pasar

Analisis risiko

Strategi penembusan dua garis rata-rata bergerak juga memiliki beberapa risiko:

  1. Ketika pasar berada dalam periode goncangan, akan ada lebih banyak sinyal yang salah
  2. Strategi dua rata-rata bergerak mudah membentuk fit-out kurva, mengabaikan perubahan struktural pasar
  3. Bergantung pada indikator teknis saja rentan terhadap terobosan palsu, ada risiko kerugian

Solusi:

  1. Mengoptimalkan siklus rata-rata bergerak agar lebih sesuai dengan kondisi pasar saat ini
  2. Kombinasi dengan indikator lain seperti sinyal konfirmasi volume transaksi, untuk menghindari penembusan palsu
  3. Mengadopsi strategi trend-following untuk mengontrol profit dan loss ratio dan mengurangi risiko

Arah optimasi

Strategi penembusan garis rata bergerak ganda dapat dioptimalkan dengan:

  1. Menemukan kombinasi siklus rata-rata bergerak yang lebih sesuai untuk menyesuaikan diri dengan perubahan pasar
  2. Meningkatkan volume transaksi untuk memfilter sinyal dan memastikan bahwa sinyal perdagangan efektif
  3. Kombinasi indikator struktur pasar, identifikasi tren dan penyesuaian parameter siklus rata-rata
  4. Garis rata-rata bergerak dinamis dapat secara otomatis menyesuaikan siklus sesuai dengan perubahan pasar
  5. Dengan strategi stop loss, Anda dapat secara efektif mengendalikan risiko dan melindungi dana Anda.

Meringkaskan

Strategi penembusan garis rata bergerak ganda adalah strategi perdagangan kuantitatif yang sederhana dan praktis. Ini memiliki keunggulan seperti logika strategi yang sederhana, mudah diterapkan, dan ada juga masalah adaptasi pasar tertentu. Kita dapat menjadikannya sistem perdagangan yang menguntungkan secara stabil melalui metode pengoptimalan parameter, penyaringan sinyal, dan pengendalian risiko. Secara keseluruhan, strategi garis rata bergerak ganda adalah prototipe strategi yang sangat baik yang layak untuk dipelajari dan diterapkan oleh pedagang kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone V.2", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)


Bullish = Fast>Slow
Bearish = Fast<Slow

Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast

Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]


alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")


//Plot

l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


if LSB == "Long only" and Buy and window()
    strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
    strategy.entry("L",true)
if LSB == "Both" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
    strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
    strategy.close("S",qty_percent=100,comment="TP Short")