Bỏ qua

Cách tối ưu hóa cBot

Trong cTrader, có thể tạo các cBot với bất kỳ số lượng tham số tùy chỉnh nào ảnh hưởng đến hành vi của chúng như mức bảo vệ lệnh hoặc khối lượng lệnh mặc định. Điều này đặt ra câu hỏi làm thế nào các nhà giao dịch có thể xác định chính xác các giá trị tối ưu của các tham số này. May mắn thay, cTrader cung cấp một công cụ tích hợp có thể xử lý việc tối ưu hóa, giúp các nhà giao dịch tiết kiệm thời gian quý báu.

Trong hướng dẫn sử dụng này, chúng tôi tập trung vào cách người dùng có thể tối ưu hóa cBot của họ và chứng minh tại sao việc tối ưu hóa cBot là cần thiết đối với bất kỳ nhà phát triển Algo nào.

Cách thức hoạt động của tối ưu hóa cBot

Hãy coi việc tối ưu hóa như một loạt các bài kiểm tra ngược. Mỗi lần chạy kiểm tra ngược xảy ra trên cùng một dữ liệu nhưng sử dụng các giá trị khác nhau cho bất kỳ tham số nào được mã hóa trong cBot.

Hãy xem xét một cBot có thể phản ứng với các trường hợp khi đường trung bình động của giai đoạn nhanh và chậm cắt nhau (đường trung bình động nhanh cắt đường trung bình động chậm). Chúng ta muốn có thể tùy chỉnh số lượng giai đoạn nhanh và chậm mà cBot nhận dữ liệu.

Do đó, cBot của chúng ta nên có hai tham số sau.

1
2
3
4
5
[Parameter("Slow Periods", Group = "Moving Average", DefaultValue = 10)]
public int SlowPeriods { get; set; }

[Parameter("Fast Periods", Group = "Moving Average", DefaultValue = 5)]
public int FastPeriods { get; set; }

Để xác định các giá trị tham số tối ưu, chúng ta cần kiểm tra kỹ lưỡng cách cBot hoạt động trong các điều kiện thị trường khác nhau và khi được cung cấp các giá trị khác nhau cho hai tham số trên. Nếu chúng ta thực hiện các bài kiểm tra này thủ công, chúng sẽ mất rất nhiều thời gian mà không cung cấp một bộ kết quả dễ diễn giải.

May mắn thay, chúng ta có thể khiến cTrader chạy các bài kiểm tra này tự động và khi kết thúc, cung cấp cho chúng ta các giá trị tham số nhất định cho phép cBot đạt được kết quả tốt nhất có thể. Quá trình này được gọi là tối ưu hóa cBot.

Truy cập tối ưu hóa cBot

Để truy cập tối ưu hóa cBot, hãy thực hiện các hành động sau.

Đầu tiên, chọn một phiên bản của cBot bạn muốn tối ưu hóa. Nếu cần, hãy tạo một phiên bản mới bằng cách nhấp vào biểu tượng dấu cộng và chọn một biểu tượng, hoặc chọn Thêm phiên bản trong menu ngữ cảnh mở ra bằng cách nhấp vào biểu tượng Thêm.

Sau đó, chuyển sang tab Tối ưu hóa nằm ngay bên phải tab Kiểm tra ngược. Màn hình chính trong tab này sẽ trông như sau.

Cấu hình cài đặt tối ưu hóa và tham số cBot

Vì tối ưu hóa là một loạt các bài kiểm tra ngược, bạn có thể cấu hình các cài đặt tương tự như bạn sẽ làm cho kiểm tra ngược thông thường. Để làm điều này, nhấp vào biểu tượng bánh răng và thay đổi các giá trị trong menu mới mở.

Để chọn các tham số chính xác mà cTrader cần tối ưu hóa, hãy nhấp vào nút Tham số ngay bên phải biểu tượng bánh răng.

Trong phần phụ này, bật hoặc tắt các cờ ở bên trái của mỗi tên tham số để bao gồm/loại trừ các tham số này khỏi quá trình tối ưu hóa. Lưu ý rằng tham số Khung thời gian có mặt cho tất cả các cBot bất kể cấu hình của chúng.

