Strategi perdagangan kuantitatif berdasarkan purata bergerak pantas dan purata bergerak perlahan


Tarikh penciptaan: 2024-01-24 14:49:29 Akhirnya diubah suai: 2024-01-24 14:49:29
Salin: 0 Bilangan klik: 484
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif berdasarkan purata bergerak pantas dan purata bergerak perlahan

Gambaran keseluruhan

Strategi Breakout Rata-rata Bergerak Ganda adalah strategi perdagangan kuantitatif berdasarkan rata-rata bergerak cepat dan rata-rata bergerak perlahan. Ia menggunakan rata-rata bergerak indeks dalam dua tempoh yang berbeza sebagai isyarat perdagangan. Isyarat beli dihasilkan apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan; isyarat jual dihasilkan apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan.

Prinsip Strategi

Logik teras strategi ini adalah untuk membentuk isyarat dagangan menggunakan rata-rata bergerak cepat dan rata-rata bergerak perlahan. Strategi ini mentakrifkan kitaran rata-rata bergerak cepat selama 12 hari dan kitaran rata-rata bergerak perlahan selama 26 hari. Kaedah pengiraan adalah seperti berikut:

  1. Mengira purata bergerak indeks AP untuk arisan harga, dengan kitaran 2 hari
  2. Pengiraan purata bergerak pantas berdasarkan AP FAST, tempoh 12 hari
  3. Hitung purata bergerak perlahan berdasarkan AP Slow, tempoh 26 hari
  4. Perbandingan antara garis purata bergerak pantas dan garis purata bergerak perlahan:
    1. Apabila Fast memakai Slow sebagai isyarat multihead
    2. Isyarat kosong apabila Fast melalui Slow
  5. Untuk menentukan isyarat dagangan tertentu, perbandingan antara harga dan garis purata bergerak:
    1. Isyarat berbilang kepala: Fast>Slow && AP>Fast
    2. Isyarat kepala kosong: Fast

Dengan menggunakan persilangan rata-rata bergerak cepat dan rata-rata bergerak perlahan untuk menilai trend pasaran dan menghasilkan isyarat perdagangan, adalah strategi rata-rata bergerak ganda yang tipikal.

Analisis kelebihan

Strategi penembusan garisan purata bergerak berganda mempunyai kelebihan berikut:

  1. Logik strategi ringkas, jelas, mudah difahami dan dilaksanakan
  2. Dengan menyesuaikan kitaran purata bergerak, ia boleh disesuaikan dengan keadaan pasaran yang berbeza
  3. Anda boleh melakukan lebih banyak kerosakan pada masa yang sama dan mendapat keuntungan yang lebih tinggi.
  4. Isyarat dagangan yang lebih tepat yang boleh digabungkan dengan harga dan hubungan rata-rata bergerak
  5. Garis purata bergerak mempunyai ketegangan tertentu yang dapat menghapuskan bunyi pasaran dengan berkesan

Analisis risiko

Strategi penembusan garis rata bergerak berganda juga mempunyai risiko:

  1. Lebih banyak isyarat yang salah apabila pasaran berada dalam keadaan tidak menentu
  2. Strategi dua hala rata-rata mudah membentuk kerangka yang sesuai, mengabaikan perubahan struktur pasaran
  3. Bergantung kepada penunjuk teknikal sahaja terdedah kepada penembusan palsu, ada risiko kerugian

Penyelesaian:

  1. Mengoptimumkan kitaran rata-rata bergerak agar lebih sesuai dengan keadaan pasaran semasa
  2. Bersama-sama dengan petunjuk lain seperti isyarat pengesahan kuantiti, untuk mengelakkan penembusan palsu
  3. Menggunakan strategi untuk mengesan trend, mengawal kadar keuntungan dan kerugian, dan mengurangkan risiko

Arah pengoptimuman

Strategi penembusan garisan purata bergerak dua kali dapat dioptimumkan dengan:

  1. Mencari kombinasi kitaran purata bergerak yang lebih sesuai untuk menyesuaikan diri dengan perubahan pasaran
  2. Menapis isyarat dengan peningkatan jumlah transaksi dan lain-lain untuk memastikan isyarat dagangan berkesan
  3. Gabungan dengan petunjuk struktur pasaran, mengenal pasti trend dan menyesuaikan parameter kitaran purata
  4. Garis purata bergerak dinamik boleh menyesuaikan kitaran secara automatik mengikut perubahan pasaran
  5. Strategi Hentikan Kerosakan untuk Mengendalikan Risiko dan Melindungi Dana

ringkaskan

Strategi penembusan garisan purata bergerak ganda adalah strategi perdagangan kuantitatif yang mudah dan praktikal. Ia mempunyai kelebihan seperti logik strategi yang mudah dan mudah dilaksanakan, tetapi terdapat juga masalah adaptasi pasaran. Kita boleh menjadikannya sistem perdagangan yang menguntungkan secara stabil melalui pengoptimuman parameter, penapisan isyarat, dan kawalan risiko.

Kod 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")