Chiến lược backtest phá vỡ khung
Tổng quan
Chiến lược này áp dụng phương pháp phá vỡ mức (level breakout), vào lệnh mua/bán khi có điều kiện phá vỡ nhất định, và có chức năng backtest tự động để tìm ra bộ tham số tối ưu.
Nguyên lý
-
Các tham số đầu vào bao gồm số ngày nhìn lại (lookback days), phần trăm chốt lời (take profit %), phần trăm cắt lỗ (stop loss %), cũng như các tham số backtest tự động như phạm vi số ngày nhìn lại, phạm vi chốt lời/cắt lỗ, v.v.
-
Khi backtest, duyệt qua tất cả các tổ hợp của số ngày nhìn lại, phần trăm chốt lời và phần trăm cắt lỗ, ghi lại lợi nhuận/thua lỗ của từng tổ hợp.
-
Xác định tín hiệu phá vỡ: Nếu giá đóng cửa vượt lên trên dải trên (upper band) và không phải là nến thời điểm vào lệnh, thì vào lệnh mua; nếu giá đóng cửa vượt xuống dưới dải dưới (lower band) và không phải là nến thời điểm vào lệnh, thì vào lệnh bán.
-
Điều kiện cắt lỗ: Nếu chưa chốt lời và chạm mức cắt lỗ, thì thoát lệnh cắt lỗ.
-
Điều kiện chốt lời: Nếu chưa cắt lỗ và chạm mức chốt lời, thì thoát lệnh chốt lời.
-
Hiển thị bảng chi tiết kết quả backtest, có thể sắp xếp theo tỷ lệ lợi nhuận, lợi nhuận ròng hoặc số lượng giao dịch tùy theo cài đặt của người dùng.
Ưu điểm
-
Chức năng backtest tự động giúp nhanh chóng tìm ra bộ tham số tối ưu mà không cần kiểm tra thủ công.
-
Có thể sắp xếp kết quả backtest theo tỷ lệ lợi nhuận, lợi nhuận ròng hoặc số lượng giao dịch, linh hoạt lựa chọn tham số tối ưu phù hợp với nhu cầu.
-
Hiển thị trực quan lợi nhuận/thua lỗ của từng giao dịch.
-
Các tham số backtest có thể tùy chỉnh, cho phép kiểm tra không gian tham số rộng hơn để tìm ra tối ưu toàn cục.
-
Quy tắc giao dịch của chiến lược đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
Rủi ro và giải pháp
-
Chu kỳ backtest ngắn có thể dẫn đến kết quả không ổn định. Giải pháp: Đặt chu kỳ backtest dài hơn.
-
Giao dịch thường xuyên dễ gây trượt giá ảnh hưởng đến lợi nhuận. Giải pháp: Nới rộng biên độ chốt lời/cắt lỗ một cách hợp lý.
-
Kết quả backtest trên một sản phẩm đơn lẻ có thể không mang tính đại diện. Giải pháp: Backtest trên nhiều loại sản phẩm khác nhau để tìm bộ tham số ổn định.
-
Tối ưu hóa quá mức tham số có thể dẫn đến overfitting. Giải pháp: Kiểm tra độ ổn định của tham số trên các sản phẩm và khung thời gian khác nhau.
-
Bỏ qua chi phí giao dịch có thể dẫn đến kết quả backtest bị lệch. Giải pháp: Đặt tham số phí giao dịch hợp lý.
Hướng tối ưu
-
Mở rộng chiều tối ưu tham số, ví dụ thêm cắt lỗ động hoặc giới hạn số lượng giao dịch.
-
Tối ưu điều kiện vào lệnh, kết hợp bộ lọc chỉ báo xu hướng.
-
Tối ưu chiến lược chốt lời/cắt lỗ, như chốt lời động hoặc trailing stop.
-
Bổ sung các thuật toán như machine learning để hỗ trợ tối ưu tham số.
-
Tối ưu cấu trúc code, tăng tốc độ backtest.
-
Kiểm tra độ ổn định tham số trên nhiều sản phẩm và nhiều khung thời gian.
-
Cân nhắc tích hợp chức năng giao dịch tự động.
Tổng kết
Chiến lược này có tư tưởng tổng thể rõ ràng, dễ hiểu; chức năng backtest tự động giúp tối ưu tham số nhanh chóng; hiển thị lợi nhuận/thua lỗ có lợi cho việc cải tiến chiến lược. Tồn tại một số rủi ro cần lưu ý, nhưng có thể cải thiện liên tục thông qua nhiều hướng tối ưu, mang lại giá trị thực tiễn cao. Nhìn chung, chiến lược này sử dụng ý tưởng phá vỡ đơn giản, kết hợp công cụ backtest tự động, có thể hỗ trợ nhà giao dịch nhanh chóng xây dựng một hệ thống giao dịch ổn định.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © -_-
//@version=5
// strategy("[-_-] LBAB", process_orders_on_close=true, overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, default_qty_type=strategy.cash, default_qty_value=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.075)
- 1

