
Chiến lược này sử dụng các chỉ số Bollinger Bands để đánh giá xu hướng, kết hợp với các tín hiệu băng thông để tìm kiếm cơ hội giao dịch, nhằm mục đích duy trì sự tăng trưởng ổn định của danh mục đầu tư. Theo dữ liệu hồi năm ngoái, chiến lược này có tỷ lệ lợi nhuận là 78.95%, và mức rút lui tối đa chỉ là -4.02%. Đây là một trong một loạt các chiến lược tự động của tôi, có thể hỗ trợ sự tăng trưởng ổn định của danh mục đầu tư.
Chào mừng các bạn đã làm điều chỉnh các tham số để kiểm tra lại và cũng chào đón những ý kiến quý giá của bạn. Nếu bạn hài lòng với kết quả hiện tại, bạn có thể chuyển nó sang học tập và thêm cảnh báo để thực hiện tự động hóa chiến lược. Điều này đòi hỏi thêm cơ chế cảnh báo trong mã. Nếu bạn quan tâm đến điều này, tôi có thể tạo ra các học tập có liên quan dựa trên chiến lược này.
Chiến lược này sử dụng băng tần và băng tần để xác định thời gian vào và ra sân.
Bảng Bollinger bao gồm đường lên, đường giữa và đường dưới. đường giữa là đường trung bình di chuyển đơn giản n ngày, tham số n mặc định là 16. đường giữa + k là giới hạn trên.*Phong độ chuẩn, giới hạn dưới là đường trung bình - k*Độ lệch tiêu chuẩn, tham số k mặc định là 3. Khi giá gần giới hạn trên, giá cổ phiếu là quá cao hoặc quá mua. Khi giá gần giới hạn dưới, giá cổ phiếu là quá thấp hoặc quá bán.
Chỉ số băng thông cho thấy sự biến động của giá so với đường trung bình. Nó được phân chia thành: đường lên - đường xuống) / đường trung bình*1000 được tính ra. Khi băng thông thấp hơn 20, đại diện cho sự ổn định hoặc cân bằng; Khi băng thông vượt quá 50, đại diện cho sự biến động tăng lên.
Chiến lược này tìm kiếm cơ hội phá vỡ giới hạn dưới khi băng thông nằm trong khoảng 20-50. Sau khi làm quá nhiều, đường dừng được thiết lập là 108% giá mở vị trí hoặc dừng lỗ khi phá vỡ giới hạn trên.
Chiến lược này có những ưu điểm sau:
Sử dụng dây Borrin để đánh giá xu hướng thị trường, giảm nguy cơ phá vỡ giả
Tín hiệu băng thông có thể xác định chính xác các biến động vị trí, tránh thiệt hại do biến động lớn
Dữ liệu phản hồi cho thấy tỷ lệ lợi nhuận đạt gần 80% trong một năm, tỷ lệ lợi nhuận rủi ro rất cao
Tối đa rút ra dưới 5%, có thể kiểm soát rủi ro hiệu quả, giữ cho danh mục đầu tư tăng trưởng ổn định
Chiến lược logic rõ ràng, đơn giản, dễ hiểu thực hiện, có thể được áp dụng rộng rãi cho các loại tài sản kỹ thuật số
Chiến lược này cũng có những rủi ro sau:
Các tham số của Bollinger Bands được đặt không chính xác, có thể làm bạn bỏ lỡ cơ hội giao dịch tốt hơn.
Tỷ lệ giao dịch có thể quá thấp và khả năng lợi nhuận bị hạn chế khi thị trường tiếp tục tăng hoặc giảm
Dữ liệu phản hồi không đầy đủ, có thể không thể sao chép các chỉ số phản hồi trong ứng dụng thực tế
Trong điều kiện thị trường cực đoan, điểm dừng có thể bị phá vỡ, gây ra tổn thất lớn
Chi phí giao dịch quá cao cũng làm giảm lợi nhuận thực tế
Giải pháp tương ứng:
Các tham số tối ưu hóa, điều chỉnh chu kỳ vòng xoáy cho các thị trường khác nhau
Tiếp theo, đưa ra các chỉ số khác để đánh giá xu hướng, đối phó với các trường hợp bất thường.
Thu thập dữ liệu đầy đủ để thực hiện nhiều cuộc khảo sát thị trường, xác minh tính ổn định của chiến lược
Điều chỉnh điểm dừng để tránh thiệt hại lớn từ các hoạt động cực đoan
Chọn một nền tảng giao dịch có phí thấp để giảm chi phí giao dịch
Chiến lược này có thể được tối ưu hóa bằng cách:
Bring in volume confirmation to avoid false breakouts (Tăng xác nhận khối lượng để tránh đột phá sai)
Combine with trend indicators to identify trend direction kết hợp với các chỉ số xu hướng để xác định hướng xu hướng
Sử dụng học máy để điều chỉnh các thông số và tự động thích nghi với thị trường
Add correlation filter to avoid trading uncorrelated assets (thêm bộ lọc liên quan để tránh giao dịch các tài sản không liên quan)
Optimize take profit/stop loss for more gains during uptrends Optimize take profit/stop loss for more gains during uptrends
Introduce more condition filters to increase win rate Tiếp tục giới thiệu nhiều bộ lọc điều kiện để tăng tỷ lệ chiến thắng
Test multi-timeframe combinations to profit from multiple cycles Kiểm tra kết hợp nhiều khung thời gian để hưởng lợi từ nhiều chu kỳ
Xây dựng danh mục đầu tư chỉ số để mở rộng phạm vi đầu tư
Sử dụng máy học để tự động tạo và xác nhận chiến lược mới
Chiến lược phá vỡ động đất của Bollinger đã có hiệu quả tổng thể tốt, có thể thu được lợi nhuận ổn định hơn trong tình trạng động đất. Ý tưởng cốt lõi của chiến lược đơn giản, rõ ràng và dễ nắm bắt. Tuy nhiên, tối ưu hóa tham số, kiểm soát rủi ro và quản lý danh mục cần được nâng cao hơn nữa để có thể ổn định lợi nhuận trong thị trường biến động phức tạp. Chiến lược này là chiến lược theo xu hướng cơ bản, có thể dựa trên đó để giới thiệu nhiều chỉ số kỹ thuật và cơ chế kiểm soát rủi ro để tối ưu hóa, cũng có thể kết hợp với học máy để thực hiện tự động hóa.
/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger Bands BAT/USDT 30min", overlay=true )
/// Indicators
///Bollinger Bands
source = close
length = input(16, minval=1)
mult = input(3, step=0.1, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
//Bollinger bands width
bbw = (upper-lower)/basis*1000
//plot(bbw, color=color.blue)
upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50)
lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20)
// Backtesting Period
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
// Take Profit
tp_inp = input(8, title='Take Profit %', step=0.1)/100
take_level = strategy.position_avg_price * (1 + tp_inp)
//Entry Strategy
entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input)
exit_long = cross(high,upper) or close < lower
if testPeriod()
strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long)
strategy.exit("Take Profit Long","LongBB",limit=take_level)
strategy.close(id="LongBB", when=exit_long )