Cách tự động hóa chiến lược giao dịch thủ công
Giao dịch tự động hoặc thuật toán có một số ưu điểm so với giao dịch thủ công:
- Hệ thống tự động loại bỏ việc ra quyết định dựa trên cảm xúc và thực hiện giao dịch với độ chính xác, tốc độ và hiệu quả cao hơn.
- Các thuật toán triển khai nhất quán các chiến lược giao dịch nâng cao trong khi các biện pháp quản lý rủi ro được thực thi một cách đáng tin cậy.
- Thuật toán cho phép backtest các chiến lược bằng dữ liệu lịch sử và đa dạng hóa trên nhiều tài sản và thị trường cùng một lúc.
API cTrader Algo trao quyền cho các nhà giao dịch tự động hóa các chiến lược thủ công phức tạp, cho phép họ tận dụng nhiều lợi thế của giao dịch thuật toán. Trong bài viết này và video đi kèm, bạn sẽ học cách tự động hóa các chiến lược thủ công phức tạp và chuyển đổi chuỗi các thao tác thành thuật toán.
Xác định các mẫu chiến lược thủ công
Để phát triển một thuật toán, giả sử chúng ta đang giao dịch thủ công mẫu hình búa cho các lệnh vào dài hạn và mẫu hình người treo cổ cho các lệnh vào ngắn hạn.
Mẫu hình búa xuất hiện trong xu hướng giảm và gợi ý khả năng đảo chiều tăng giá. Mẫu hình búa được sử dụng để xác định các lệnh vào mua.

Mẫu hình người treo cổ xuất hiện trong xu hướng tăng và cho thấy khả năng đảo chiều giảm giá. Mẫu hình người treo cổ được sử dụng để xác định các lệnh vào bán.

Phát triển một cBot để giao dịch chiến lược thủ công
Trong Algo của cTrader, hãy tạo một thuật toán thực hiện chiến lược được mô tả trong phần trước.
Nhấp vào nút New dưới tab cBot. Nhập Patterns Strategy vào trường tên và nhấp vào Create.

Trong phương thức OnBarClosed(), chúng ta triển khai logic cho chiến lược của mình. Các lệnh vào của chúng ta phải đáp ứng hai điều kiện sau:
- Giá đóng cửa khớp với giá cao nhất.
- Kích thước nến ít nhất gấp năm lần thân nến.
Chúng ta bắt đầu bằng cách xác định các tham số Volume, StopLoss và TakeProfit.
1 2 3 4 5 6 7 8 | |
Sau đó, chúng ta viết một đoạn mã để thực hiện giao dịch mua khi các điều kiện cần thiết được đáp ứng.
1 2 3 4 5 | |
1 2 3 | |
Ở phía đối diện, đây là các điều kiện phải được đáp ứng cho các lệnh vào bán của chúng ta:
- Giá đóng cửa khớp với giá thấp nhất.
- Kích thước nến ít nhất gấp năm lần thân nến.
Tương tự, chúng ta viết một đoạn mã để thực hiện giao dịch bán khi các điều kiện cần thiết được đáp ứng.
1 2 3 4 5 | |
1 2 | |
Bạn có thể sao chép toàn bộ mã bên dưới:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Để xây dựng cBot, nhấn Ctrl+B hoặc nhấp vào Build.
Để backtest cBot, trước tiên chúng ta thêm một phiên bản. Chọn tùy chọn Locally, chỉ định các tham số ưa thích của bạn và nhấp vào nút Add instance.

Sau đó, chúng ta điều hướng đến tab Backtesting, chỉ định một khoảng thời gian cho hoạt động backtest và bắt đầu backtest.
Khi quá trình backtest hoàn tất, chúng ta có thể kiểm tra các giao dịch. Bạn sẽ thấy rằng các điều kiện vào lệnh được đáp ứng ngay trước khi mỗi giao dịch được thực hiện.
Với việc tự động hóa thành công chiến lược của chúng ta, chúng ta có thể sử dụng cBot để thực hiện giao dịch thay mặt chúng ta.
Triển khai chiến lược đảo chiều RSI
Trong ví dụ thứ hai của chúng ta, chúng ta muốn triển khai một chiến lược dựa trên sự đảo chiều của chỉ báo Relative Strength Index (RSI). Trong chiến lược này, chúng ta vào vị thế kỳ vọng RSI sẽ đảo chiều và tuân theo các quy tắc sau:
- Khi giá trị RSI di chuyển xuống dưới ngưỡng mua RSI, chúng ta vào vị thế mua.
- Khi giá trị RSI di chuyển lên trên ngưỡng bán RSI, chúng ta vào vị thế bán.
Hãy tạo một cBot mới, nhập RSI Reversal Strategy làm tên và nhấp vào Create.

Khi trình soạn thảo mã xuất hiện, hãy thêm System.Linq vào đầu mã như một tham chiếu.
1 | |
Hãy thêm hai tham số cho phép chúng ta sửa đổi các ngưỡng trước khi chạy cBot.
1 2 3 4 5 | |
Chúng ta khai báo và khởi tạo chỉ báo sức mạnh tương đối của mình.
1 2 3 4 5 6 | |
1 2 3 | |
Sau đó, chúng ta triển khai các điều kiện xác định logic giao dịch của chúng ta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Bạn có thể sao chép toàn bộ mã bên dưới:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Hãy xây dựng chiến lược của chúng ta, thêm một phiên bản và backtest nó, như chúng ta đã làm với chiến lược trước đó.
Chúng ta có thể kiểm tra và xem xét một số giao dịch một lần nữa để thấy các điều kiện vào lệnh được đáp ứng ngay trước khi một giao dịch được thực hiện.
Bài viết này đã chứng minh cách xác định một chiến lược thủ công và chuyển đổi nó thành một chiến lược tự động, cho phép thực hiện các hoạt động giao dịch thuật toán.
