
Strategi ini didasarkan pada tren naik dan turun di Bollinger Bands, menentukan harga melakukan lebih banyak ketika harga menembus tren Bollinger Bands, dan kosong saat menembus tren bawah, dan merupakan jenis strategi pelacakan tren.
Strategi ini menggunakan rel tengah, rel atas, dan rel bawah di Brin Belt untuk menilai kisaran harga ekstrim. rel tengah adalah rata-rata bergerak sederhana dari harga penutupan 25 periode terakhir, dengan rel atas dan bawah masing-masing adalah jarak standar berikutnya dari rel tengah. Ketika harga melintasi dari bawah rel atas atau dari garis rel bawah, menunjukkan bahwa harga telah terobosan, termasuk perilaku harga yang tidak biasa, dan keputusan perdagangan dapat dibuat.
Jika harga di bawah garis bawah, beli lebih banyak; Jika harga lebih tinggi dari garis atas, jual kosong. Untuk melakukan lebih banyak, atur garis stop loss sebagai harga masuk kali faktor stop loss, garis stop loss sebagai harga masuk kali faktor stop loss.
Strategi ini juga menambahkan beberapa aturan tambahan, seperti hanya satu sinyal yang diizinkan dalam 24 jam, untuk menghindari transaksi yang tidak perlu.
Tindakan pengendalian risiko:
Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang sederhana, menggunakan Brin band untuk menilai abnormalitas harga dan melacak tren, ada ruang untuk pengoptimalan dalam hal optimasi parameter, kontrol risiko, dan pemfilteran sinyal, tetapi ide intinya sederhana dan jelas, cocok untuk strategi pembelajaran pemula.
/*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")