Hàm đánh giá tùy chỉnh cho tối ưu hóa
Tối ưu hóa cBot là quá trình xác định các giá trị tham số tốt nhất có thể cho một cBot trước khi triển khai nó để giao dịch trực tiếp. Trong cTrader, bạn có thể tối ưu hóa cBot dựa trên nhiều tiêu chí tích hợp sẵn như tối đa hóa lợi nhuận hoặc giảm thiểu mức sụt giảm vốn tức thời. Tuy nhiên, bạn cũng có thể viết các hàm đánh giá tùy chỉnh cho việc tối ưu hóa, điều này có thể hữu ích nếu bạn muốn áp dụng các tiêu chí hiệu suất tùy chỉnh cho một cBot. Trong bài viết này và video tương ứng, chúng tôi thảo luận về cách hoạt động của các hàm đánh giá tùy chỉnh.
Lưu ý rằng bài viết này không đề cập đến quy trình tối ưu hóa cBot sử dụng các tiêu chí tích hợp sẵn.
Xác định hàm đánh giá tùy chỉnh
Một hàm đánh giá tùy chỉnh chỉ là một phương thức ghi đè của GetFitness().
1 2 3 4 | |
Phương thức ghi đè phải chấp nhận một đối số duy nhất thuộc loại GetFitness args để được coi là một hàm đánh giá tùy chỉnh.
Viết hàm đánh giá tùy chỉnh
Vì phương thức GetFitness() phải trả về một double, phần thân của phương thức nên chứa một phép tính dẫn đến một giá trị thuộc loại này.
Ví dụ, chúng ta có thể viết một hàm đánh giá tùy chỉnh đơn giản bình phương tổng số giao dịch thắng do cBot thực hiện và sau đó chia giá trị này cho tổng giá trị của các giao dịch thua lỗ. Bằng cách này, chúng ta phân bổ nhiều trọng số hơn cho các giao dịch thắng và, theo một nghĩa nào đó, cho phép cBot đã được tối ưu hóa thực hiện một số nước đi mạo hiểm.
Đây là hàm đánh giá của chúng ta sẽ trông như thế nào.
1 2 3 4 | |
Tại thời điểm này, chúng ta có thể thêm phương thức ghi đè vào bất kỳ cBot nào chúng ta muốn, sau đó lưu và xây dựng nó.
Sử dụng hàm đánh giá tùy chỉnh trong tối ưu hóa
Sau khi thêm hàm của chúng ta, chúng ta cần thêm một phiên bản của cBot đã chọn và sau đó chuyển sang tab Backtesting. Để tiến hành tối ưu hóa bằng hàm tùy chỉnh của chúng ta, tất cả những gì chúng ta cần làm là mở phần Optimisation criteria và chọn tùy chọn Custom. Sau đó, chúng ta có thể chạy tối ưu hóa như bình thường.
Trong quá trình tối ưu hóa, điểm đánh giá cao hơn sẽ được phân bổ cho các lần chạy mà cBot đã tối đa hóa tỷ lệ giữa số lượng giao dịch thắng bình phương và số lượng giao dịch thua lỗ.
Sửa đổi hàm đánh giá tùy chỉnh
Chúng ta cũng có thể quay lại hàm tùy chỉnh của mình và sửa đổi nó như sau.
1 2 3 4 5 6 7 8 9 10 11 | |
Hàm này vẫn tuân theo thuật toán trước đó nhưng chỉ áp dụng phép tính tùy chỉnh nếu cBot đã thực hiện hơn 20 giao dịch. Trong mọi trường hợp khác, hàm trả về giá trị double thấp nhất có thể. Về lý thuyết, điều này sẽ cải thiện kết quả bằng cách giảm khả năng sai lệch thống kê.
Nếu chúng ta xây dựng lại bot và chạy tối ưu hóa lần nữa, chúng ta sẽ thấy một số lần chạy nhận được điểm đánh giá rất thấp do số lượng tổng giao dịch thấp mà cBot đã thực hiện.
Cuối cùng, chúng ta muốn giảm thiểu mức sụt giảm vốn tức thời trong khi vẫn khuyến khích giao dịch tích cực.
1 2 3 4 5 6 7 8 | |
Nếu chúng ta chạy tối ưu hóa lần nữa, chúng ta sẽ thấy các lần chạy tốt nhất có thể dựa trên chiến lược giao dịch của chúng ta.
Các hàm đánh giá tùy chỉnh cung cấp một công cụ tuyệt vời để xác định các giá trị tham số tốt nhất có thể phù hợp với cách tiếp cận giao dịch độc đáo của bạn.