Kế hoạch dự án của một dịch vụ web để sao chép giao dịch và tín hiệu
Là một dự án demo toàn diện mà chúng ta sẽ phát triển xuyên suốt chương này, chúng ta sẽ thực hiện một sản phẩm đơn giản nhưng đồng thời khá tiên tiến về công nghệ: một hệ thống sao chép giao dịch client-server. Phần máy khách sẽ là các chương trình MQL giao tiếp với phần trung tâm bằng công nghệ sockets. Xét rằng MQL5 chỉ cho phép làm việc với socket phía máy khách, bạn sẽ cần chọn một nền tảng thay thế cho máy chủ socket (chi tiết hơn ở dưới). Do đó, dự án sẽ yêu cầu sự kết hợp của nhiều công nghệ khác nhau và sử dụng nhiều phần của API MQL5 mà chúng ta đã nghiên cứu, bao gồm các mã ứng dụng được phát triển dựa trên chúng.
Nhờ kiến trúc client-server dựa trên socket, hệ thống có thể được sử dụng trong các kịch bản khác nhau:
- Để sao chép giao dịch dễ dàng giữa các terminal trên cùng một máy tính;
- Để thiết lập một kênh liên lạc riêng (cá nhân) giữa các terminal trên các máy tính khác nhau, không chỉ trong mạng cục bộ mà còn qua Internet;
- Để tổ chức một dịch vụ tín hiệu công khai hoặc đóng yêu cầu đăng ký;
- Để giám sát giao dịch;
- Để quản lý tài khoản của bạn từ xa.
Trong tất cả các trường hợp, các chương trình máy khách sẽ đóng 2 vai trò: một nhà xuất bản (publisher, người gửi) và một thuê bao (subscriber, người nhận) dữ liệu.
Chúng ta sẽ không tự tạo ra giao thức mạng riêng mà sẽ sử dụng tiêu chuẩn WebSocket hiện có và phổ biến. Việc triển khai phía máy khách của chúng được tích hợp trong tất cả các trình duyệt, và chúng ta sẽ cần tái hiện nó (với mức độ hoàn chỉnh lớn hơn hoặc nhỏ hơn) trong MQL5. Tất nhiên, hỗ trợ WebSocket cũng có sẵn cho hầu hết các máy chủ web phổ biến. Vì vậy, trong mọi trường hợp, các phát triển của chúng ta không chỉ có thể được điều chỉnh cho các máy chủ khác (nếu có cái nào phù hợp hơn) mà còn tích hợp với các trang web nổi tiếng cung cấp các dịch vụ web tương tự. Điểm mấu chốt ở đây là tuân thủ nghiêm ngặt thông số kỹ thuật của API của họ, được xây dựng dựa trên WebSocket.
Khi phát triển các hệ thống phần mềm phức tạp hơn một chương trình độc lập, điều quan trọng là phải lập kế hoạch hành động và thậm chí có thể thiết kế một dự án kỹ thuật, bao gồm cấu trúc các mô-đun, sự tương tác của chúng và trình tự mã hóa.
Vì vậy, kế hoạch của chúng ta bao gồm:
- Phân tích lý thuyết về giao thức WebSocket;
- Chọn và cài đặt một máy chủ web với việc triển khai máy chủ WebSocket;
- Tạo một máy chủ echo đơn giản (gửi lại một bản sao của các tin nhắn đến cho máy khách) để làm quen với công nghệ;
- Tạo một trang web phía máy khách đơn giản để kiểm tra chức năng của máy chủ echo từ trình duyệt;
- Tạo một máy chủ chat đơn giản gửi tin nhắn đến tất cả các máy khách được kết nối, và một trang web thử nghiệm cho nó;
- Tạo một máy chủ nhắn tin giữa các nhà cung cấp và thuê bao có thể nhận diện, cùng với một máy khách web thử nghiệm cho nó;
- Thiết kế và triển khai WebSocket trong MQL5;
- Tạo một script đơn giản làm máy khách cho máy chủ echo;
- Tạo một Expert Advisor đơn giản làm máy khách cho máy chủ chat;
- Cuối cùng, tạo một bộ sao chép giao dịch trong MQL5, nó sẽ đóng vai trò vừa là nhà cung cấp thông tin (giám sát thay đổi và trạng thái tài khoản) vừa là người tiêu dùng thông tin (tái tạo giao dịch), tùy thuộc vào cài đặt.
Nhưng trước khi bắt đầu thực hiện kế hoạch, chúng ta cần cài đặt một máy chủ web.