
Chiến lược này dựa trên chỉ số đường Brinh, bằng cách làm tròn khi giá chạm đường lên đường Brinh và làm nhiều khi chạm đường xuống. Đồng thời, chiến lược này cũng giới thiệu khái niệm đặt cược kim tự tháp, sẽ tiếp tục đặt cược theo hướng ban đầu khi số lượng nắm giữ chưa đạt được giá trị tối đa được thiết lập.
Đường Brinh bao gồm ba đường, đường trung là đường trung bình di chuyển đơn giản của giá đóng cửa, đường trên và đường dưới được cộng và giảm một số chênh lệch tiêu chuẩn trên cơ sở đường trung. Vì giá luôn dao động gần giá trung bình, nên đường trên và dưới của đường Brinh có thể được coi là khu vực áp lực của giá. Khi giá phá vỡ đường trên, có nghĩa là xu hướng tăng mạnh, có thể làm nhiều hơn; phá vỡ đường dưới có nghĩa là xu hướng giảm mạnh, có thể làm trống.
Chiến lược này sử dụng tính năng xu hướng của đường Brin để tham gia vào khi giá chạm đường lên xuống, đồng thời tăng cường khả năng nắm bắt xu hướng bằng cách đặt hàng theo cách của kim tự tháp. Tuy nhiên, nó cũng có một số độ trễ và nhạy cảm với tham số. Trong ứng dụng thực tế, cần chú ý đến các tham số tối ưu hóa và quản lý vị trí, đồng thời có thể cân nhắc kết hợp với các tín hiệu khác để có được hiệu suất chiến lược vững chắc hơn.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Breakout Strategy", overlay=true)
// Définition des paramètres
length = input(20, title="Bollinger Bands Length")
multiplier = input(2.0, title="Multiplier")
pyramiding = input(5, title="Pyramiding")
// Calcul des bandes de Bollinger
basis = ta.sma(close, length)
dev = multiplier * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev
// Règles d'entrée
buy_signal = close <= lower_band
sell_signal = close >= upper_band
// Gestion des positions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Pyramiding
if (strategy.opentrades < pyramiding)
strategy.entry("Buy", strategy.long)
else if (strategy.opentrades > pyramiding)
strategy.entry("Sell", strategy.short)
// Tracé des bandes de Bollinger
plot(basis, color=color.blue)
plot(upper_band, color=color.red)
plot(lower_band, color=color.green)