技能标识:ctrader-commander
Place and manage cTrader orders (market, limit, stop), check open positions, fetch live quotes and OHLC candles, and query account balance and equity via a local HTTP proxy. No credentials or token required at call time.
当用户希望在cTrader账户上执行交易、查看持仓或余额、获取实时价格、获取K线数据或管理订单时使用。
所有请求发送至 http://localhost:9009 — 凭证存储在服务器的 .env 文件中,调用方无需传递。
代理仓库: https://github.com/LogicalSapien/ctrader-openapi-proxy
克隆仓库,添加您的 .env 文件,运行 make run 启动代理后再使用此技能。
完整参考文档:{baseDir}/endpoints.md
bash
curl -s http://localhost:9009/get-data?command=ProtoOAVersionReq
如果失败,启动代理:cd ~/ctrader-openapi-proxy && make run
品种ID因经纪商而异 — 在下单或获取数据前请先查询:
bash
curl -s http://localhost:9009/get-data?command=ProtoOASymbolsListReq
返回包含 symbolId 和 symbolName 的 symbol[] 数组。记录您所需品种的ID。
bash
curl -s -X POST http://localhost:9009/api/market-order \
-H Content-Type: application/json \
-d {symbolId: 158, orderType: MARKET, tradeSide: BUY, volume: 1000}
交易量单位为单位:1000 = 0.01手 · 10000 = 0.1手 · 100000 = 1手。
可添加 relativeStopLoss: 200, relativeTakeProfit: 350(点数,仅限市价单)。
bash
curl -s -X POST http://localhost:9009/api/market-order \
-H Content-Type: application/json \
-d {symbolId: 158, orderType: LIMIT, tradeSide: BUY, volume: 1000, price: 0.62500}
orderType:MARKET · LIMIT · STOP — tradeSide:BUY · SELL
bash
NOW_MS=$(python3 -c import time; print(int(time.time()*1000)))
FROM_MS=$(python3 -c import time; print(int(time.time()*1000) - 3600000))
curl -s -X POST http://localhost:9009/api/trendbars \
-H Content-Type: application/json \
-d {\fromTimestamp\: $FROMMS, \toTimestamp\: $NOWMS, \period\: \M5\, \symbolId\: 158}
周期:M1 M2 M3 M4 M5 M10 M15 M30 H1 H4 H12 D1 W1 MN1
bash
curl -s -X POST http://localhost:9009/api/live-quote \
-H Content-Type: application/json \
-d {symbolId: 158, quoteType: BID, timeDeltaInSeconds: 60}
quoteType:BID 或 ASK
bash
curl -s http://localhost:9009/get-data?command=ProtoOAReconcileReq
bash
curl -s http://localhost:9009/get-data?command=ClosePosition%20123456%201000
bash
curl -s http://localhost:9009/get-data?command=CancelOrder%20789
bash
curl -s http://localhost:9009/get-data?command=ProtoOATraderReq
一个本地HTTP代理(localhost:9009),封装了cTrader OpenAPI Protobuf连接,并以REST API形式暴露。调用时无需传递凭证 — 凭证从服务器的 .env 文件中加载。
完整端点参考:{baseDir}/endpoints.md
Python使用示例:{baseDir}/examples.md
代理必须在所有调用前运行。如不确定,请检查:
bash
curl -s http://localhost:9009/get-data?command=ProtoOAVersionReq
如果返回JSON,则代理已运行。如果失败,请启动代理:
bash
cd ~/ctrader-openapi-proxy && make run
在下单或获取K线/Tick数据前,请务必查询品种ID。
不同经纪商之间以及模拟账户和真实账户之间的品种ID均不相同。
bash
curl -s http://localhost:9009/get-data?command=ProtoOASymbolsListReq
响应包含带有 symbolId 和 symbolName 的 symbol[] 数组。找到您的品种并记录其 symbolId。
POST /api/trendbars
json
{
fromTimestamp: 1700000000000,
toTimestamp: 1700086400000,
period: M5,
symbolId: 158
}
period 选项:M1 M2 M3 M4 M5 M10 M15 M30 H1 H4 H12 D1 W1 MN1
获取当前时间毫秒数(macOS):
bash
NOW_MS=$(python3 -c import time; print(int(time.time()*1000)))
FROM_MS=$(python3 -c import time; print(int(time.time()*1000) - 3600000))
POST /api/live-quote
json
{
symbolId: 158,
quoteType: BID,
timeDeltaInSeconds: 60
}
quoteType:BID 或 ASK
POST /api/market-order
json
{
symbolId: 158,
orderType: MARKET,
tradeSide: BUY,
volume: 1000,
comment: my trade,
relativeStopLoss: 200,
relativeTakeProfit: 350
}
orderType 值:MARKET LIMIT STOP
tradeSide 值:BUY SELL
对于 LIMIT 和 STOP 订单,需包含 price: 0.62500。
relativeStopLoss / relativeTakeProfit 以点数为单位,仅适用于 MARKET 订单。
交易量单位(非手数):
| volume | 手数 | 说明 |
|---|---|---|
| 1000 | 0.01 | 微型手 — 典型最小单位 |
| 10000 |
GET /get-data?command=ProtoOAReconcileReq
返回 position[] 和 order[]。每个持仓包含 positionId、symbolId、tradeSide、volume、price。
GET /get-data?command=ClosePosition
示例 — 平仓123456,1000单位(0.01手):
bash
curl -s http://localhost:9009/get-data?command=ClosePosition%20123456%201000
GET /get-data?command=CancelOrder
bash
curl -s http://localhost:9009/get-data?command=CancelOrder%20789
要切换到其他账户,请传递 {accountId: 12345678} 作为JSON请求体。
GET /get-data?command=COMMAND_NAME arg1 arg2
无需令牌 — 凭证从服务器的 .env 文件中读取。
支持的命令完整列表:
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 ctrader-commander-1776300097 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 ctrader-commander-1776300097 技能
skillhub install ctrader-commander-1776300097
文件大小: 5.21 KB | 发布时间: 2026-4-16 17:24