Install any skill in seconds. Free to start, no credit card required.
Get Started Free →妙想提供的股票模拟组合管理系统,支持持仓查询、买卖操作、撤单、委托查询、历史成交查询和资金查询等功能。通过安全认证的API接口实现真实交易体验。
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 385% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 476% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 239% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 287% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 261% | 0% |
本 Skill 由妙想提供一个股票模拟组合管理系统,支持股票组合持仓查询、买卖操作、撤单、委托查询、历史成交查询和资金查询等功能。通过调用后端模拟组合交易相关原生接口,实现真实的交易体验,所有操作均通过安全认证的 API 接口完成。
yamltags: ["模拟炒股", "A股", "投资练手", "策略验证"] use_when: - 用户需要模拟炒股练手、验证交易策略 - 用户需要进行模拟交易操作(买卖/撤单) - 用户需要查询模拟账户的持仓、资金、委托、历史成交记录 not_for: - 真实资金交易、投资建议生成、交易决策指引 - 非A股类投资模拟(期货、外汇、港股、美股等) - 商业用途、代他人操作、非法交易演示 # 环境变量配置 parameters: - name: MX_APIKEY description: 妙想Skills页面获取专属API密钥 required: true type: secret default: process.env.MX_APIKEY - name: MX_API_URL description: 模拟交易API基础地址 required: false type: string default: process.env.MX_API_URL || "https://mkapi2.dfcfs.com/finskillshub"
根据用户问句自动识别意图并调用对应接口,支持以下功能:
https://mkapi2.dfcfs.com/finskillshub。/root/.openclaw/workspace/mx_data/output/(自动创建)mx_stock_simulator_mx_stock_simulator_{query}.txt - 提取后的纯文本结果mx_stock_simulator_{query}.json - API 原始 JSON 数据在使用前,请确保已配置以下环境变量:
javascript// 导出API Key和API地址 export MX_APIKEY= ${MX_APIKEY} || process.env.MX_APIKEY export MX_API_URL= process.env.MX_API_URL || "https://mkapi2.dfcfs.com/finskillshub"
| 功能模块 | 状态 | 接口路径 | 说明 | | -------------- | ------ | --------------------------------------- | ----------------------------------------- | | 持仓查询 | 已实现 | POST /api/claw/mockTrading/positions | 获取持仓明细、成本、盈亏、总盈亏统计 | | 买入或卖出操作 | 已实现 | POST /api/claw/mockTrading/trade | 限价/市价委托,自动识别市场号和价格小数位 | | 撤单操作 | 已实现 | POST /api/claw/mockTrading/cancel | 按委托编号撤单或撤销当日所有未成交委托 | | 委托查询 | 已实现 | POST /api/claw/mockTrading/orders | 当日/历史委托记录 | | 资金查询 | 已实现 | POST /api/claw/mockTrading/balance | 总资产、可用资金、盈亏 |
买入/卖出/撤单接口的股票代码入参仅支持A股,格式为6位数字,例如 600519、000001。
MX_APIKEY 和 MX_API_URL 环境变量。apikey 进行认证。javascriptapikey: ${MX_APIKEY};
POST 方法,Content-Type: application/json,并在 Header 中携带 apikey。查询持仓、我的持仓、持仓情况${MX_API_URL}/api/claw/mockTrading/positions{}{ }bashcurl -X POST "${MX_API_URL}/api/claw/mockTrading/positions" \ -H "apikey: ${MX_APIKEY}" \ -H "Content-Type: application/json" \ -d '{}'
响应示例:
json{ "code": "200", "message": "成功", "data": { "totalAssets": null, "availBalance": null, "totalPosValue": null, "posCount": 0, "posList": null, "currencyUnit": 1000, "totalProfit": 0 }, "traceId": null }
字段说明:
| 字段 | 类型 | 说明 | | --------------- | ----- | --------------------- | | totalAssets | Int64 | 总资产(厘) | | availBalance | Int64 | 可用余额(厘) | | totalPosValue | Int64 | 总持仓市值(厘) | | posList | Int32 | 持仓明细数据 | | posCount | Int32 | 持仓股票数量 | | totalProfit | Int64 | 总盈亏(厘) | | currencyUnit | Int32 | 币种最小面值,1000=厘 |
持仓列表 posList 元素字段:
| 字段 | 类型 | 说明 | | -------------- | ------ | ------------------------------------------------------------ | | secCode | String | 证券代码 | | secMkt | Int32 | 证券市场号:0=深交所,1=上交所,116=港交所,105=纳斯达克 | | secName | String | 证券名称 | | count | Int64 | 持仓数量(股) | | availCount | Int64 | 可用数量(股) | | value | Int64 | 市值(厘) | | costPrice | Int64 | 成本价(按 costPriceDec 放大为整数,还原:costPrice / 10^costPriceDec) | | costPriceDec | Int32 | 成本价小数位数 | | price | Int64 | 现价(按 priceDec 放大为整数,还原:price / 10^priceDec) | | priceDec | Int32 | 现价小数位数 | | dayProfit | Int64 | 当日盈亏(厘) | | dayProfitPct | Double | 当日盈亏比例% | | profit | Int64 | 持仓盈亏(厘) | | profitPct | Double | 持仓盈亏比例% | | posPct | Double | 仓位% |
买入、买入股票、buy、卖出、卖出股票、sell、卖出全部、sell all、一键卖出、sell all position、卖出持仓、sell position、卖出当前持仓、sell current position、卖出所有持仓、sell all current position${MX_API_URL}/api/claw/mockTrading/trade{ "type": "buy", "stockCode": "600519", "price": 1780.00, "quantity": 100, "useMarketPrice": false }{ "orderId": "ORD987654", "status": "submitted" }| 参数 | 必填 | 说明 | | ---------------- | ---- | ------------------------------------------------------------ | | type | 是 | 操作类型:buy=买入,sell=卖出 | | stockCode | 是 | 股票代码,自动识别市场号 | | price | 是 | 委托价格(useMarketPrice=false时必填,支持小数),支持小数 | | quantity | 是 | 委托数量(股) | | useMarketPrice | 否 | 是否以行情最新价买入(默认false),为true时忽略price参数 |
useMarketPrice=true 时,系统会自动以行情最新价进行买入/卖出。600519、000001,系统会自动识别并补全市场号;另外股票代码必传。useMarketPrice=false 时,price参数必填,且需符合市场规则:沪市价格小数位不超过2位,深市价格小数位不超过3位;当 useMarketPrice=true 时,price参数会被忽略,系统会自动以行情最新价进行买入。bashcurl -X POST "${MX_API_URL}/api/claw/mockTrading/trade" \ -H "apikey: ${MX_APIKEY}" \ -H "Content-Type: application/json" \ -d '{ "type": "buy", "stockCode": "600519", "price": 1780.00, "quantity": 100, "useMarketPrice": false }'
响应示例:
json{ "code": "501", "message": "买入委托失败: 当前时间不可交易", "data": null, "traceId": null }
撤单、撤销订单、cancel order、一键撤单、撤销所有订单、cancel all、撤销当日所有未成交订单、撤销所有未成交订单、撤销所有订单、cancel all pending orders${MX_API_URL}/api/claw/mockTrading/cancel{ "orderId": "ORD987654", "stockCode": "600519" }{ }| 参数 | 必填 | 说明 | | ----------- | ---- | ---------------------------------- | | type | 是 | 操作类型:order=买入,all=一键撤单 | | orderId | 否 | 委托编号,type为order时必填 | | stockCode | 否 | 股票代码,type为order时必填 |
600519、000001,系统会自动识别并补全市场号;另外股票代码在type为order时必传。bashcurl -X POST "${MX_API_URL}/api/claw/mockTrading/cancel" \ -H "apikey: ${MX_APIKEY}" \ -H "Content-Type: application/json" \ -d '{ "orderId": "ORD987654", "stockCode": "600519" }'
响应示例:
json{ "code": "200", "message": "成功", "data": { "rc": 0, "rmsg": "没有可撤的委托", "cancelCount": 0 }, "traceId": null }
如果部分撤单失败,会返回 failList:
json{ "code": "0", "data": { "rc": 0, "rmsg": "一键撤单完成", "cancelCount": 2, "failCount": 1, "failList": [{ "orderID": "20260314003", "rmsg": "撤单失败,已全部成交" }] } }
一键撤单响应字段说明:
| 字段 | 类型 | 说明 | | ------------- | ------ | ---------------------------- | | rc | Int32 | 返回码,0=成功 | | rmsg | String | 返回信息 | | cancelCount | Int32 | 成功撤单数量 | | failCount | Int32 | 撤单失败数量 | | failList | Array | 失败详情列表(仅失败时返回) |
failList 元素字段:
| 字段 | 类型 | 说明 | | --------- | ------ | -------- | | orderID | String | 委托单ID | | rmsg | String | 失败原因 |
查询委托、我的订单、委托记录、查询成交记录、历史成交、交易历史、成交记录、历史成交记录、我的成交记录、我的历史成交、我的交易历史、查询账户成交记录、查询账户交易历史${MX_API_URL}/api/claw/mockTrading/orders{ "fltOrderDrt": 0, "fltOrderStatus": 0 }{ }| 参数 | 必填 | 说明 | | ---------------- | ---- | --------------------------------- | | fltOrderDrt | 否 | 0=全部(默认),1=买入,2=卖出 | | fltOrderStatus | 否 | 0=全部(默认),2=已报,4=已成 等 |
bashcurl -X POST "${MX_API_URL}/api/claw/mockTrading/orders" \ -H "apikey: ${MX_APIKEY}" \ -H "Content-Type: application/json" \ -d '{ "fltOrderDrt": 0, "fltOrderStatus": 0 }'
响应示例:
json{ "code": "0", "data": { "rc": 0, "uid": "", "accID": "", "currency": 1, "currencyUnit": 1000, "totalNum": 2, "orders": [ { "id": "20260314001", "secCode": "600519", "secName": "贵州茅台", "secMkt": 1, "drt": 1, "price": 185000, "priceDec": 2, "count": 100, "status": 4, "time": 1742000120 } ] } }
响应字段说明:
| 字段 | 类型 | 说明 | | -------------- | ------ | ---------------------------------- | | accID | String | 账户ID | | accName | String | 账户名称 | | currency | Int32 | 账户币种:1=人民币,2=港币,3=美元 | | currencyUnit | Int32 | 币种最小面值,1000=厘 |
委托列表 orders 元素字段说明:
| 字段 | 类型 | 说明 | | ------------ | ------ | ------------------------------------------------------------ | | id | String | 委托单ID | | status | Int32 | 委托状态(见下表) | | dbStatus | Int32 | 委托单原始状态(详见接口文档4.5.5) | | time | Int64 | 委托时间(Unix时间戳) | | secCode | String | 证券代码 | | secType | Int32 | 证券类型:9=沪市基金,10=深市基金,其它=股票 | | secMkt | Int32 | 证券市场号:0=深交所,1=上交所,116=港交所,105=纳斯达克 | | secName | String | 证券名称 | | drt | Uint32 | 委托方向:1=买入,2=卖出 | | priceDec | Int32 | 委托价格小数位数 | | price | Int64 | 委托价格(按 priceDec 放大为整数,还原:price / 10^priceDec) | | type | Int32 | 委托类型:1=限价单,2=增强限价单,5=市价委托 | | count | Int64 | 委托数量 | | tradeCount | Int64 | 成交数量 | | tradePrice | Int64 | 成交价格(按 priceDec 放大为整数) |
委托状态 status 说明:
| 状态值 | 含义 | | ------ | -------- | | 1 | 未报 | | 2 | 已报 | | 3 | 部成 | | 4 | 已成 | | 5 | 部成待撤 | | 6 | 已报待撤 | | 7 | 部撤 | | 8 | 已撤 | | 9 | 废单 | | 10 | 撤单失败 |
查询资金、我的资金、账户余额、资金情况、资金信息、账户资金、查询账户资金、查询账户余额、查询资金情况、查询资金信息、查询我的资金情况、查询我的账户余额、${MX_API_URL}/api/claw/mockTrading/balance{ }{ }bashcurl -X POST "${MX_API_URL}/api/claw/mockTrading/balance" \ -H "apikey: ${MX_APIKEY}" \ -H "Content-Type: application/json" \
响应示例:
json{ "code": "0", "data": { "rc": 0, "totalAssets": 125680500, "availBalance": 23450000, "frozenMoney": 500000, "totalPosValue": 102230500, "totalPosPct": 81.3, "currencyUnit": 1000 } }
资金查询响应字段说明:
| 字段 | 类型 | 说明 | | --------------- | ------ | ---------------------------------------- | | rc | Int32 | 返回码,0=成功 | | accID | String | 账户ID | | accName | String | 账户名称 | | mktType | Uint32 | 市场类型:30106=初始组合,30108=普通组合 | | currency | Int32 | 账户币种:1=人民币,2=港币,3=美元 | | currencyUnit | Int32 | 币种最小面值,1000=厘 | | initMoney | Int64 | 初始资金(厘) | | totalAssets | Int64 | 总资产(厘) | | balanceActual | Int64 | 账户余额(厘) | | availBalance | Int64 | 可用余额(厘) | | frozenMoney | Int64 | 冻结金额(厘) | | totalPosValue | Int64 | 总持仓市值(厘) | | totalPosPct | Double | 总持仓仓位% | | nav | Double | 单位净值 | | oprDays | Int32 | 运作天数 |
| 错误类型 | 处理方式 | | ----------------------------------------------- | ----------------------------------------------- | | 今日调用次数已达上限 (113) | 提示用户前往妙想Skills页面,更新apikey | | API密钥不存在或已失效,请确认密钥是否正确 (114) | 提示用户前往妙想Skills页面,更新apikey | | 请求未携带API密钥,请检查请求参数 (115) | 提示用户检查 MX_APIKEY 是否配置正确 | | API密钥不存在,请确认密钥是否正确 (116) | 提示用户检查 MX_APIKEY 是否配置正确 | | 未绑定模拟组合账户 (404) | 提示用户前往妙想Skills页面创建并绑定模拟账户 | | 网络错误 | 重试最多3次,仍失败则提示“网络异常,请稍后重试” |
curl(用于发起请求)、jq(用于解析JSON响应)。Other measured skills in the registry, with their headline benchmark lift.