Strategi Perdagangan Gap Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-10-26 16:05:01
Tag:

img

Artikel ini memberikan analisis mendalam mengenai strategi perdagangan jurang purata bergerak yang dikodkan oleh Noro. Strategi ini mengenal pasti pembalikan trend dengan mengira penyimpangan antara harga penutupan dan purata bergerak mudah, dan mencapai membeli rendah dan menjual tinggi.

Logika Strategi

Strategi ini mula-mula mengira purata bergerak mudah 3 hari (SMA). Kemudian ia mengira nisbah harga penutupan (dekat) kepada SMA tolak satu sebagai penunjuk (ind). Apabila ind melintasi di atas had parameter yang telah ditetapkan, ini bermakna harga penutupan telah melebihi SMA dengan ketara dan kedudukan panjang dianggap. Apabila ind melintasi di bawah - had, ini bermakna harga penutupan telah jatuh jauh di bawah SMA dan kedudukan pendek dianggap.

Strategi ini juga memetakan paksi 0, paksi had dan paksi had. Indikator ini berwarna berbeza di kawasan yang berasingan untuk membantu penilaian. Apabila ind melintasi had atau had, ia menandakan masuk panjang atau pendek.

Pada isyarat panjang/pendek, strategi akan menutup kedudukan bertentangan terlebih dahulu, kemudian membuka kedudukan panjang/pendek.

Kelebihan

  1. Mengambil prinsip perdagangan jurang untuk menangkap pembalikan trend, tidak seperti strategi mengikut trend.

  2. Menggambarkan paksi penunjuk untuk penilaian intuitif kedudukan penunjuk dan persilangan.

  3. Logik dekat yang dioptimumkan, menutup kedudukan sedia ada sebelum membalik arah.

  4. Julat masa dagangan yang ditakrifkan untuk mengelakkan kedudukan semalam yang tidak perlu.

  5. Fleksibiliti untuk membolehkan/menonaktifkan perdagangan panjang/pendek.

Risiko

  1. Strategi purata bergerak cenderung menghasilkan banyak perdagangan yang rugi, yang memerlukan kesabaran dalam memegang.

  2. Purata bergerak tidak mempunyai fleksibiliti dalam menangkap perubahan harga masa nyata.

  3. Parameter had yang telah ditetapkan adalah statik, yang memerlukan penyesuaian untuk produk dan persekitaran pasaran yang berbeza.

  4. Tidak dapat mengenal pasti turun naik dalam trend, memerlukan gabungan dengan penunjuk turun naik.

  5. Perlu mengoptimumkan peraturan pegangan e.g. hentikan kerugian, mengambil keuntungan; atau hanya menangkap jurang awal.

Arahan Peningkatan

  1. Uji tetapan parameter yang berbeza misalnya tempoh SMA, atau purata bergerak adaptif seperti EMA.

  2. Tambah arah purata bergerak dan pengesahan cerun untuk mengelakkan perdagangan yang tidak bermakna.

  3. Pertimbangkan untuk menggabungkan dengan penunjuk turun naik seperti Bollinger Bands untuk menghentikan perdagangan apabila turun naik meningkat.

  4. Melaksanakan peraturan saiz kedudukan e.g. kuantiti tetap, piramid tambahan, pengurusan wang.

  5. Tetapkan barisan stop loss/take profit, atau hentikan pesanan baru apabila stop loss peratusan tetap dicetuskan, untuk mengawal setiap risiko perdagangan.

Ringkasan

Artikel ini menganalisis secara komprehensif strategi perdagangan jurang purata bergerak Noro. Ia menggunakan jurang harga dari ciri purata bergerak dan melaksanakan paksi penunjuk dan warna untuk masa kemasukan. Ia juga mengoptimumkan logik dekat dan menentukan julat masa perdagangan.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Shift Close Strategy v1.0", shorttitle = "Shift Close 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
limit = input(10)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//Shift MA
sma = sma(ohlc4, 3)
ind = ((close / sma) - 1) * 100

//Oscilator
plot(3 * limit, color = na, transp = 0)
plot(limit, color = black, transp = 0)
plot(0, color = black, transp = 0)
plot(-1 * limit, color = black, transp = 0)
plot(-3 * limit, color = na, transp = 0)
plot(ind, linewidth = 3, transp = 0)
col = ind > limit ? red : ind < -1 * limit ? lime : na
bgcolor(col, transp = 0)

//Signals
size = strategy.position_size
up = ind < -1 * limit
dn = ind > limit
exit = ind > -1 * limit and ind < limit

//Trading
lot = 0.0 
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if exit
    strategy.close_all()

Lebih lanjut