Chạy các lệnh cTrader CLI¶
Bài viết này giải thích cấu trúc của các lệnh cTrader CLI, cách hoạt động của xác thực và cách đọc dữ liệu tài khoản, giá cùng lịch sử giao dịch.
Cấu trúc lệnh ¶
Mọi lệnh cTrader CLI đều có cùng cấu trúc:
ctrader-cli <command> [arguments] [options]
- Các tùy chọn bắt đầu bằng tiền tố.
--là dạng dài, còn-là dạng ngắn (--symbolvà-stương đương nhau). - Giá trị của tùy chọn được ngăn cách bằng dấu cách hoặc dấu bằng. Cả
--symbol EURUSDvà--symbol=EURUSDđều hợp lệ. - Đối số là các giá trị theo vị trí, không có tiền tố. Đường dẫn đến tệp
.algolà một đối số. - Các giá trị chứa dấu cách phải được đặt trong dấu nháy đơn hoặc nháy kép, chẳng hạn
'/opt/my cbots/trend cbot.algo'. Hãy sử dụng nhất quán một kiểu dấu nháy trong cùng một lệnh.
Xác thực ¶
cTrader CLI có hai phương thức xác thực. Cả hai đều dùng tệp thông tin đăng nhập mà bạn chuẩn bị trong quá trình thiết lập.
| Phương thức | Tùy chọn bắt buộc | Lệnh thường dùng |
|---|---|---|
| Hàng loạt | --ctid và --pwd-file | periods, accounts, symbols, metadata, run, backtest |
| Tương tác | --ctid, --password hoặc --pwd-file và -q | account, orders, price, candles, positions, exposure, alerts, các lệnh chỉ báo |
Ghi chú
Các lệnh ở chế độ hàng loạt không chấp nhận --password. Các lệnh tương tác chấp nhận --password hoặc --pwd-file.
Các lệnh accounts, symbols, metadata, run và backtest có ở cả hai chế độ. Tùy theo các tùy chọn được cung cấp, chúng được thực thi ở chế độ hàng loạt hoặc tương tác:
- Chế độ hàng loạt – đọc thông tin đăng nhập từ
--pwd-file(hoặc--broker) và chạy mà không cần tương tác. - Chế độ tương tác – sử dụng
--passwordvà-q(hoặc bất kỳ tùy chọn riêng nào của lệnh) để thực hiện lời gọi tương tác.
Mã định danh khung thời gian ¶
Nhiều lệnh chấp nhận giá trị --period. Chạy ctrader-cli periods để liệt kê tất cả mã định danh hợp lệ. Các mã định danh bao gồm phút, giờ, ngày, tuần, tháng, cùng với tick, Renko, thanh biên độ và các biến thể Heikin Ashi. Hệ thống không phân biệt chữ hoa và chữ thường khi đọc mã định danh.
Đơn vị khối lượng ¶
--volume chấp nhận khối lượng tính theo đơn vị tiền tệ cơ sở hoặc lot. Dùng --volume-type=units (mặc định) hoặc --volume-type=lots để chọn cách diễn giải khối lượng. Đối với hầu hết các ký hiệu Forex, 100.000 đơn vị tương đương một lot tiêu chuẩn.
Khi dùng --volume-type=lots | Số đơn vị tài sản cơ sở |
|---|---|
--volume=1 | 100.000 |
--volume=0.1 | 10.000 |
--volume=0.01 | 1.000 |
Cảnh báo
Với kim loại, chỉ số và tiền mã hóa, kích thước lot khác nhau tùy theo ký hiệu. Vì vậy, cùng một giá trị --volume=1 có thể mở vị thế lớn hơn dự kiến. Hãy kiểm tra giá trị lotSize của ký hiệu trước khi giao dịch:
ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD
Ví dụ, nếu XAUUSD có lotSize: 100, thì --volume=1 --volume-type=lots sẽ mở vị thế 100 đơn vị.
Ngày và giờ ¶
Tất cả ngày và giờ trong cTrader CLI đều theo UTC. CLI không bao giờ sử dụng múi giờ địa phương của máy tính hoặc giờ máy chủ của nhà môi giới.
UTC được áp dụng cho đầu ra lệnh và ngày nhập vào như sau:
- Đầu ra: mọi dấu thời gian trong đầu ra JSON đều theo UTC, ở định dạng ISO 8601 có
Z, ví dụ2026-10-08T14:05:00.000Z. - Lệnh tương tác (
candles,deals,orders-historyvàbacktestchạy với-q):--fromvà--tochỉ nhận ngày, theo định dạngyyyy-MM-dd,dd/MM/yyyy,dd-MM-yyyyhoặcyyyy/MM/dd. Ngày này là một ngày theo lịch tính theo UTC.- Với
dealsvàorders-history,--tobao gồm cả ngày, đến 23:59:59 UTC. - Với
candles,--tochỉ thời điểm bắt đầu ngày đó (00:00 UTC). Để bao gồm cả ngày, hãy đặt--tothành ngày tiếp theo. - Nếu không có
--from/--to, lệnhbacktesttương tác sẽ sử dụng dữ liệu của 7 ngày gần nhất.
- Với
- Lệnh hàng loạt (
backtestvà các lệnh khác): ngày có định dạngdd/MM/yyyy, có thể thêm giờ theo hệ 24 giờ dưới dạngdd/MM/yyyy HH:mm, ví dụ31/12/2026 18:00, cũng theo UTC.
Ngoại lệ duy nhất là cBot đang chạy (run, backtest). Thời gian của cBot tuân theo thiết lập TimeZone trong cBot, giống như trong cTrader Algo.
Đọc dữ liệu tài khoản và thị trường ¶
ctrader-cli periods không yêu cầu tài khoản hay thông tin đăng nhập nên rất phù hợp để thử nghiệm đầu tiên.
ctrader-cli periods
Liệt kê các tài khoản giao dịch được liên kết với cTrader ID của bạn:
ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd
Khi đã có số tài khoản, hãy liệt kê các ký hiệu khả dụng trên tài khoản đó:
ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567
Đọc giá hiện tại của một ký hiệu và lấy dữ liệu nến lịch sử trong tập lệnh:
ctrader-cli price --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD
ctrader-cli candles --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD --period=h1 --count=200 > eurUSD_h1.json
Giới hạn dữ liệu lịch sử ¶
deals và orders-history có các giới hạn truy xuất lịch sử sau:
- CLI tải toàn bộ khoảng thời gian
--from/--tomà không giới hạn độ dài khoảng thời gian. - Mỗi lần gọi chỉ trả về tối đa 200 giao dịch gần nhất (
deals) hoặc 500 lệnh gần nhất (orders-history) trong khoảng đó. - Nếu không có
--from/--to, cả hai lệnh chỉ trả về dữ liệu của 30 ngày gần nhất. -
--countquy định số bản ghi được trả về:- Mặc định 50, tối đa 200 đối với
deals. - Mặc định 100, tối đa 500 đối với
orders-history.
- Mặc định 50, tối đa 200 đối với
Khi có --from hoặc --to, --count bị bỏ qua và lời gọi có thể trả về đến số bản ghi tối đa cho phép.
Nếu khoảng thời gian có nhiều bản ghi hơn số lượng một lần gọi có thể trả về, hãy chia thành các khoảng ngắn hơn và chạy lệnh riêng cho từng khoảng.
Để biết kết quả có bị cắt bớt hay không, hãy kiểm tra đầu ra:
orders-history: đầu ra chứa các trườngavailablevàreturned. Nếuavailablelớn hơnreturned, khoảng thời gian đó vẫn còn các lệnh khác.deals: nếucountđúng bằng200, khoảng thời gian đó có thể còn các giao dịch khác.
Thao tác hàng loạt trong shell tương tác ¶
Trong shell tương tác, một số lệnh cho phép thêm all và yes vào cuối để thực hiện thao tác hàng loạt và bỏ qua yêu cầu xác nhận.
| Lệnh | Cú pháp với all và yes ở cuối |
|---|---|
order cancel | order cancel all yes |
position close | position close all yes |
stop | stop all yes |
alert delete | alert delete all yes |
Chạy lệnh ở chế độ tương tác ¶
Chạy ctrader-cli mà không kèm lệnh để mở shell tương tác. Khi được yêu cầu, hãy đăng nhập bằng cTID và mật khẩu, sau đó nhập liên tiếp các lệnh mà không cần cung cấp lại thông tin đăng nhập. Cách này thuận tiện khi bạn muốn chạy nhiều lệnh liên tiếp.
Để chạy một lệnh rồi thoát ngay, hãy thêm -q. Điều này hữu ích trong các tập lệnh cần kết thúc tiến trình ngay khi lệnh hoàn thành.
Hai tùy chọn giúp bạn tìm hiểu các chức năng mà CLI hỗ trợ.
| Tùy chọn | Mục đích |
|---|---|
--help | Liệt kê các tùy chọn chung và các cách khởi chạy. |
--commands | Liệt kê tất cả lệnh tương tác cùng các dạng đối số vị trí, không cần xác thực. |
Nếu cTrader ID của bạn liên kết với các tài khoản ở nhiều nhà môi giới có cùng số tài khoản, hãy thêm --broker=<broker-name> để xác định đúng tài khoản.
Các lỗi thường gặp ¶
| Dấu hiệu | Nguyên nhân có thể | Bước tiếp theo |
|---|---|---|
ctrader-cli: command not found | CLI không có trong PATH của bạn. | Mở lại terminal hoặc làm theo các bước cài đặt thủ công trong hướng dẫn thiết lập. |
Parameter password is not allowed | Bạn đã truyền --password cho lệnh hàng loạt. | Hãy chuyển sang --pwd-file; quy tắc đầy đủ nằm trong hướng dẫn thiết lập. |
Account cannot be found | Số tài khoản không xác định duy nhất vì trùng nhau giữa các nhà môi giới. | Thêm --broker=<broker-name>. |
Unknown symbol name | Tên ký hiệu không đúng hoặc không được hỗ trợ. | Chạy symbols và sử dụng chính xác tên trong đầu ra. |
Unknown period | Mã định danh khung thời gian không đúng. | Chạy periods để liệt kê mọi mã định danh hợp lệ. |
Ghi chú
Để xem tất cả tùy chọn, giá trị mặc định và mô tả đầy đủ, hãy tham khảo tài liệu tham chiếu CLI.