
Chiến lược này sử dụng các chỉ số Brin để xác định giá có đang trong giai đoạn hội nhập hay không, và sử dụng các phán đoán đột phá vào và ra. Nhìn chung, chiến lược này chủ yếu sử dụng các tình huống mạnh mẽ của hội nhập giá để kiếm lợi nhuận.
Chiến lược này bắt đầu bằng cách tính toán đường trung bình di chuyển đơn giản của giá đóng cửa trong 20 ngày làm đường trung tâm của dải Brin và tính toán chênh lệch chuẩn gấp 2 lần như băng thông của dải Brin. Khi giá cao hơn đường trên, nó được coi là vượt qua đường trên và khi giá thấp hơn đường dưới, nó được coi là vượt qua đường dưới.
Khi giá nằm trên đường đi giữa và dưới của vòng Brin, đánh giá là giai đoạn hội nhập. Khi phát hiện tín hiệu phá vỡ, thực hiện nhập cảnh nhiều đầu.
Stop loss được thiết lập là 2 lần chỉ số ATR.
Chiến lược này chủ yếu dựa trên tính tích hợp và đột phá của Brin Belt, với các ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Phản ứng:
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược này đơn giản và trực tiếp hơn, thu được lợi nhuận lớn hơn bằng cách thu thập năng lượng từ sự hội nhập giá. Có nhiều không gian tối ưu hóa, có thể điều chỉnh từ các quy tắc nhập cảnh, cách dừng lỗ, v.v., để có được lợi nhuận ổn định hơn với giả định kiểm soát rủi ro.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Consolidation Breakout Strategy", shorttitle="CBS", overlay=true)
// Parameters
length = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
risk = input.float(1, title="Risk per Trade (%)") / 100
// Calculate Bollinger Bands
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
// Entry Conditions
consolidating = ta.crossover(close, upper) and ta.crossunder(close, lower)
// Exit Conditions
breakout = ta.crossover(close, upper) or ta.crossunder(close, lower)
// Risk Management
atrVal = ta.atr(14)
stopLoss = atrVal * input.float(2, title="Stop Loss Multiplier", minval=0.1, maxval=5)
// Entry and Exit Conditions
longEntry = breakout and close > upper
shortEntry = breakout and close < lower
if (longEntry)
strategy.entry("Long", strategy.long)
if (shortEntry)
strategy.entry("Short", strategy.short)
if (longEntry and close < basis - stopLoss)
strategy.close("Long Exit")
if (shortEntry and close > basis + stopLoss)
strategy.close("Short Exit")
// Plot Entry and Exit Points
plotshape(consolidating, style=shape.triangleup, location=location.belowbar, color=color.rgb(30, 255, 0), title="Entry Signal")
plotshape(breakout, style=shape.triangledown, location=location.abovebar, color=color.rgb(255, 0, 0), title="Exit Signal")