
Chiến lược này kết hợp các đặc điểm của chỉ số AlphaTrend và chiến lược Bollinger Bands. Chỉ số AlphaTrend được sử dụng để nắm bắt xu hướng thị trường, chiến lược Bollinger Bands được sử dụng để nắm bắt các đặc điểm quay trở lại trung bình của thị trường. Ý tưởng chính của chiến lược là: làm nhiều khi giá phá vỡ Bollinger Bands trên đường ray và chỉ số AlphaTrend lên; làm trống khi giá phá vỡ Bollinger Bands xuống đường ray và chỉ số AlphaTrend xuống.
Chiến lược này kết hợp các đặc điểm của theo dõi xu hướng và quay trở lại giá trị trung bình, theo dõi xu hướng khi xu hướng rõ ràng, thu được lợi nhuận trong thị trường biến động. Chỉ số AlphaTrend có thể điều chỉnh linh hoạt theo phong trào giá, thích ứng tốt với xu hướng. Đồng thời, Brin có thể vẽ một cách khách quan về giá cao và thấp, cả hai kết hợp với nhau để tạo ra tín hiệu nhập cảnh hiệu quả.
Các biện pháp đối phó với những rủi ro trên có thể bao gồm:
Chiến lược có rất nhiều không gian để tối ưu hóa. Tối ưu hóa tham số và lọc tín hiệu có thể cải thiện trực quan hiệu suất chiến lược. Việc giới thiệu quản lý vị trí có thể làm phẳng đường cong lợi nhuận.
Chiến lược này khéo léo kết hợp hai ý tưởng chiến lược định lượng phổ biến là theo dõi xu hướng và quay trở lại mức trung bình, đồng thời sử dụng chỉ số AlphaTrend và chỉ số Brin cổ điển. Chỉ số AlphaTrend tận dụng đầy đủ thông tin về giá cả và khối lượng giao dịch, thích nghi tốt với nhịp độ thị trường trong khi nắm bắt xu hướng. Trong khi đó, chỉ số Brin vẽ một cách khách quan về giá cả tương đối cao và thấp, có thể nắm bắt hiệu quả cơ hội mua quá mức.
Chiến lược có logic tổng thể rõ ràng, thiết lập tham số linh hoạt, dễ dàng tối ưu hóa cho các giống và chu kỳ khác nhau. Đồng thời, các điểm rủi ro của chiến lược cũng khá rõ ràng, quản lý vị trí và dừng lỗ cần được tối ưu hóa hơn nữa. Ngoài ra, để tăng thêm độ tin cậy của tín hiệu, bạn cũng có thể xem xét giới thiệu các chỉ số kiểu xu hướng như ADX, chỉ số động lực như RSI, v.v.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brlu99
//@version=5
strategy(title="AlphaTrend and Bollinger Bands 120324 Strategy", shorttitle="AT_BB120324", overlay=true, format=format.price, precision=2, pyramiding=0)
// AlphaTrend Indicator
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, 20)
src = input(close)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
// Bollinger Bands Strategy
BBPeriod = input.int(20, title="BB Period", minval=1)
BBMultiplier = input.float(2.0, title="BB Multiplier", minval=0.1)
basis = ta.sma(close, BBPeriod)
dev = ta.stdev(close, BBPeriod)
upper = basis + BBMultiplier * dev
lower = basis - BBMultiplier * dev
// Strategy Conditions
longCondition = ta.crossover(close, upper) and ta.crossover(AlphaTrend, AlphaTrend[1])
shortCondition = ta.crossunder(close, lower) and ta.crossunder(AlphaTrend, AlphaTrend[1])
// Exit conditions for Strategy 6
longExit_AT_6 = ta.crossover(close, AlphaTrend)
shortExit_AT_6 = ta.crossunder(close, AlphaTrend)
// Exit condition series
exit1 = input.bool(true, title="Enable Exit Condition for Strategy 1")
// Define exit conditions for each strategy
exit1_condition = close < AlphaTrend ? 1.0 : na
// Strategy Actions
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)
// Exit conditions for Strategy 1
strategy.exit("Buy", "longExit_AT_6", stop = exit1_condition, when =shortExit_AT_6 )
strategy.exit("Sell", "shortExit_AT_6", stop = exit1_condition, when =longExit_AT_6)
// Plotting
plot(AlphaTrend, color=color.blue, title="AlphaTrend")
plot(upper, color=color.green, title="Upper Bollinger Band")
plot(lower, color=color.red, title="Lower Bollinger Band")
// Alerts
alertcondition(longCondition, title='Potential Buy Signal', message='AlphaTrend crossed above Upper Bollinger Band')
alertcondition(shortCondition, title='Potential Sell Signal', message='AlphaTrend crossed below Lower Bollinger Band')