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 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ố:
ta.crossover ((nguồn, thấp hơn): giá đóng phá vỡ trên dải dưới, đi dài
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ó.
Những lợi thế chính của chiến lược này là:
Ngoài ra còn có một số rủi ro với chiến lược này:
Các giải pháp tương ứng:
Chiến lược có thể được tối ưu hóa thêm bằng cách:
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