
Strategi ini menggunakan garis pemisah emas Brin, digabungkan dengan penilaian bentuk garis rata untuk perdagangan regresi. Apabila harga menyentuh garis pemisah emas Brin, ia dianggap sebagai isyarat membeli, memanfaatkan ciri regresi seimbang harga untuk keuntungan.
Menggunakan vWMA dan bukannya SMA sebagai jalur tengah untuk BRI, lebih baik untuk mencerminkan pergerakan harga
Perpecahan emas adalah kawasan sokongan / rintangan yang penting, yang memberi asas kepada kemerosotan
Garis purata berlainan untuk memastikan trend ke atas
Penangguhan tetap memastikan kawalan kerugian tunggal
Garis pemisah emas bukan sokongan yang pasti, harga boleh jatuh secara langsung
Hentian tetap mungkin terlalu arbitrar dan perlu dipertimbangkan untuk disesuaikan dengan turun naik pasaran
Pengaturan berbilang mata rata-rata juga boleh menjadi penembusan palsu, yang harus digabungkan dengan lebih banyak petunjuk.
Panjang pengembalian tidak pasti, perlu menetapkan titik perhentian yang munasabah
Kombinasi parameter yang berbeza boleh diuji, seperti kitaran Brin, kelipatan perbezaan piawai, peratusan hentian tetap, dan sebagainya
Lebih banyak penunjuk boleh dimasukkan untuk menilai trend pasaran dan kebarangkalian pulangan, seperti MACD, KD dan lain-lain
Penutupan dinamik boleh dipertimbangkan, berdasarkan penutupan ATR atau penutupan yang dijejaki
Anda boleh mengoptimumkan strategi penangguhan, seperti penangguhan bergerak, penangguhan kumpulan, dan sebagainya.
Strategi ini menggunakan Brin dengan garis pemisah emas untuk perdagangan regresi seimbang, dengan keunggulan logik perdagangan yang jelas, parameter yang mudah ditetapkan, dan pengunduran yang boleh dikawal. Tetapi ada juga risiko tertentu, yang memerlukan ujian dan pengoptimuman lanjut, menambah lebih banyak penilaian indikator teknikal dan alat henti / henti, sebelum digunakan secara praktikal. Secara keseluruhan, strategi ini memberikan idea untuk perdagangan kuantitatif menggunakan peraturan pemisahan emas, yang patut dijelajahi lebih lanjut.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="Bollinger Band with Fib Golden Ratio (0.618)", shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD)
length = input(50,title="BB Length" , minval=1)
src1 = input(hlc3, title="Source")
//mult1 = input(1.33, minval=0.001, maxval=50)
mult = input(1.5,title="multplier", minval=0.001, maxval=50)
stopLoss=input(5,title="Stop Loss",minval=1)
basis = vwma(src1, length)
dev = mult * stdev(src1, length)
//dev3 = mult3 * stdev(src, length)
upper_618= basis + (0.618*dev)
lower_618= basis - (0.618*dev)
//lower_618_dev3= basis - (0.618*dev3)
plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618")
plot(basis, color=color.purple,style=plot.style_circles, linewidth=2)
plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry")
//plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop")
//plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry")
ema200=ema(close,200)
ema50=ema(close,50)
plot (ema200, title="ema200", color=color.orange, linewidth=2)
plot (ema50, title="ema50", color=color.blue , linewidth=2)
longCondition= ema50 > ema200
strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618 or low <= lower_618) )
strategy.close(id="BB_Fib618", comment="points="+tostring(close - strategy.position_avg_price, "###.##") , when = strategy.position_size >= 1 and crossover(close,upper_618 ))
//stoploss exit
stopLossVal = strategy.position_size>=1 ? strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00
strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price, "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )