Strategi ini adalah trend-mengikuti dan strategi breakout berdasarkan kepada Indikator Recursive Bands yang dibangunkan oleh alexgrover. Ia menggunakan Indikator Recursive Bands untuk menentukan trend harga dan tahap sokongan / rintangan utama, digabungkan dengan keadaan momentum untuk menapis pecah palsu, mencapai isyarat kemasukan frekuensi rendah tetapi berkualiti tinggi.
Penunjuk Band Rekursif terdiri daripada band atas, band bawah dan garis tengah.
Band Atas = Max(Bar Sebelumnya
Di sini n adalah pekali skala, dan turun naik boleh dipilih dari ATR, penyimpangan standard, julat sebenar purata atau kaedah RFV khas. Parameter panjang mengawal kepekaan, nilai yang lebih besar membuat penunjuk mencetuskan kurang kerap.
Strategi ini terlebih dahulu memeriksa sama ada jalur bawah dan jalur atas adalah trend ke arah yang sama untuk mengelakkan pecah palsu.
Apabila harga pecah di bawah band bawah, pergi panjang. Apabila harga pecah di atas band atas, pergi pendek.
Di samping itu, logik stop loss dilaksanakan.
Kelebihan strategi ini ialah:
Terdapat juga beberapa risiko dengan strategi ini:
Risiko ini boleh diuruskan dengan pengoptimuman parameter, pelaksanaan stop loss, meningkatkan ambang slippage dll.
Beberapa arah untuk mengoptimumkan lagi strategi:
Ringkasnya, ini adalah strategi trend yang sangat praktikal dan cekap. Ia menggabungkan rangka kerja rekursif untuk kecekapan pengiraan, menggunakan sokongan trend / rintangan untuk menentukan trend utama, menambah keadaan momentum untuk menapis pecah palsu dan memastikan kualiti isyarat. Dengan penyesuaian parameter yang betul dan kawalan risiko, ia dapat mencapai hasil yang baik. Layak penyelidikan dan pengoptimuman lanjut untuk menyesuaikan diri dengan rejimen pasaran yang lebih kompleks.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=5 // Original indicator by alexgrover strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000) length = input.int(260, step=10, title='Length') src = input(close, title='Source') method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method') bandDirectionCheck = input.bool(true, title='Bands Hold Direction') lookback = input(3) //---- atr = ta.atr(length) stdev = ta.stdev(src, length) ahlr = ta.sma(high - low, length) rfv = 0. rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1] //----- f(a, b, c) => method == a ? b : c v(x) => f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x)))) //---- sc = 2 / (length + 1) a = 0. a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src))) b = 0. b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src))) c = (a+b)/2 // Colors beColor = #675F76 buColor = #a472ff // Plots pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band') pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band') pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band') fill(pC, pA, color=color.new(beColor,90)) fill(pC, pB, color=color.new(buColor,90)) // Band keeping direction // By Adulari longc = 0 shortc = 0 for i = 0 to lookback-1 if b[i] > b[i+1] longc:=longc+1 if a[i] < a[i+1] shortc:=shortc+1 bhdLong = if bandDirectionCheck longc==lookback else true bhdShort = if bandDirectionCheck shortc==lookback else true // Strategy if b>=low and bhdLong strategy.entry(id='Long',direction=strategy.long) if high>=a and bhdShort strategy.entry(id='Short',direction=strategy.short) // TP at middle line //if low<=c and strategy.position_size<0 and strategy.position_avg_price>close //strategy.exit(id="Short",limit=close) //if high>=c and strategy.position_size>0 and strategy.position_avg_price<close //strategy.exit(id="Long",limit=close)