Một thuật toán/chiến lược giao dịch trước khi đưa vào thực tế phải được kiểm tra với dữ liệu quá khứ một cách kỹ lưỡng đây là một công đoạn khá quan trọng. Việc thực hiện backtest càng nhiều càng tốt vì muốn chiến thắng thị trường “tương lai” ít nhất phải thắng được “quá khứ”.
Những lưu ý
– Dữ liệu quá khứ là dữ liệu tĩnh (đã xảy ra) các chỉ báo không bị thay đổi nên kết quả backtest sẽ cao hơn thực tế. Trên thực tế có những thời điểm giao dịch biến động mạnh (dữ liệu động, luôn thay đổi) làm thay đổi tín hiệu mua bán, và khi đã vào lệnh sai phải mất 3 ngày mới có thể thay đổi trạng thái lệnh.
– Có những chỉ báo trễ (ví dụ đỉnh, đáy, điểm cắt…) trên thực tế phải sau một vài phiên mới xác nhận được. Do đó khi xây dựng thuật toán giao dịch phải loại trừ những tín hiệu mang tính lý thuyết này.
Vẫn lấy ví dụ bên phần Explorer, mua khi Cố phiếu thoả điều kiện:
– Có giá trị giao dịch trên 10 tỷ / phiên
– Đường MACD cắt lên đường Signal
– Bán khi MACD cắt xuống Signal
Buy=Cross(MACD(12,26),Signal(12,26,9));
Sell=Cross(Signal(12,26,9),MACD(12,26));
PlotShapes( Buy * shapeUpArrow + Sell * shapeDownArrow, IIf( Buy, colorGreen, colorRed ), 0, H*Sell+L*Buy);
Cấu hình thông số Backtest
Trước khi tiến hành, ta cấu hình hệ thống, nguyên tắc là sao cho gần giống thực tế nhất
Tiến hành Backtest
Trong Amibroker có 2 chế độ: backtest danh mục (portfolio backtest) và backtest cho cổ phiếu riêng lẻ (individual backtest)
Nhấn sang Tab info (dưới cùng) ta sẽ thấy báo cáo tóm tắt kết quả với Tổng lãi lỗ, Số lệnh và tỉ lệ thắng/thua
Report để xem lại kết quả
Đây là bước rất quan trọng để đánh giá một cách chi tiết nhất chiến lược giao dịch có hiệu quả hay không, có an toàn và có đủ độ tin cậy hay không trước khi ứng dụng thực tế