Chúng ta muốn tối ưu hóa để xác định các giá trị tối ưu của các giai đoạn chậm và nhanh mà cBot của chúng ta sẽ xem xét khi bắt đầu. Tuy nhiên, chúng ta chưa muốn thử các loại đường trung bình động khác.

Xác định tiêu chí và thuật toán tối ưu hóa

Có thể xác định chính xác những tiêu chí nào cTrader sẽ sử dụng để chọn các giá trị tham số tối ưu trong số các lần chạy kiểm tra ngược mà nó sẽ tiến hành.

Để làm điều này, nhấp vào nút Tiêu chí được biểu thị bằng biểu tượng đường hướng lên. Bạn sẽ thấy phần sau.

Cài đặt cho mỗi tiêu chí bao gồm hai menu. Trong menu bên trái, chọn xem tiêu chí nên được tối thiểu hóa hay tối đa hóa. Trong menu bên phải, chọn tiêu chí nên được tối thiểu hóa hoặc tối đa hóa từ một tập hợp các tùy chọn được xác định trước. Có thể thêm tiêu chí mới bằng cách nhấp vào Thêm tiêu chí.

Trong ảnh chụp màn hình trên, chúng ta muốn cTrader tối đa hóa lợi nhuận ròng và số lượng giao dịch thắng mà cBot của chúng ta thực hiện. Đồng thời, chúng ta muốn giảm thiểu tỷ lệ phần trăm sụt giảm vốn tức thời tối đa.

Để ngắn gọn, bài viết này không đề cập đến các tiêu chí tối ưu hóa tùy chỉnh và phương thức GetFitness(). Để tìm hiểu thêm về chúng, hãy tham khảo tài liệu kỹ thuật của chúng tôi.

Để chọn một thuật toán tối ưu hóa cụ thể, nhấp vào nút Thuật toán ở bên phải nút Tiêu chí. Phần phụ sau đây sẽ mở ra.

Thuật toán tìm kiếm toàn diện rất chính xác nhưng tốn nhiều tài nguyên. Khi tùy chọn Lưới được chọn, cTrader tạo ra một lưới tất cả các giá trị tham số có thể và chạy tất cả các bài kiểm tra ngược cần thiết để kiểm tra chúng. Mặc dù quá trình này kỹ lưỡng, nhưng nó có thể mất một số thời gian.

May mắn thay, cTrader bao gồm tùy chọn Thuật toán di truyền. Thuật toán này mô phỏng quá trình chọn lọc tự nhiên bằng cách coi mỗi lần chạy như một cá thể, các tham số cBot như gen và mức độ phù hợp với các tiêu chí tối ưu hóa như khả năng thích nghi. Thuật toán di truyền dừng lại khi phát hiện ra rằng bất kỳ thay đổi nào đối với các giá trị tham số nhất định sẽ tạo ra hiệu quả giảm dần đối với hiệu quả của cBot.

Vì thuật toán di truyền ít tốn tài nguyên hơn so với tìm kiếm toàn diện nhưng vẫn cho kết quả chính xác, chúng tôi khuyên bạn nên chọn phương pháp tối ưu hóa này.

Phân bổ tài nguyên và thực hiện tối ưu hóa cBot

Để thực hiện tối ưu hóa cBot, hãy chọn phạm vi dữ liệu lịch sử mà cTrader sẽ chạy backtest dựa trên đó. Để làm điều này, hãy sử dụng thanh trượt lịch ở đầu tab Tối ưu hóa hoặc các menu bên trái và bên phải của nó.

Lưu ý rằng tối ưu hóa là một quá trình tiêu tốn nhiều tài nguyên và có thể mất một thời gian để hoàn thành. Vì chúng ta muốn nhận kết quả tương đối nhanh, chúng ta sẽ chọn một năm làm khoảng thời gian tối ưu hóa.

cTrader cũng cho phép xác định chính xác tỷ lệ phần trăm tài nguyên CPU được phân bổ cho quá trình tối ưu hóa. Để tùy chỉnh cài đặt này, hãy nhấp vào nút Tài nguyên ở bên trái menu lịch ngoài cùng bên trái.

