
Strategi ini adalah strategi perdagangan yang berasaskan Brinband. Ia menggunakan Brinband untuk menghasilkan isyarat beli dan jual dan secara dinamik menetapkan tahap hentian dan hentian. Ia menghasilkan isyarat beli apabila harga melintasi rel bawah dan menghasilkan isyarat jual apabila ia melintasi rel atas. Posisi hentian ditetapkan pada harga terendah atau tertinggi dalam tempoh masa yang lalu, dan kedudukan hentian disesuaikan dengan dinamik isyarat baru.
Strategi ini adalah strategi perdagangan berasaskan Brin Belt yang menghasilkan isyarat beli dan jual dengan melintasi Brin Belt, dan secara dinamik menetapkan tahap hentian dan hentian. Logik strategi jelas, mudah dilaksanakan, dan dapat menyesuaikan diri dengan keadaan pasaran yang berbeza. Tetapi mungkin terlalu banyak perdagangan dihasilkan dalam pasaran yang bergolak, dan kekurangan penghakiman arah trend.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Strategy", overlay=true)
// Bollinger Bands settings
length = 20
src = close
mult = 2.0
// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plot(basis, color=color.blue, title="Middle Band")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
// Trade logic
// Buy when the price crosses below the lower Bollinger Band
buySignal = ta.crossover(lower, src)
// Sell when the price crosses above the upper Bollinger Band
sellSignal = ta.crossover(src, upper)
// Define stop loss and take profit levels
var float stopLoss = na
var float takeProfit = na
// Calculate stop loss and take profit levels
if (buySignal)
stopLoss := ta.lowest(low, length)
takeProfit := na
if (sellSignal)
stopLoss := ta.highest(high, length)
takeProfit := na
// Update take profit on new signals
if (buySignal)
takeProfit := na
if (sellSignal)
takeProfit := na
// Execute trades
if (buySignal)
strategy.entry("Buy", strategy.long, stop=stopLoss, limit=takeProfit)
if (sellSignal)
strategy.entry("Sell", strategy.short, stop=stopLoss, limit=takeProfit)
// Plot signals on chart
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")
// Alert conditions
alertcondition(buySignal, title="Buy Alert", message="Buy Signal detected")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal detected")