Strategi ini berdasarkan rel atas dan bawah Bollinger Bands untuk menentukan bila harga memecahkan melalui rel atas Bollinger Bands untuk pergi panjang dan memecahkan melalui rel bawah untuk pergi pendek.
Strategi ini menggunakan rel tengah / atas / bawah Bollinger Bands untuk menentukan julat harga yang melampau. Rel tengah adalah purata bergerak mudah harga penutupan selama 25 tempoh yang lalu. Rel atas dan bawah adalah satu penyimpangan standard di atas dan di bawah rel tengah. Apabila harga memecahkan rel atas atau bawah, ia menunjukkan bahawa terdapat gangguan dan tingkah laku harga yang tidak normal, yang boleh digunakan untuk membuat keputusan perdagangan.
Jika harga di bawah rel bawah, pergi panjang. Jika harga di atas rel atas, pergi pendek. Apabila pergi panjang, tetapkan stop loss kepada harga masuk dikalikan dengan faktor stop loss dan mengambil keuntungan kepada harga masuk dikalikan dengan faktor mengambil keuntungan.
Strategi ini juga menggabungkan beberapa peraturan tambahan, seperti membenarkan hanya satu isyarat setiap 24 jam untuk mengelakkan perdagangan yang tidak perlu.
Pengurusan Risiko:
Ringkasnya, ini adalah strategi pengesanan trend yang mudah menggunakan Bollinger Bands untuk menentukan harga yang tidak normal dan mengesan trend. Terdapat ruang untuk peningkatan dalam pengoptimuman parameter, kawalan risiko dan penapisan isyarat, tetapi idea terasnya mudah dan jelas, menjadikannya sesuai sebagai strategi pemula untuk pembelajaran.
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00) leverage = input.float(1,"Leverage (x)",step=1) SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage TP_Factor = input.float(2, step=0.1) invertBuyLogic = input.bool(false) lookbackDistance = input.int(25) devMult = input.float(2,step=0.1) var lastSellHour = 0 var disableAdditionalBuysThisDay = false if(time > lastSellHour + 1000 * 60 * 60 * 6) disableAdditionalBuysThisDay := false if(strategy.position_size != strategy.position_size[1]) disableAdditionalBuysThisDay := true lastSellHour := time source = close //Trade Logic basis = ta.sma(source, lookbackDistance) dev = devMult * ta.stdev(source, lookbackDistance) upper = basis + dev lower = basis - dev isBuy = ta.crossunder(source, upper) isBuyInverted = ta.crossover(source, lower) plot(upper, color=color.white) plot(lower, color=color.white) strategy.initial_capital = 50000 if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay)) strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage) if(strategy.position_size > 0) strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor) strategy.close("Long", when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")