Please or Register to create posts and topics.

Lập trình Robot Auto Trading theo ngôn ngữ MQL5

Mình có 1 cái dự án nho nhỏ cũng tính public lên VNZ lâu rồi mà mình vẫn chưa làm, mặc dù mình đã viết xong từ rất lâu, cũng xài từ rất lâu rồi.

Cái dự án đấy nó chỉ thỏa mãn cho cái đam mê giao dịch forex tự động của mình thôi.
Còn nhớ cái hồi mình viết 1 cái topic lên hỏi xem có ai trong VNZ biết về ngôn ngữ mql4 hay không hoặc có tài liệu nào ko cho mình xin nhưng có vẻ cũng ko ai biết nên kể từ đó mình tự tìm tòi lang thang các diễn đàn. Rồi tập tành viết những thứ cơ bản, đúng là 1 mình tự mò rất là khó và mất rất nhiều thòi gian.

Khó nhất là khi có lỗi không biết lỗi là gì, ko biết giải quyết làm sao, ko biết giải xong có đúng hay sai nữa. Nhưng mà vì đam mê lập trình là chủ yếu, mình cũng đã thành thạo được không chỉ ngôn ngữ mql4 mà còn có thể tự viết đến tận mql5.

Ngoài ra mình còn viết riêng cho mình 1 bộ mã nguồn theo cách cá nhân hóa (Personalization), viết theo style riêng, nhưng đã được validated by MetaQuote Inc. Chính thức được phép lưu hành bộ code trên trang chủ của ww.mql5.com và trở thành người bán phần mềm trên đó.

Mình làm ra topic này cũng không có mong muốn gì nhiều, chỉ muốn chia sẻ bộ mã nguồn đã đóng gói để các anh em muốn code giao dịch tự động có thể dễ dàng code.

Thực tế mà nói nếu bạn chưa hề biết gì về code mà bắt tay vào tự học 1 cái gì đó nó rất là khó, chứ đừng nói code giao dịch theo chiến thuật của riêng bạn, càng khó hơn khi code cái đó để có thể mang tiền về túi.

Tuy nhiên, với bộ mã nguồn của mình thì bạn chỉ cần tập trung vào chiến thuật giao dịch, mọi lo lắng về code đã được giải quyết tới hơn 90% rồi, phần còn lại thì bạn chỉ cần tư duy thêm.

Mình lấy ví dụ thế này, bạn cần thiết lập 1 loạt nút bấm hiển thị trên chart nhằm mục đích thoát lệnh nhanh theo các yêu cầu dưới đây:
- Nút bấm Thoát tất cả các lệnh Buy và lệnh Sell (dù hàng trăm hay hàng nghìn lệnh nó cũng xóa hết khi clich vào nút bấm)
- Nút bấm thoát chỉ Buy (có bao nhiêu Buy thoát sạch)
- Nút bấm thoát chỉ Sell (có bao nhiêu Sell thoát sạch)
- Nút bấm xóa sạch tất cả các lệnh Chờ (buy stop, sell stop, buy limit, sell limit, ... )
- Nút bấm xóa duy nhất 1 lệnh Buy gần với thời điểm hiện tại nhất.
- Nút bấm xóa duy nhất 1 lệnh Sell gần với thời điểm hiện tại nhất.

Với các yêu cầu thế này, thông thường các bạn sẽ nghĩ đến việc lần mò trên mạng để tìm cách:
Bước 1. Tìm cách để làm sao thiết kế vẽ và hiển thị các nút bấm
Bước 2. Tìm cách để làm sao sau khi nút bấm đã hiển thị thì máy tính nó nhận biết được bạn vừa lick vào cái nút đó
Bước 3. Tìm cách làm sao để thêm các công thức vào các nút bấm, thông thường việc vào lệnh Buy hay Sell không khó, nhưng cái đoạn chỉ xóa các lệnh Buy, hoặc chỉ xóa các lệnh Sell thì nó lại làm đau đầu nhiều người.
Bước 4. Làm sao sử dụng lại được cái nút bấm đấy.

Mới chỉ nghĩ thôi đã thấy lằng nhằng rồi, nhưng với đoạn code của mình thì chỉ cần các bước:
Bước 1. Tạo nút bấm cực kỳ đơn giản bằng cách gọi cái nút bấm đó ra và đặt tên cho nó, xác định vị trí cần đặt
Bước 2. Gọi luôn cái hàm thực thi tương ứng vào từng nút bấm
Bước 3. Click là nó tự xử

Về code thì lại càng dễ khi các bạn chỉ cần bấm fx và dấu chấm "fx." là hệ thống nó tự xổ ra 1 mớ các chỉ thị khuyến nghị cho các bạn. Ko cần nhớ làm gì cho mệt, nó hiển thị ra nó show luôn đấy là gì luôn.