Trong phần mới xuất hiện, kéo thanh trượt để tăng hoặc giảm mức tiêu thụ CPU.

Sau khi hoàn tất việc phân bổ tài nguyên, bạn sẽ sẵn sàng để tiến hành tối ưu hóa. Để làm điều này, hãy nhấp vào nút Phát ở bên phải menu lịch ngoài cùng bên phải. Sau khi cTrader tải dữ liệu lịch sử, bạn sẽ thấy các lượt tối ưu hóa được thêm vào màn hình chính theo thời gian thực.

Ở đầu lưới, bạn cũng sẽ thấy số lượt hiện tại, thời gian đã trôi qua và thời gian tối ưu hóa còn lại.

Bất kỳ lượt nào đã hoàn thành sẽ được đánh dấu bằng dấu tích màu xanh lá cây. Tất cả các lượt mà cBot của bạn đã đạt đến mức dừng lỗ sẽ được đánh dấu bằng dấu tích màu xám thay vào đó.

Ghi chú

Bạn có thể lưu và tải kết quả tối ưu hóa, cho phép bạn mang chúng qua các thiết bị khác nhau.

Diễn giải và áp dụng kết quả tối ưu hóa

Trong lưới trung tâm, cTrader sẽ hiển thị một số chỉ số cho mỗi lượt backtest bao gồm số lượng giao dịch thắng mà cBot của bạn đã thực hiện và tỷ lệ phần trăm sụt giảm vốn tức thời tối đa.

Đáng chú ý đặc biệt là cột Độ phù hợp hiển thị điểm phù hợp cho mỗi lượt. Hãy xem điểm phù hợp như một chỉ số đánh giá mức độ mà một lượt đã tối đa hóa/tối thiểu hóa các tiêu chí tối ưu hóa bạn đã chọn. Điểm phù hợp cao hơn cho thấy mức độ phù hợp cao hơn với các tiêu chí này.

Để nhanh chóng chọn lượt có điểm phù hợp cao nhất, chỉ cần bật cờ Tự động chọn lượt tốt nhất nằm ngay phía trên lưới trung tâm. Lưu ý rằng bạn có thể bật cờ Tự động chọn lượt tốt nhất khi đang diễn ra quá trình tối ưu hóa, và cTrader sẽ tự động tìm kiếm các giá trị tham số tốt nhất có thể.

Như bạn có thể thấy trong cột Độ phù hợp, lượt số 33 đã cung cấp điểm phù hợp tốt nhất có thể so với tất cả các lượt khác.

Chúng ta có thể yên tâm nhấp vào Áp dụng bên cạnh lượt 33, và các giá trị tham số được sử dụng trong lượt này sẽ được áp dụng ngay lập tức cho phiên bản cBot của chúng ta.

Các giá trị mặc định cho các tham số Số chu kỳ chậmSố chu kỳ nhanh lần lượt bằng 10 và 5.

Như trong trường hợp backtest, màn hình Theo dõi giao dịch sẽ cung cấp biểu đồ vốn tức thời và thống kê giao dịch chi tiết tóm tắt các hành động được thực hiện bởi cBot của chúng ta trong một lượt cụ thể. Lưu ý rằng biểu đồ vốn tức thời chỉ được hiển thị cho 20 lượt tốt nhất từ lưới trung tâm.

Các đường Số dưVốn tức thời tăng đều đặn chỉ củng cố thêm thực tế rằng lượt 33 đã cung cấp các giá trị tham số cần thiết để cBot của chúng ta hoạt động hiệu quả.

Tổng quan

Tóm lại, tối ưu hóa cBot là một công cụ mạnh mẽ để đảm bảo rằng các cố vấn giao dịch tự động của bạn được cấu hình đúng cách. Chúng tôi đặc biệt khuyến nghị thực hiện nhiều vòng tối ưu hóa với các tiêu chí khác nhau để có ý tưởng về giá trị tham số nào sẽ tốt nhất cho bất kỳ cBot nào bạn đã tự phát triển hoặc mua từ các nhà phát triển khác.