
Chiến lược này dựa trên chỉ số Bollinger Bands, xác định cơ hội mua và bán tốt nhất bằng cách phân tích giá so với chuyển động trên đường đua, dưới đường đua và giữa đường đua. Chiến lược đồng thời quản lý các vị trí đầu nhiều và đầu trống, cho phép lợi nhuận từ các hướng thị trường khác nhau. Các tham số chiến lược có thể được tùy chỉnh để phù hợp với khả năng chịu rủi ro và phương pháp thị trường khác nhau.
Chiến lược Brin Belt cung cấp một khuôn khổ mạnh mẽ để tạo ra các tín hiệu giao dịch chính xác dựa trên sự chuyển động của giá so với Brin Belt. Bằng cách tích hợp quản lý vị trí vị trí đa đầu và trống, tham số tùy chỉnh và chức năng trực quan và nhắc nhở, chiến lược này cho phép các nhà giao dịch nắm bắt cơ hội một cách tự tin trong nhiều điều kiện thị trường. Mặc dù chiến lược này hoạt động tốt, vẫn còn không gian để tối ưu hóa, chẳng hạn như kết hợp các chỉ số bổ sung, tính toán biến động động, kỹ thuật quản lý rủi ro mạnh mẽ và điều chỉnh vị trí thích nghi dựa trên tình trạng thị trường.
/*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 with Long and Short", overlay=true)
// Bollinger Bands settings
length = input.int(20, title="BB Length")
src = input(close, title="Source")
mult = input.float(2.0, title="BB Multiplier")
// 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, linewidth=1, title="Basis")
p1 = plot(upper, color=color.red, linewidth=1, title="Upper Band")
p2 = plot(lower, color=color.green, linewidth=1, title="Lower Band")
fill(p1, p2, color=color.rgb(173, 216, 230, 90))
// Long Buy and Sell conditions
buyConditionLower = ta.crossover(src, lower)
sellConditionUpper = ta.crossunder(src, upper)
buyConditionBasis = ta.crossover(src, basis)
sellConditionBasis = ta.crossunder(src, basis)
// Combine long conditions
buyCondition = buyConditionLower or buyConditionBasis
sellCondition = sellConditionUpper or sellConditionBasis
// Short Sell and Buy conditions
shortConditionUpper = ta.crossunder(src, upper)
coverConditionLower = ta.crossover(src, lower)
shortConditionBasis = ta.crossunder(src, basis)
coverConditionBasis = ta.crossover(src, basis)
// Combine short conditions
shortCondition = shortConditionUpper or shortConditionBasis
coverCondition = coverConditionLower or coverConditionBasis
// Execute strategy orders for long
if (buyCondition)
strategy.entry("Long", strategy.long)
if (sellCondition)
strategy.close("Long")
// Execute strategy orders for short
if (shortCondition)
strategy.entry("Short", strategy.short)
if (coverCondition)
strategy.close("Short")
// Plot Buy and Sell signals for long
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", title="Sell Signal")
// Plot Sell and Cover signals for short
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT", title="Short Signal")
plotshape(series=coverCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="COVER", title="Cover Signal")
// Alert conditions for long
alertcondition(buyCondition, title="Buy Alert", message="Price crossed above the lower Bollinger Band or Basis")
alertcondition(sellCondition, title="Sell Alert", message="Price crossed below the upper Bollinger Band or Basis")
// Alert conditions for short
alertcondition(shortCondition, title="Short Alert", message="Price crossed below the upper Bollinger Band or Basis")
alertcondition(coverCondition, title="Cover Alert", message="Price crossed above the lower Bollinger Band or Basis")