本 Skill 由妙想提供一个股票模拟组合管理系统,支持股票组合持仓查询、买卖操作、撤单、委托查询、历史成交查询和资金查询等功能。通过调用后端模拟组合交易相关原生接口,实现真实的交易体验,所有操作均通过安全认证的 API 接口完成。
yaml
tags: ["模拟炒股", "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"
根据 用户问句 自动识别意图并调用对应接口,支持以下功能:
MX_APIKEY:妙想Skills页面获取的API密钥,需保密。
MX_API_URL:模拟交易API的基础URL,默认为 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 进行认证。javascript
apikey: ${MX_APIKEY};
POST 方法, Content-Type: application/json,并在 Header 中携带 apikey。查询持仓、 我的持仓、 持仓情况${MX_API_URL}/api/claw/mockTrading/positions{"moneyUnit": 1}{ }bash
curl -X POST "${MX_API_URL}/api/claw/mockTrading/positions" \
-H "apikey: ${MX_APIKEY}" \
-H "Content-Type: application/json" \
-d '{
"moneyUnit": 1
}'
响应示例:
json
{
"code": "200",
"message": "成功",
"data": {
"totalAssets": 992618.245,
"availBalance": 845295.245,
"totalPosValue": 147323,
"posCount": 2,
"posList": null,
"currencyUnit": 1,
"totalProfit": 0
},
"traceId": null
}
字段说明:
字段类型说明totalAssetsInt64总资产,单位元availBalanceInt64可用余额,单位元totalPosValueInt64总持仓市值,单位元posListInt32持仓明细数据posCountInt32持仓股票数量totalProfitInt64总盈亏,单位元currencyUnitInt32币种最小面值,1=元
持仓列表 posList 元素字段:
字段类型说明secCodeString证券代码secMktInt32证券市场号:0=深交所,1=上交所,116=港交所,105=纳斯达克secNameString证券名称countInt64持仓数量(股)availCountInt64可用数量(股)valueInt64市值,单位元costPriceInt64成本价(按 costPriceDec 放大为整数,还原:costPrice / 10^costPriceDec)costPriceDecInt32成本价小数位数priceInt64现价(按 priceDec 放大为整数,还原:price / 10^priceDec)priceDecInt32现价小数位数dayProfitInt64当日盈亏,单位元dayProfitPctDouble当日盈亏比例%profitInt64持仓盈亏,单位元profitPctDouble持仓盈亏比例%posPctDouble仓位%
买入、 买入股票、 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参数会被忽略,系统会自动以行情最新价进行买入。bash
curl -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时必传。bash
curl -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": "撤单失败,已全部成交" }]
}
}
一键撤单响应字段说明:
字段类型说明rcInt32返回码,0=成功rmsgString返回信息cancelCountInt32成功撤单数量failCountInt32撤单失败数量failListArray失败详情列表(仅失败时返回)
failList 元素字段:
字段类型说明orderIDString委托单IDrmsgString失败原因
查询委托、 我的订单、 委托记录、 查询成交记录、 历史成交、 交易历史、 成交记录、 历史成交记录、 我的成交记录、 我的历史成交、 我的交易历史、 查询账户成交记录、 查询账户交易历史${MX_API_URL}/api/claw/mockTrading/orders{ "fltOrderDrt": 0, "fltOrderStatus": 0 }{ }参数必填说明fltOrderDrt否0=全部(默认),1=买入,2=卖出fltOrderStatus否0=全部(默认),2=已报,4=已成 等bash
curl -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
}
]
}
}
响应字段说明:
字段类型说明accIDString账户IDaccNameString账户名称currencyInt32账户币种:1=人民币,2=港币,3=美元currencyUnitInt32币种最小面值,1000=厘
委托列表 orders 元素字段说明:
字段类型说明idString委托单IDstatusInt32委托状态(见下表)dbStatusInt32委托单原始状态(详见接口文档4.5.5)timeInt64委托时间(Unix时间戳)secCodeString证券代码secTypeInt32证券类型:9=沪市基金,10=深市基金,其它=股票secMktInt32证券市场号:0=深交所,1=上交所,116=港交所,105=纳斯达克secNameString证券名称drtUint32委托方向:1=买入,2=卖出priceDecInt32委托价格小数位数priceInt64委托价格(按 priceDec 放大为整数,还原:price / 10^priceDec)typeInt32委托类型:1=限价单,2=增强限价单,5=市价委托countInt64委托数量tradeCountInt64成交数量tradePriceInt64成交价格(按 priceDec 放大为整数)
委托状态 status 说明:
状态值含义1未报2已报3部成4已成5部成待撤6已报待撤7部撤8已撤9废单10撤单失败
查询资金、 我的资金、 账户余额、 资金情况、 资金信息、 账户资金、 查询账户资金、 查询账户余额、 查询资金情况、 查询资金信息、 查询我的资金情况、 查询我的账户余额、${MX_API_URL}/api/claw/mockTrading/balance{ "moneyUnit": 1 }{ }bash
curl -X POST "${MX_API_URL}/api/claw/mockTrading/balance" \
-H "apikey: ${MX_APIKEY}" \
-H "Content-Type: application/json" \
-d '{
"moneyUnit": 1
}'
响应示例:
json
{
"code": "0",
"data": {
"rc": 0,
"totalAssets": 125680500,
"availBalance": 23450000,
"frozenMoney": 500000,
"totalPosValue": 102230500,
"totalPosPct": 81.3,
"currencyUnit": 1000
}
}
资金查询响应字段说明:
字段类型说明rcInt32返回码,0=成功accIDString账户IDaccNameString账户名称mktTypeUint32市场类型:30106=初始组合,30108=普通组合currencyInt32账户币种:1=人民币,2=港币,3=美元currencyUnitInt32币种最小面值,1=元initMoneyInt64初始资金,单位元totalAssetsInt64总资产,单位元balanceActualInt64账户余额,单位元availBalanceInt64可用余额,单位元frozenMoneyInt64冻结金额,单位元totalPosValueInt64总持仓市值,单位元totalPosPctDouble总持仓仓位%navDouble单位净值oprDaysInt32运作天数
错误类型处理方式今日调用次数已达上限 (113)提示用户前往妙想Skills页面,获取更多次数API密钥不存在或已失效,请确认密钥是否正确 (114)提示用户前往妙想Skills页面,更新apikey请求未携带API密钥,请检查请求参数 (115)提示用户检查 MX_APIKEY 是否配置正确API密钥不存在,请确认密钥是否正确 (116)提示用户检查 MX_APIKEY 是否配置正确未绑定模拟组合账户 (404)提示用户前往妙想Skills页面创建并绑定模拟账户网络错误重试最多3次,仍失败则提示“网络异常,请稍后重试”
curl(用于发起请求)、 jq(用于解析JSON响应)。