Zero Lag Volatility Breakout Strategi Trend EMA

Penulis:ChaoZhang, Tarikh: 2024-01-15 12:00:25
Tag:

img

Ringkasan

Ini adalah strategi pecah mudah yang menggunakan perbezaan antara dua EMA lag sifar yang berbeza untuk mengesan momentum ke atas atau ke bawah instrumen.

Logika Strategi

Strategi ini menggunakan dua penunjuk EMA yang dikira khas untuk mendapatkan perbezaan turun naik, seperti yang ditunjukkan dalam formula di bawah:

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))  
dif = (hJumper / lJumper) - 1

Perbezaan bertindak balas dengan serta-merta terhadap perubahan harga yang tajam tanpa kelewatan.

Apabila dif melintasi Band Bollinger Atas, isyarat masuk dicetuskan. Apabila dif melintasi Band Bollinger Tengah, isyarat keluar dicetuskan. Arah EMA asas menentukan panjang atau pendek.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah tindak balasnya yang cepat kepada isyarat pecah tanpa kelewatan. Ini dicapai dengan menggunakan dua EMA kelewatan sifar yang dikira khas. Ini membolehkan strategi untuk menangkap peristiwa pecah harga dengan serta-merta dan memasuki awal dalam trend yang muncul.

Satu lagi kelebihan adalah kesederhanaan strategi ini. Ia hanya mempunyai satu parameter lx. Kurang parameter menjadikan pengoptimuman lebih mudah dan mengurangkan risiko pemasangan berlebihan.

Analisis Risiko

Risiko utama strategi ini adalah kemungkinan pecah palsu isyarat. pecah palsu berturut-turut mungkin berlaku semasa tempoh julat. Untuk mengurangkan risiko ini, kita boleh meningkatkan Bollinger Band kelipatan untuk membuat isyarat lebih stabil.

Risiko lain adalah kemenangan / kerugian kecil yang kerap semasa pasaran yang bergolak. Ini boleh dikurangkan dengan menyesuaikan mekanisme keluar, misalnya dengan menetapkan tahap harga stop loss atau mengambil keuntungan.

Arahan pengoptimuman

Berikut adalah beberapa arah strategi ini boleh dioptimumkan:

  1. Tambah penunjuk penapis untuk mengesahkan isyarat masuk dan mengurangkan isyarat palsu.

  2. Menggabungkan stop loss dan mengambil keuntungan untuk menguruskan perdagangan dengan lebih baik.

  3. Cari pengesahan jumlah dagangan untuk mengelakkan pecah palsu tanpa komitmen jumlah.

  4. Mengambil Band Bollinger adaptif untuk menyesuaikan parameter berdasarkan turun naik pasaran.

  5. Mengoptimumkan parameter secara dinamik berdasarkan pembelajaran mesin.

Kesimpulan

Ringkasnya, strategi EMA penembusan turun naik tanpa kelewatan ini menangkap momentum harga dengan cepat dengan menggunakan EMA yang dikira khas tanpa kelewatan.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)

tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
 " exposes you to more risk but potentially could generate larger returns."

src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)

plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")

sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]

plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)

if enterLong
    strategy.entry("Long",strategy.long)
if enterShort
    strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
    strategy.close("Long")
    strategy.close("Short")

Lebih lanjut