
Strategi ini adalah strategi terobosan yang mudah, yang menggunakan perbezaan dua EMA yang berlainan dengan ketinggalan waktu sifar untuk mengesan momentum kenaikan atau penurunan objek sasaran. Apabila perbezaan melebihi beberapa kali ganda, isyarat melakukan lebih atau kurang dihasilkan, bergantung kepada arah EMA asas.
Strategi ini menggunakan dua jenis khas penunjuk EMA untuk mengira perbezaan kadar turun naik. Rumus untuk kedua-dua penunjuk EMA adalah:
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
Ia bertindak balas dengan serta-merta terhadap turun naik harga yang ketara, tanpa berlama-lama.
Apabila dif melebihi Brin di atas landasan, ia akan menghasilkan isyarat masuk; apabila dif di bawah Brin di tengah landasan, ia akan menghasilkan isyarat keluar. Arah EMA asas memutuskan untuk melakukan lebih banyak atau arah kosong.
Kelebihan terbesar strategi ini ialah menangkap isyarat penembusan dengan cepat dan tanpa kelewatan. Ini dicapai dengan mengira dua EMA berehat waktu sifar yang khusus. Ini membolehkan strategi bertindak balas dengan segera terhadap peristiwa penembusan harga, sehingga menangkap dengan lebih cekap pada awal pembentukan trend.
Kelebihan lain ialah strategi ini hanya menggunakan satu parameter lx. Kurang parameter menjadikan strategi lebih mudah disesuaikan dan mengurangkan risiko pengoptimuman berlebihan.
Risiko utama strategi ini adalah bahawa isyarat penembusan boleh menyebabkan penembusan palsu. Apabila harga bergoyang, ia mungkin menghasilkan penembusan palsu berturut-turut. Untuk mengurangkan risiko seperti itu, anda boleh meningkatkan kelipatan Brin dengan tepat untuk menjadikan isyarat lebih stabil.
Risiko lain ialah kerugian kecil yang sering berlaku dalam keadaan gegaran. Ini dapat dikurangkan dengan menyesuaikan mekanisme keluar. Contohnya menetapkan harga berhenti atau berhenti.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Bersama-sama dengan petunjuk lain, penapisan isyarat masuk ke dalam permainan untuk mengurangkan kebarangkalian penembusan palsu
Meningkatkan mekanisme penangguhan kerugian dan menguruskan risiko pegangan
Memperkenalkan pengesahan jumlah transaksi untuk mengelakkan banyak isyarat palsu
Menggunakan parameter Brin yang beradaptasi, menyesuaikan parameter mengikut kadar turun naik pasaran
Parameter strategi pengoptimuman dinamik berdasarkan kaedah pembelajaran mesin
Strategi EMA turun naik segera ini menangkap momentum trend harga dengan mengira EMA yang tertunda dengan masa sifar, mempunyai kelebihan seperti tindak balas yang cepat, parameter yang mudah. Langkah seterusnya dapat dioptimumkan dari segi penapis isyarat, menghentikan stop loss, dan pengesahan jumlah perdagangan, sehingga strategi dapat beroperasi dengan stabil dalam pelbagai keadaan pasaran.
/*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")