Chiến lược này là một chiến lược theo xu hướng dựa trên chỉ số Bollinger Bands. Nó sử dụng các dải trên và dưới của Bollinger Bands để xác định hướng xu hướng và thực hiện theo dõi xu hướng. Nó đi dài khi giá vượt qua dải trên và đi ngắn khi giá vượt qua dải dưới. Stop loss được đặt ở dải giữa của Bollinger Bands.
Chiến lược này sử dụng chỉ số Bollinger Bands để xác định xu hướng giá. Bollinger Bands bao gồm ba đường - dải trên, dải dưới và dải giữa. Dải trên đại diện cho giới hạn tăng giá, dải dưới đại diện cho giới hạn giảm giá và dải giữa đại diện cho đường trung bình động của giá. Khi giá vượt qua dải trên từ dải dưới, nó báo hiệu sự bắt đầu xu hướng tăng. Khi giá vượt qua dải dưới từ dải trên, nó báo hiệu sự bắt đầu xu hướng giảm.
Cụ thể, các điều kiện đầu vào dài của chiến lược này là: 1) giá đóng của nến hiện tại cao hơn dải trên; 2) giá đóng của nến trước thấp hơn dải trên. Điều này báo hiệu rằng giá đã phá vỡ và xu hướng tăng bắt đầu, vì vậy đi dài là thích hợp. Các điều kiện đầu vào ngắn tương tự: giá đóng của nến hiện tại nằm dưới dải dưới và giá đóng của nến trước nằm trên dải dưới, cho thấy rằng đi ngắn đã sẵn sàng.
Cơ chế dừng lỗ của chiến lược này đặt mức dừng lỗ trên dải giữa, cho cả các vị trí dài và ngắn. Bởi vì dải giữa đại diện cho đường giá trung bình động, nó là một mức chính để đánh giá sự thay đổi xu hướng.
Sức mạnh lớn nhất của chiến lược này là khả năng xác định rõ xu hướng giá, sử dụng các tính năng của chỉ số Bollinger Bands để theo dõi xu hướng, tránh bị sai hướng bởi sự biến động của thị trường.
Ngoài ra, chiến lược này đặt ra các quy tắc nhập cảnh cho cả hai bên dài và ngắn, cho phép giao dịch hai chiều để tối đa hóa sự biến động giá.
Rủi ro chính của chiến lược này nằm trong cấu hình tham số Bollinger Bands. Thời gian trung bình động và kích thước độ lệch chuẩn của Bollinger Bands sẽ ảnh hưởng trực tiếp đến vị trí của các dải trên và dưới. Cài đặt tham số không chính xác có thể dẫn đến tỷ lệ đột phá sai tăng.
Ngoài ra, việc sử dụng dải giữa làm mức dừng lỗ cũng có rủi ro. Khi thị trường trải qua biến động mạnh, giá có thể đột ngột vượt qua dải giữa, kích hoạt dừng lỗ. Sau đó chúng ta cần đánh giá xem có sự đảo ngược xu hướng lớn hay không, và mở rộng phạm vi dừng lỗ theo yêu cầu.
Chiến lược này có thể được cải thiện từ các khía cạnh sau:
Tối ưu hóa các thông số Bollinger Bands. Tích lũy dữ liệu thực nghiệm với các khoảng thời gian khác nhau để tìm ra sự kết hợp thông số tốt nhất.
Thêm các quy tắc kiểm tra khối lượng để tránh đột phá sai trong các kịch bản khối lượng giao dịch nhẹ. Có thể đặt ngưỡng khối lượng giao dịch cần vượt quá giá trị trung bình gần đây trước khi kích hoạt lệnh.
Cải thiện cơ chế dừng lỗ bằng cách điều chỉnh mức dừng lỗ một cách năng động dựa trên mức độ biến động của thị trường. mở rộng phạm vi dừng lỗ dưới biến động cao và thu hẹp nó dưới biến động thấp.
Kết hợp đánh giá từ nhiều chỉ số như MACD, KDJ để giúp xác định thời gian nhập cảnh, tăng độ chính xác hoạt động.
Kết luận, đây là một xu hướng thực tế sau chiến lược nói chung. Nó xác định hướng xu hướng bằng cách sử dụng chỉ số Bollinger Bands và kích hoạt các lệnh khi giá vượt qua các dải trên hoặc dưới. Giao dịch hai chiều giúp tối đa hóa việc nắm bắt các biến động giá. Có nhiều chỗ để tối ưu hóa chiến lược thông qua điều chỉnh tham số, tinh chế dừng lỗ vv để có kết quả tốt hơn.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Valente_F //@version=4 strategy(title="Strategy: Trend Following Bollinger Bands", shorttitle="Strategy: Trend Following Bollinger Bands", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity) //Inputs //Bollinger Bands Parameters length = input(defval=20, minval=1, title= "Length") stddev = input(defval=2, minval=0.5, title= "StdDev") // STRATEGY INPUTS //Entry and Exit Parameters checkbox1 = input(true, title="Enable Long Entrys") checkbox2 = input(true, title="Enable Short Entrys") //Bollinger Bands Calculation [middle, upper, lower] = bb(close, length, stddev) //Long Conditions bulls1 = close > upper bulls2 = close[1] < upper[1] bulls = bulls1 and bulls2 //Short Conditions bears1 = close < lower bears2 = close[1] > lower[1] bears = bears1 and bears2 // Plots of Bollinger Bands plot(upper, title = "Upper Band", color = color.aqua)//, display = display.none) plot(middle, title = "MA", color = color.red)//, display = display.none) plot(lower, title = "Lower Band", color = color.aqua)//, display = display.none) neutral_color = color.new(color.black, 100) barcolors = bulls ? color.green : bears ? color.red : neutral_color //Paint bars with the entry colors barcolor(barcolors) //Strategy //STRATEGY LONG long_entry = bulls and checkbox1 long_entry_level = high strategy.entry("Long", true, stop = long_entry_level, when = long_entry) strategy.cancel("Long", when = not long_entry) strategy.exit("Stop Long", "Long", stop = middle) //STRATEGY SHORT short_entry = bears and checkbox2 short_entry_level = low strategy.entry("Short", false, stop = short_entry_level, when = short_entry) strategy.cancel("Short", when = not short_entry) strategy.exit("Stop Short", "Short", stop = middle)