Chiến lược giao dịch theo dõi thông minh dựa trên Bollinger Bands

Tác giả:ChaoZhang, Ngày: 2024-01-17 14:05:36
Tags:

img

Tổng quan

Chiến lược này được thiết kế dựa trên chỉ số Bollinger Bands để đi ngắn khi giá phá vỡ trên dải trên và đi dài khi giá phá vỡ dưới dải dưới, nhận ra giao dịch theo dõi thông minh.

Chiến lược logic

Chiến lược này sử dụng đường giữa, dải trên và dải dưới của Bollinger Bands làm chỉ số cơ bản. Dải giữa là đường trung bình động của giá đóng trong n ngày. Dải trên là đường giữa di chuyển lên bởi hai độ lệch chuẩn trong khi dải dưới được di chuyển xuống bởi hai độ lệch chuẩn. Khi giá phá vỡ dải dưới lên, đi dài. Khi giá phá vỡ dải trên xuống, đi ngắn. Điều này cho phép theo dõi thông minh giá dựa trên biến động thị trường.

Cụ thể, chiến lược chủ yếu đánh giá hai chỉ số:

  1. ta.crossover ((nguồn, thấp hơn): giá đóng phá vỡ trên dải dưới, đi dài

  2. ta.crossunder ((nguồn, trên): giá đóng phá vỡ dưới dải trên, đi ngắn

Khi điều kiện thoát được kích hoạt, sử dụng hàm strategy.cancel() để làm phẳng vị trí hiện có.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Dựa trên chỉ số Bollinger Bands, có thể nắm bắt biến động thị trường và theo dõi hiệu quả xu hướng giá
  2. Logic rõ ràng và đơn giản, dễ hiểu và thực hiện
  3. Các tham số có thể tùy chỉnh như độ dài thời gian và nhân độ lệch chuẩn, có khả năng thích nghi cao
  4. Các cơ chế dừng lỗ có thể cấu hình, phá vỡ hoặc dừng lại để tối ưu hóa hiệu suất chiến lược

Phân tích rủi ro

Ngoài ra còn có một số rủi ro với chiến lược này:

  1. Bollinger Bands breakouts dễ bị tín hiệu sai
  2. Hiệu suất phụ thuộc vào tối ưu hóa tham số, các tham số không phù hợp có thể ảnh hưởng đến lợi nhuận
  3. Theo dõi stop loss khó khăn, không thể kiểm soát hiệu quả lỗ giao dịch duy nhất

Các giải pháp tương ứng:

  1. Thêm bộ lọc với các chỉ số khác để tránh đột phá sai
  2. Kiểm tra các thông số kỹ lưỡng để tìm các thông số tối ưu đặt
  3. Thêm các cơ chế dừng lỗ di chuyển hoặc theo xu hướng

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa thêm bằng cách:

  1. Thêm các chỉ số khác để xác định hướng xu hướng, tránh các điều kiện thị trường không phù hợp với chiến lược Bollinger
  2. Kiểm tra các khoảng thời gian khác nhau để tìm ra thời gian tối ưu
  3. Kết hợp các cơ chế dừng chuyển động hoặc kéo theo để kiểm soát hiệu quả lỗ giao dịch duy nhất

Kết luận

Chiến lược này được thiết kế dựa trên chỉ số Bollinger Bands, sử dụng sự đột phá giá của các dải trên và dưới để tự động theo dõi giá. Logic đơn giản và nhạy cảm với biến động thị trường. Tăng cường thêm có thể được thực hiện thông qua các cơ chế điều chỉnh tham số và dừng lỗ. Nhìn chung chiến lược này hoạt động tốt cho các chỉ số và hàng hóa có biến động cao hơn. Các nhà giao dịch có thể kiểm tra lại và tối ưu hóa dựa trên sở thích giao dịch của họ để lấy một chiến lược giao dịch astika.


/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5


Thêm nữa