Strategi penarikan balik purata bergerak


Tarikh penciptaan: 2023-12-19 11:55:25 Akhirnya diubah suai: 2023-12-19 11:55:25
Salin: 1 Bilangan klik: 719
1
fokus pada
1621
Pengikut

Strategi penarikan balik purata bergerak

Gambaran keseluruhan

Strategi penarikan balik purata bergerak adalah strategi perdagangan kuantitatif yang mengesan persilangan harga saham dengan purata bergerak, menilai sama ada ada peluang penarikan balik berlaku, dan jika ada, melakukan operasi terbalik. Strategi ini menggunakan penarikan balik Fibonacci, menetapkan titik masuk dan titik berhenti untuk menangkap penarikan balik harga jangka pendek.

Prinsip Strategi

Strategi ini adalah berdasarkan dua rata-rata bergerak: EMA 14 hari dan SMA 56 hari. Apabila EMA 14 hari membuat isyarat beli ketika ia melintasi SMA 56 hari dari bawah. Selepas itu, kod akan kembali ke hari ke-20 untuk mencari titik rendah sebagai sokongan, kemudian menggabungkan harga dekat yang melintasi titik untuk memetakan garis tarik Fibonacci, dengan 1.272x garis tarik sebagai entrance, 0.618x garis tarik sebagai exit.

Strategi ini terdiri daripada beberapa langkah utama:

  1. Kira EMA 14 hari dan SMA 56 hari;
  2. Untuk menentukan sama ada terdapat isyarat garpu emas di EMA yang melintasi SMA;
  3. “Saya tidak tahu apa-apa tentang apa yang berlaku di sini.
  4. Menggunakan kedudukan titik rendah dan garpu emas untuk melukis garis tarik Fibonacci;
  5. Pasang titik kemasukan kosong pada 1.272 pusingan.
  6. Tetapkan titik berhenti pada 0.618 pusingan garisan.

Ini adalah proses utama dan prinsip kerja strategi tersebut. Strategi ini dapat menangkap peluang untuk mendapatkan keuntungan apabila harga berbalik dalam jangka pendek.

Kelebihan Strategik

Strategi ini mempunyai beberapa kelebihan:

  1. Strategi ini jelas dan mudah difahami dan dilaksanakan.
  2. Dengan menggunakan teori Fibonacci untuk menetapkan titik masuk dan berhenti, kawalan risiko lebih baik;
  3. Ia adalah satu-satunya cara untuk menjana keuntungan yang lebih baik dalam jangka masa yang lebih pendek daripada dengan hanya mengambil peluang untuk mendapatkan keuntungan yang lebih baik.
  4. Hanya memerlukan satu isyarat garpu moving average yang boleh dimulakan.

Secara keseluruhannya, strategi ini sangat sesuai untuk perdagangan berbalik-balik garis pendek, untuk menangkap peluang seperti ini apabila terdapat penyesuaian tertentu dalam pasaran. Pelaksanaan strategi ini juga lebih mudah dan langsung.

Risiko Strategik

Walaupun ia mempunyai kelebihan tersendiri, terdapat beberapa risiko yang perlu diperhatikan:

  1. Dalam jangka masa yang panjang, ia boleh menyebabkan kerugian yang besar. Oleh kerana kita berada dalam keadaan negatif, jika harga terus meningkat, kita akan menghadapi kerugian yang besar.
  2. Harga tidak boleh mencapai barisan penangguhan dan tidak boleh menjana keuntungan.
  3. Mungkin terdapat risiko seting yang terlalu tinggi. Garis tarik balik ditetapkan terlalu tinggi, tidak dapat disentuh untuk membentuk peluang sandaran. Perlu mengira jarak tarik balik yang munasabah.

Untuk risiko yang disebutkan di atas, kita boleh menetapkan masa berhenti yang lebih pendek, mengawal kerugian tunggal dengan ketat; dan mengoptimumkan julat julat untuk menarik balik, menetapkan keuntungan sasaran yang munasabah, dan dengan itu mengelakkan sebahagian daripada risiko.

Arah pengoptimuman

Terdapat banyak ruang untuk pengoptimuman dalam strategi ini, terutamanya dari segi berikut:

  1. Uji parameter yang berbeza, seperti panjang kitaran purata bergerak, hari mundur, dan kelipatan garis mundur, untuk mencari parameter yang optimum;

  2. Menambah mekanisme penangguhan kerugian, yang boleh menggunakan penangguhan ganda atau penangguhan bergerak, untuk mengawal risiko dengan lebih baik;

  3. Berkongsi dengan penunjuk FILTER yang lain, mengelakkan perdagangan dalam keadaan pasaran yang tidak sesuai;

  4. Mengoptimumkan pengurusan dana, menetapkan saiz kedudukan yang munasabah dan ambang risiko.

Dengan menguji dan mengoptimumkan parameter, strategi ini dapat diperbaiki lagi, dan hasilnya adalah prestasi dagangan yang lebih stabil.

ringkaskan

Strategi bergerak rata-rata tarik balik adalah strategi perdagangan garis pendek yang sangat praktikal. Ia dapat menangkap peluang pembalikan harga dalam jangka pendek, berdagang melalui titik masuk dan titik henti yang ditetapkan sebelumnya.

Kod sumber strategi
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC Pullback", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2035, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)


// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28


// Locate Swing Lows
leftBars = input(20)
rightBars=input(20)
swinglow = pivotlow(close, leftBars, rightBars)
plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars)

if goLong == true and time >= testPeriodStart and time <= testPeriodStop
    // We try to make sure that we're catching the first Pullback after the crossover
    if ema14[12] < sma56[12] 
        pivotpoint = lowest(40)[0] //lowest value of the month as our swing low
        
        // We calculate a Fib 1.272 extension (from the previous swing low to 
        // the crossover long entry's open) and use this as our entry target to short the Pullback
        extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint
        shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint        
        
        strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget)
        // I would like to use a trailing stop but for know we just hope to get 
        // filled if the pullback reaches all the way down to the 0.618.
        // We also place a tight stop loss since we trying to short an uptrend
        strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)