
Chiến lược này được thiết kế dựa trên các chỉ số Bollinger Bands, có nghĩa là các giao dịch được theo dõi một cách thông minh bằng cách tháo lỗ khi giá phá vỡ Bollinger Bands và tháo lỗ khi giá phá vỡ Bollinger Bands.
Chiến lược này sử dụng các chỉ số dựa trên đường trung tâm, đường trên và đường dưới trong vùng Brin. Đường trung tâm là đường trung bình di chuyển của giá đóng cửa trong n ngày, đường trên là hai độ lệch tiêu chuẩn trên đường trung tâm và đường dưới là hai độ lệch tiêu chuẩn dưới đường trung tâm.
Cụ thể, chiến lược được đánh giá dựa trên hai chỉ số:
ta.crossover ((source, lower): giá đóng cửa trên đường đi xuống, làm nhiều
ta.crossunder (source, upper): Bắt đầu giao dịch dưới giá đóng cửa, tháo lỗ
Khi kích hoạt điều kiện phá sản, hãy sử dụng hàm strategy.cancel () để phá sản vị trí hiện tại.
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Giải pháp tương ứng:
Chiến lược này có thể được tối ưu hóa hơn nữa:
Chiến lược này dựa trên thiết kế chỉ số Brin, sử dụng cách phá vỡ giá lên và xuống đường để thực hiện theo dõi tự động. Chiến lược đơn giản, dễ hiểu, nhạy cảm với biến động thị trường, có thể tối ưu hóa hiệu quả hơn nữa bằng cách tối ưu hóa tham số và dừng lỗ. Nói chung, chiến lược này phù hợp với thị trường chứng khoán hoặc hàng hóa có biến động cao.
/*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