AutoTrade là ứng dụng mã nguồn mở (CLI app) giúp bạn tuỳ chỉnh, tự tạo chiến thuật cho riêng mình và tự động đặt lệnh phái sinh qua API.
Bài viết này sẽ hướng dẫn bạn biến máy tính cá nhân thành một server API bảo mật, cho phép bạn giao dịch tự động từ bất kỳ đâu thông qua một tunnel kết nối an toàn.
Để sử dụng:
+ Bước 1: Tải file zip rồi giải nén hoặc “git clone https://github.com/ChungkhoanPhaisinh/AutoTrade.git”
+ Bước 2: Khởi chạy dựa trên hướng dẫn “https://github.com/ChungkhoanPhaisinh/AutoTrade”
Sau khi chạy main.py lần đầu thành công, tức là bạn đã setup thành công rồi :3
AutoTrade hỗ trợ tạo tunnel cloudflared miễn phí để kết nối giao dịch qua API nếu bạn không có tunnel riêng. Để bắt đầu, bạn chạy file tunnel.py như trong hướng dẫn, sẽ trả về giống thế này:

Đường dẫn nhận được sẽ khác mỗi lần chạy, bạn có thể tạo 1 biến “BASE_URL = https://thumbzilla-distribute-enrolled-located.trycloudflare.com” (ví dụ). Và mỗi khi cần, gọi API đến “{BASE_URL}/order/…”. Như vậy sẽ đơn giản hoá quá trình sử dụng.
Nếu bạn đã setup tunnel Cloudflared riêng trên máy, hãy điền vào “cloudflared_tunnel_id” trong config.json và dùng lệnh “UseCustumTunnel()” ở dòng cuối cùng thay thế:

Khi đặt lệnh, các logic sau được áp dụng:
+ Chung cho cả đặt lệnh thường và lệnh điều kiện:
- Nếu không truyền query “side” vào, mặc định là “NB” (mua)
- Nếu không truyền query “volume” vào, mặc định là 1
- Nếu không truyền query “demo” vào, mặc định là false (đặt lệnh bằng tài khoản thật)
- Nếu không truyền query “loan” vào, mặc định sẽ theo thiết lập sẵn trong AutoTrade
- “demo” được coi là true miễn là có tham số truyền vào, ví dụ demo=(1, 2, a, hsdsu, …) đều là true
+ Lệnh thường:
- Nếu không truyền query “type” vào, mặc định là “LO” (có thể dùng MTL thay thế)
- Nếu dùng lệnh MTL thì không cần phải truyền query “price” vào (tự bỏ qua)
+ Lệnh điều kiện:
- Nếu không truyền query “condition” vào, mặc định là “<“
Các câu lệnh mẫu ( lưu ý thay link bằng đường dẫn của bạn):
- Đặt lệnh mua (POST request): https://trycloudflare.com/order?price=1900&side=NB&symbol=41I1B000&demo=5
- Đặt lệnh bán MTL: https://trycloudflare.com/order?type=MTL&side=NB&symbol=41I1B000&demo=9
- Đặt lệnh bán khi giá vượt 2000: https://trycloudflare.com/conditional_order?price=2002.5&symbol=41I1B000&condition=>&side=NS&demo=23
- Đặt lệnh mua khi giá xuống dưới 1800: https://trycloudflare.com/conditional_order?price=1799&symbol=41I1B000&demo=true
Các câu lệnh tra cứu và huỷ lệnh/đóng deal có chung query sau:
- id: id của deal/lệnh muốn huỷ
- all: muốn huỷ/đóng toàn bộ lệnh/deal không (sẽ bỏ qua id nếu có nhập), mặc định là false và được coi là true miễn là có tham số truyền vào
- demo: muốn dùng tài khoản demo hay thật, mặc định là false và được coi là true miễn là có tham số truyền vào
Các câu lệnh mẫu ( lưu ý thay đường dẫn bằng tunnel nhận được):
- Lấy sổ lệnh (GET request): https://trycloudflare.com/order?demo=3
- Lấy deal (GET request): https://trycloudflare.com/deals?demo=5
- Huỷ lệnh: https://trycloudflare.com/cancel_order?id=<order_id>&demo=3
- Đóng tất cả deal: https://trycloudflare.com/cancel_deal?all=2&demo=3
Sau khi tunnel đã sẵn sàng, bạn có thể thử dán API lên trình duyệt để test, kết quả sẽ có dạng này:

ở đây mình dùng “…/order?demo=t”, thông tin sổ lệnh của bạn sẽ xuất hiện ở đây.
Bạn có thể dùng TradingView, AmiBroker hay bất cứ dịch vụ nào cho phép gọi HTTP Request đến AutoTrade và giao dịch tự động trên Entrade, chúc bạn đầu tư thành công :3