
Chiến lược này là chiến lược phá vỡ dựa trên chỉ số Bollinger Bands, sử dụng tín hiệu phá vỡ Bollinger Bands xuống đường Provide để thực hiện các hoạt động mua và bán. Chiến lược này đồng thời có cơ chế theo dõi lỗ hổng và gia tăng vị trí, có thể thu được lợi nhuận cao hơn trong tình huống xu hướng.
Chiến lược này bắt đầu bằng cách tính các đường trung tâm, đường trên và đường dưới của vùng Brin. Đường trung tâm là đường trung bình chuyển động của giá, đường trên và đường dưới là một chênh lệch chuẩn trên đường trung tâm và đường dưới.
Khi giá trên đi xuống đường, nó tạo ra tín hiệu mua; khi giá dưới đi xuống đường, nó tạo ra tín hiệu bán. Điều này có nghĩa là giá đã phá vỡ phạm vi Brin và có thể đi vào xu hướng.
Ngoài ra, chiến lược này cũng đánh giá sự phá vỡ thực thể, nếu giá đóng cửa cao hơn giá mở và thực thể phá vỡ đường trung đạo một tỷ lệ nhất định, thì nó sẽ được cân bằng; nếu giá đóng cửa thấp hơn giá mở và thực thể phá vỡ đường trung đạo một tỷ lệ nhất định, thì nó sẽ được cân bằng. Điều này có thể tránh thiệt hại do phá vỡ giả.
Sau khi mở vị trí, chiến lược này có thể thực hiện các hoạt động dừng lỗ và gia tăng vị trí. Nếu giá tiếp tục chạy theo hướng thuận lợi, vị trí có thể được mở rộng, tăng lợi nhuận. Nếu giá đảo ngược, kiểm soát rủi ro bằng cách dừng lỗ.
Chiến lược này có những ưu điểm sau:
Chỉ số kỹ thuật này đơn giản và hiệu quả, sử dụng chỉ số Binance để đánh giá xu hướng và đột phá.
Kết hợp tính tin cậy của sự đột phá với tính tin cậy của thực thể và đường ray trung tâm, có thể tránh thiệt hại do đột phá giả.
Sử dụng Tracking Stop Loss để kiểm soát rủi ro và khóa lợi nhuận.
Sử dụng phương pháp gia tăng cổ phiếu, bạn có thể nhận được lợi nhuận cao hơn trong tình huống có xu hướng.
Lập luận chính sách rõ ràng, dễ hiểu, thiết lập tham số đơn giản, dễ thực hiện.
Chiến lược này cũng có những rủi ro sau:
Tuy nhiên, không thể hoàn toàn tránh được các vụ phá vỡ giả, và vẫn có một số rủi ro về tổn thất.
Cài đặt điểm dừng không đúng có thể gây ra dừng quá sớm hoặc dừng không có hiệu lực.
Việc đặt số lần đặt và tỷ lệ đặt không đúng có thể dẫn đến sự gia tăng lỗ.
Nếu xu hướng thay đổi, bạn có thể sẽ mất nhiều tiền nếu bạn không có thời gian để dừng lỗ.
Các tham số không được tối ưu hóa đầy đủ, có thể dẫn đến hiệu quả chiến lược kém.
Có nguy cơ phù hợp, cần phải xác minh trên các thị trường khác nhau.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Thử nghiệm và tối ưu hóa các tham số trong vòng Brin để tìm ra sự kết hợp tham số phù hợp hơn.
Kiểm tra các chiến lược dừng lỗ khác nhau để thiết lập điểm dừng lỗ chính xác hơn.
Kiểm tra số lần và tỷ lệ đặt hàng để tìm tham số tối ưu.
Tăng các chỉ số đánh giá xu hướng, tránh gia tăng rủi ro.
Tối ưu hóa logic phán đoán của thực thể đột phá, giảm xác suất đột phá giả.
Thêm chức năng đơn điều kiện, sử dụng các bộ tham số khác nhau tùy thuộc vào các tình huống thị trường khác nhau.
Thử nghiệm lại trong nhiều giống và chu kỳ khác nhau để tăng tính ổn định.
Sử dụng các phương pháp học máy để tự động tối ưu hóa tham số.
Nhìn chung, chiến lược này có thể đạt được hiệu quả tốt hơn bằng cách sử dụng chỉ số Brin để xác định hướng xu hướng và tín hiệu phá vỡ, và được trang bị các chức năng như dừng lỗ, gia tăng vị trí. Tuy nhiên, cũng có một số rủi ro, cần phải cải thiện bằng cách tối ưu hóa tham số, tăng phán đoán điều kiện, để làm cho chiến lược ổn định và đáng tin cậy hơn. Chiến lược này phù hợp cho các nhà đầu tư quen thuộc với phân tích kỹ thuật.
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy("Noro's Bollinger Strategy v1.1", shorttitle = "Bollinger str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body
body = abs(close - open)
abody = ema(body, 30)
//Signals
up = close <= lower
dn = close >= upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
strategy.close_all()