Chiến lược này dựa trên các chỉ số dây chuyền Brin để xác định cơ hội mua tốt nhất bằng cách phân tích giá so với sự chuyển động trên đường, dưới đường và giữa đường. Chiến lược quản lý nhiều vị trí đầu và không đầu đồng thời, cho phép lợi nhuận từ nhiều 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 cung cấp các chỉ số biểu đồ rõ ràng và cảnh báo tín hiệu mua bán trong thời gian thực.
Chiến lược Brainstorm 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 Brainstorm. Bằng cách tích hợp quản lý vị trí nhiều đầu và không đầu, các tham số tùy chỉnh và các tính năng trực quan và cảnh báo, chiến lược 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 chỗ để tối ưu hóa, chẳng hạn như đưa vào các chỉ số bổ sung, tính toán tỷ lệ biến động, kỹ thuật quản lý rủi ro mạnh mẽ và điều chỉnh vị trí tự động 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")