Strategi ini didasarkan pada indikator Brin Belt dan indikator Moving Average Shock, yang membangun saluran harga untuk mengirimkan sinyal perdagangan melalui terobosan batas atas dan bawah saluran. Ini menggabungkan fleksibilitas Brin Belt dan indikator Shock, yang dapat menangkap perubahan tren pasar secara tepat waktu.
Strategi ini menggunakan Brin-band mid-trail dan oscillating moving average untuk membangun saluran harga. Mid-trail menggunakan 21 siklus Brin mid-trail, up-trail dan down-trail yang masing-masing memanjangkan satu interval persentase ke atas dan ke bawah.
Secara khusus, rumus perhitungan orbit Brin adalah:
中轨 = N日收盘价的移动平均线
Rumus untuk menghitung naik dan turun rel adalah:
上轨 = 中轨 + WidthDev * 布林带N日标准差
下轨 = 中轨 - WidthDev * 布林带N日标准差
Di mana WidthDev mewakili persentase yang membentang ke atas dan ke bawah.
Rata-rata bergerak bergoyang didasarkan pada mid-trajectory, dan akan diperpanjang atau dikurangi sesuai dengan aturan tertentu. Ketika pasar memasuki kondisi overbought atau oversold, rata-rata bergerak akan diperpanjang lebih jauh dari mid-trajectory, sehingga memperluas peluang untuk melakukan lebih banyak shorting. Ketika pasar menjadi tenang, rata-rata bergerak akan dikurangi ke mid-trajectory.
Secara keseluruhan, strategi ini menggambarkan saluran harga melalui Brin Belt, kemudian menggunakan indikator rata-rata bergerak bergoyang untuk menentukan waktu masuk, untuk mencapai perdagangan yang lebih banyak ketika harga dari bawah ke atas menembus Brin Uptrend; kosong ketika harga dari atas ke bawah menembus Brin Downtrend.
Mencerminkan volatilitas pasar Brinband dapat mencerminkan volatilitas dan perubahan tren pasar secara real-time, dan rel naik turun akan menyesuaikan diri dengan perubahan tingkat fluktuasi.
Mengurangi sinyal palsu Indikator Moving Average yang bergoyang secara efektif mengurangi sinyal palsu yang dihasilkan oleh Bollinger Bands melalui efek peregangan pada pilar. Ini meningkatkan lebar jalur Bollinger Bands, memperpanjang waktu memegang posisi, sehingga mendapatkan lebih banyak keuntungan.
Menangkap Pergeseran Tren Blink up and down dan perpotongan rata-rata bergerak bergoyang memberikan keuntungan waktu dan harga untuk sinyal perdagangan, yang dapat secara efektif menangkap perubahan multihead dan overhead yang penting, dan menangkap pembalikan tren pasar tepat waktu.
Pengaturan parameter Brinet Parameter Brinband yang tidak tepat, seperti siklus perhitungan dan standar deviasi ganda, dapat menyebabkan jarak antar-track yang terlalu besar atau terlalu kecil, menghasilkan banyak sinyal palsu, yang mempengaruhi stabilitas strategi.
Guncangan Terlalu Besar Jika pergerakan rata-rata yang bergoyang terlalu besar, maka stop loss akan terlalu jauh dan akan meningkatkan risiko kerugian.
Tidak terlambat kembali Ketika pasar berada dalam keadaan goyah atau tidak ada tren yang jelas, sinyal perdagangan yang dikeluarkan oleh indikator Brinks dan Moving Averages yang goyah dapat terlambat dan tidak dapat mencerminkan perubahan harga secara tepat waktu, menyebabkan risiko reversal yang tidak tepat waktu.
Optimalkan parameter Brinet
Anda dapat menguji berbagai parameter siklus, perkalian standar, dan memilih kombinasi parameter yang menghasilkan frekuensi sinyal terbaik dan lebih sedikit sinyal palsu.
Optimalkan parameter rata-rata bergerak bergoyang Anda dapat menguji berbagai amplitudo getaran dan siklus getaran, memilih parameter yang dapat menangkap tren dan mengurangi lag sinyal.
Menambahkan kondisi filter Anda dapat menggunakan sinyal silang dari BRI dan AMP, menambahkan filter untuk indikator tambahan seperti volume transaksi, dan menghilangkan beberapa sinyal perdagangan yang tidak efisien.
Komposisi Strategi Strategi ini dapat digunakan bersama dengan strategi tracking stop loss lainnya atau kombinasi strategi pembelajaran mesin untuk mengontrol risiko lebih lanjut dan meningkatkan stabilitas.
Strategi ini didasarkan pada indikator Bollinger Bands Adaptive Channel dan Variable Moving Average, yang merupakan kombinasi organik dari trend tracking dan trend reversal capture. Strategi ini menggabungkan keunggulan dari kedua indikator ini, dengan mempertimbangkan volatilitas pasar dan fleksibilitas sinyal perdagangan, sehingga memungkinkan terobosan perdagangan yang stabil dan efisien.
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull Cloud v2 by SEASIDE420
strategy("Hull Moving Average Cloud v2", shorttitle="hull_cloud_v2", overlay=true, commission_type=strategy.commission.percent, commission_value=0.075, default_qty_type=strategy.percent_of_equity, max_bars_back=200, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
hullperiod=input(title="HullMA Period",defval=210, minval=1)
Width=input(title="Cloud Width",defval=200, minval=2)
price=input(ohlc4,title="Price data")
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma=2*wma(price,round(hullperiod/2))
nma=wma(price,hullperiod)
diff=n2ma-nma
sqn=round(sqrt(hullperiod))
n2ma1=2*wma(price[1],round(hullperiod/2))
nma1=wma(price[1],hullperiod)
diff1=n2ma1-nma1
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
Hull_Line=n1-n1[1]/n2[1]
Hull_retracted=if(n1>n2)
Hull_retracted=Hull_Line-Width
else
Hull_retracted=Hull_Line+Width
c1=(Hull_retracted*n1)/price[1]
c2=(Hull_retracted*n2)/price[1]
c4=c1>c2?green:red
c2p=plot(c2, color=black, linewidth=1)
c3p=plot(price, color=black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
plot(cross(c1, c2) ? c1 : na, style = circles,color=c4, linewidth = 4)
if (price<c2)
strategy.close("BUY", when=window())
if (price>c2)
strategy.close("SELL", when=window())
if (price[1]>c2 and price[1]>c1)
strategy.entry("BUY",strategy.long, when=window())
if (price[1]<c1 and price[1]<c2)
strategy.entry("SELL",strategy.short, when=window())// /L'-,
// ,'-. ` ```` / L '-,
// . _,--dMMMM\ ` ` ` '`.. / '-,
// : _,--, )MMMMMMMMM),. ` ,<> /_ '-,'
// ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .'
// | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' /
// | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,'
// | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ /
// | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___
// | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-.
// | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-.,
// | __ \`. | | | \ / _ |. . . . \ `-. F
// | ___ / \ | `| ' __ \ | /-' F . . . . \ '`
// | \ \ \ / | __ / \ | |,-' __,- J . . . . . \
// | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,'
// | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\
// | ___ \ \ | | ` __,--' /;;;;;;;;;;;;.
// | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\
// \ | | / | __,--' `--;;/ \;-'\
// \ | |/ __,--' / / \ \
// \ | __,--' / / \ \
// \|__,--' _,-;M-K, ,;-;\
// <;;;;;;;; '-;;;;
// :D