Chiến lược này kết hợp Bollinger Bands và Moving Averages, sử dụng Bollinger Bands upper band và lower band để xác định giá đột phá và sử dụng trung bình chuyển động nhanh Golden Cross và death cross với trung bình chuyển động chậm để xác định xu hướng. Nó đi dài khi giá phá vỡ trên Bollinger upper band và trung bình chuyển động nhanh vượt qua trên trung bình chuyển động chậm. Nó đi ngắn khi giá phá vỡ dưới Bollinger lower band và trung bình chuyển động nhanh vượt qua dưới trung bình chuyển động chậm. Sử dụng xác nhận hai lần như vậy có thể lọc hiệu quả các đột phá sai.
Chiến lược này chủ yếu sử dụng hai chỉ số kỹ thuật, Bollinger Bands để xác định mức giá và Moving Averages để xác định xu hướng.
Bollinger middle band là đường trung bình di chuyển đơn giản của giá, đường trên là đường trung bình + 2 độ lệch chuẩn, đường dưới là đường trung bình - 2 độ lệch chuẩn. Khi giá tiếp cận đường trên, nó chỉ ra tình trạng mua quá mức. Khi giá tiếp cận đường dưới, nó chỉ ra tình trạng bán quá mức.
Đường trung bình di chuyển nhanh là đường trung bình di chuyển đơn giản 50 giai đoạn của giá và đường trung bình di chuyển chậm là đường trung bình di chuyển đơn giản 200 giai đoạn. Khi MA nhanh vượt qua trên MA chậm, nó báo hiệu xu hướng tăng hoặc đường chéo vàng. Khi MA nhanh vượt qua dưới MA chậm, nó báo hiệu xu hướng giảm hoặc đường chéo chết.
Các tín hiệu nhập cảnh đòi hỏi phải đáp ứng cả hai điều kiện đồng thời: phá giá trên dải Bollinger trên cùng cho thấy phá vỡ mức kháng cự VÀ đường MA nhanh vượt qua đường MA chậm cho thấy xu hướng tăng; phá giá dưới dải Bollinger dưới cùng cho thấy phá vỡ mức hỗ trợ VÀ đường MA nhanh vượt qua đường MA chậm cho thấy xu hướng giảm.
Sử dụng xác nhận hai lần có thể lọc hiệu quả các thông tin sai và làm cho các mục nhập chính xác hơn.
Bollinger Bands trực quan xác định mức hỗ trợ và kháng cự, Moving Averages xác định xu hướng đáng tin cậy, sự kết hợp bổ sung cho nhau.
Độ linh hoạt tối ưu hóa cao về các thông số như thời gian Bollinger, nhân độ lệch chuẩn, thời gian MA v.v. Phù hợp với nhiều môi trường thị trường hơn.
Dễ dàng thực hiện, dễ hiểu, ít mã hơn, có thể được sử dụng trực tiếp trong giao dịch trực tiếp.
Cả hai Bollinger Bands và MAs có thể thất bại trong một số trường hợp nhất định, xác nhận hai lần cũng có thể thất bại cùng nhau, gây ra các mục sai.
Các MA bị chậm phát hành, có thể gây ra thời gian nhập cảnh không chính xác hoặc mất cơ hội.
Các thiết lập tham số không đầy đủ như thời gian BB quá ngắn, thời gian MA không phù hợp vv có thể làm suy yếu hiệu suất chiến lược.
Chiến lược thoát hiểm có xu hướng gây ra tác động thoát hiểm sai, ngay cả khi có xác nhận hai lần.
Các phương pháp như điều chỉnh động các thông số, dừng lỗ nghiêm ngặt, kết hợp với các chỉ số khác có thể giúp giảm rủi ro.
Đưa ra các chỉ số khác để kiểm tra tình trạng, ví dụ: khuếch đại khối lượng trên BB breakout, MACD để xác định xu hướng, tạo ra nhiều xác nhận.
Kết hợp các mẫu nến để hỗ trợ thời gian nhập, ví dụ như búa hình thành trên BB chạm trên.
Sử dụng các MA động thay vì các MA tĩnh để cải thiện hơn nữa việc xác định xu hướng.
Thiết lập tự động tối ưu hóa tham số để tìm các bộ tham số tối ưu thông qua các thử nghiệm ngược lịch sử.
Điều chỉnh kích thước vị trí và mức dừng lỗ, đặt mức dừng lỗ nghiêm ngặt để kiểm soát lỗ.
Chiến lược này kết hợp Bollinger Bands và Moving Averages dựa trên các chỉ số kỹ thuật, chỉ đi vào vị trí khi cả sự đột phá giá của Bollinger Bands trên hoặc dưới và đường chéo vàng / chết của MAs được đáp ứng. Điều này sử dụng Bollinger Bands
/*backtest start: 2024-01-25 00:00:00 end: 2024-02-01 00:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Bands and Moving Averages Strategy", overlay=true) // Bollinger Bands length = input(20, minval=1, title="BB Length") mult = input(2.0, minval=0.1, maxval=5, title="BB Standard Deviation") src = close basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev // Moving Averages ma1_length = input(50, minval=1, title="MA1 Length") ma2_length = input(200, minval=1, title="MA2 Length") ma1 = sma(src, ma1_length) ma2 = sma(src, ma2_length) // Strategy Conditions longCondition = crossover(src, upper) and crossover(ma1, ma2) shortCondition = crossunder(src, lower) and crossunder(ma1, ma2) // Strategy Execution strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) strategy.close("Long", when=shortCondition) strategy.close("Short", when=longCondition) // Plotting plot(basis, color=color.blue, title="Basis") plot(upper, color=color.red, title="Upper") plot(lower, color=color.green, title="Lower") plot(ma1, color=color.orange, title="MA1") plot(ma2, color=color.purple, title="MA2")