Tính toán toán học
Tester trong terminal MetaTrader 5 có thể được sử dụng không chỉ để kiểm tra các chiến lược giao dịch mà còn cho các phép tính toán học. Để làm điều này, hãy chọn chế độ phù hợp trong cài đặt tester, trong danh sách thả xuống Simulation. Đây là cùng danh sách nơi chúng ta chọn phương pháp tạo tick, nhưng trong trường hợp này, tester sẽ không tạo tick hoặc báo giá, thậm chí không kết nối với môi trường giao dịch (tài khoản giao dịch và các biểu tượng).
Việc lựa chọn giữa việc liệt kê toàn bộ các tham số và thuật toán di truyền phụ thuộc vào kích thước của không gian tìm kiếm. Đối với tiêu chí tối ưu hóa, hãy chọn Custom max
. Các trường nhập liệu khác trong cài đặt tester (như phạm vi ngày hoặc độ trễ) không quan trọng và do đó sẽ tự động bị vô hiệu hóa.
Trong chế độ Mathematical calculations
, mỗi lần chạy của tác nhân kiểm tra được thực hiện chỉ với việc gọi ba hàm: OnInit
, OnTester
, OnDeinit
.
Một bài toán toán học điển hình để giải quyết trong tester MetaTrader 5 là tìm cực trị cho một hàm nhiều biến. Để giải quyết, cần khai báo các tham số của hàm dưới dạng biến đầu vào và đặt khối tính toán giá trị của nó trong OnTester
.
Giá trị của hàm cho một tập hợp biến đầu vào cụ thể được trả về dưới dạng giá trị đầu ra của OnTester
. Không sử dụng bất kỳ hàm tích hợp nào ngoài các hàm toán học trong tính toán.
Phải nhớ rằng khi tối ưu hóa, giá trị tối đa của hàm OnTester
luôn được tìm kiếm. Do đó, nếu bạn cần tìm giá trị tối thiểu, bạn nên trả về giá trị nghịch đảo hoặc giá trị nhân với -1.
Để hiểu cách hoạt động này, hãy lấy ví dụ một hàm tương đối đơn giản của hai biến với một cực đại. Hãy mô tả nó trong thuật toán Expert Advisor MathCalc.mq5
.
Thông thường, giả định rằng chúng ta không biết biểu diễn của hàm dưới dạng phân tích, nếu không, có thể tính toán được các cực trị của nó. Nhưng bây giờ hãy lấy một công thức nổi tiếng để đảm bảo câu trả lời là chính xác.
input double X1;
input double X2;
double OnTester()
{
const double r = 1 + sqrt(X1 * X1 + X2 * X2);
return sin(r) / r;
}
2
3
4
5
6
7
8
Expert Advisor được đi kèm với tệp MathCalc.set
chứa các tham số để tối ưu hóa: các đối số X1 và X2 được lặp lại trong khoảng [-15, +15] với bước 0.5.
Hãy chạy tối ưu hóa và xem giải pháp trong bảng tối ưu hóa. Lần chạy tốt nhất cho kết quả chính xác:
X1=0.0
X2=0.0
OnTester result 0.8414709848078965
2
3
Trên biểu đồ tối ưu hóa, bạn có thể bật chế độ 3D và truy cập hình dạng của bề mặt một cách trực quan.
Kết quả tối ưu hóa (tối đa hóa) của một hàm trong chế độ tính toán toán học
Đồng thời, việc sử dụng tester trong chế độ tính toán toán học không chỉ giới hạn ở nghiên cứu khoa học thuần túy. Trên cơ sở đó, đặc biệt, có thể tổ chức tối ưu hóa các hệ thống giao dịch bằng các phương pháp tối ưu hóa nổi tiếng thay thế, chẳng hạn như phương pháp particle swarm
hoặc simulated annealing
. Tất nhiên, để làm điều này, bạn sẽ cần tải lịch sử báo giá hoặc tick vào các tệp và kết nối chúng với Expert Advisor được kiểm tra, cũng như mô phỏng việc thực hiện giao dịch, tính toán vị thế và quỹ. Công việc thường nhật này có thể hấp dẫn vì bạn có thể tự do tùy chỉnh quá trình tối ưu hóa (trái ngược với black box
tích hợp với thuật toán di truyền) và kiểm soát tài nguyên (chủ yếu là RAM).