Chiến lược trung bình di chuyển theo dải phần trăm là một chiến lược theo xu hướng. Nó sử dụng trung bình di chuyển làm cơ sở và tính toán dải trên và dải dưới dựa trên tỷ lệ phần trăm của giá. Nó đi ngắn khi giá vượt qua dải trên và đi dài khi giá vượt qua dải dưới. Ưu điểm lớn nhất của chiến lược này là nó có thể tự động điều chỉnh phạm vi biến động và nắm bắt hiệu quả xu hướng trong môi trường thị trường khác nhau.
Chỉ số cốt lõi của chiến lược này là đường trung bình động. Dải giữa là đường trung bình động đơn giản N ngày. Dải trên và dải dưới được tính dựa trên tỷ lệ thay đổi tỷ lệ phần trăm của giá. Các công thức cụ thể là:
Phạm vi trên = Phạm vi giữa + Giá * Tỷ lệ phần trăm Phạm vi trên Phạm vi thấp hơn = Phạm vi trung bình - Giá * Tỷ lệ phần trăm Phạm vi thấp hơn
Ở đây tỷ lệ phần trăm dải trên và tỷ lệ phần trăm dải dưới là các tham số có thể điều chỉnh, mặc định là 2, đại diện cho 2% giá.
Khi giá tăng lên, cả hai dải trên và dải dưới sẽ mở rộng lên cùng một lúc. Khi giá giảm, cả hai dải sẽ co lại xuống cùng một lúc. Điều này đạt được hiệu ứng tự động điều chỉnh chiều rộng kênh dựa trên mức độ biến động của thị trường.
Đối với chiến lược giao dịch, đi ngắn khi giá vượt qua dải trên và đi dài khi giá vượt qua dải dưới.
Lợi thế lớn nhất của chiến lược này là phạm vi biến động được tính dựa trên tỷ lệ thay đổi tỷ lệ phần trăm của giá, có thể tự động điều chỉnh để thích nghi với các điều kiện thị trường khác nhau. Nó có thể giảm các tín hiệu sai trong các thị trường giới hạn phạm vi và bắt kịp thời sự đảo ngược trong các thị trường xu hướng. Ngoài ra, việc thiết lập các điều kiện lựa chọn tháng và ngày có thể lọc tiếng ồn từ các tháng cận biên và tránh tạo ra các tín hiệu sai trong các tháng không có xu hướng chính.
Rủi ro chính của chiến lược này là trung bình động có hiệu ứng chậm trễ và không thể phản ứng ngay lập tức với các trường hợp khẩn cấp. Ngoài ra, việc thiết lập phạm vi tỷ lệ phần trăm cũng sẽ ảnh hưởng đến hiệu suất chiến lược. Nếu đặt quá thấp, nó sẽ làm trầm trọng thêm vấn đề chậm trễ của trung bình động. Nếu đặt quá cao, nó sẽ làm tăng xác suất tín hiệu sai.
Một rủi ro tiềm năng khác là phụ thuộc quá nhiều vào điều kiện ngày và tháng. Nếu xu hướng chính xảy ra bên ngoài các tháng đã thiết lập, chiến lược này sẽ bỏ lỡ cơ hội. Vì vậy, các điều kiện đã thiết lập trước này cũng cần phải được điều chỉnh theo các sản phẩm và môi trường thị trường khác nhau.
Tuy nhiên, vẫn còn nhiều cơ hội để tối ưu hóa chiến lược này. Thứ nhất, các kết hợp tham số khác nhau có thể được thử nghiệm, chẳng hạn như chiều dài của đường trung bình động, các tham số phần trăm, vv, để tìm các tham số tối ưu. Thứ hai, các chỉ số khác có thể được giới thiệu để xác nhận các tín hiệu đường trung bình động, chẳng hạn như khối lượng, để cải thiện độ tin cậy tín hiệu. Cuối cùng, các điều kiện lựa chọn ngày và tháng cũng có thể được điều chỉnh dựa trên các sản phẩm và môi trường thị trường khác nhau để làm cho chúng linh hoạt hơn.
Ví dụ, các tháng xu hướng chính có thể được đánh giá dựa trên dữ liệu lịch sử, sau đó các ngưỡng có thể được tính toán tự động. Khi có sự đột phá bất thường, các điều kiện tháng có thể tạm thời bị bỏ qua và tham gia đầy đủ.
Nói chung, chiến lược trung bình động theo dải phần trăm là một chiến lược rất thực tế theo xu hướng. Ưu điểm lớn nhất của nó là khả năng tự động điều chỉnh phạm vi biến động và thích nghi với những thay đổi của thị trường. Đồng thời, vẫn còn chỗ để cải thiện, chẳng hạn như tối ưu hóa tham số, lọc tín hiệu, vv. Nếu được sử dụng đúng cách, nó có thể kiếm lợi nhuận ổn định trong các môi trường thị trường khác nhau.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Percentage Band", overlay = true) //////////////// BAND //////////////////////////// price=close bandlength = input(50) bbupmult =input(2,step=0.1,title="Multiplier for Percent upper Band") bblowmult = input(2,step=0.1,title="Multiplier for Percent Lower Band") basis = sma(close,bandlength) devup = (bbupmult*price)/100 devlow = (bblowmult*price)/100 upper = basis + devup lower = basis - devlow plot(basis, color=red) p1 = plot(upper, color=blue) p2 = plot(lower, color=blue) fill(p1, p2) /////////////////////////BAND ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(price,lower) sellCond := crossunder(price,upper) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")