Skip to content

猎户座量化交易同步卖单交割指令API接口

文档概述

猎户座是基于利佛莫尔理论为基础的AI金融智能决策系统,能够快速帮助用户安全积累本金。本系统提供开放的量化交易接口,供授权用户进行自动化交易操作。

接口详情

执行用户量化交易卖出交割指令 /api/executeuserselltrade

接口描述

执行指定用户的卖单交割操作,用于处理做空操作的卖出订单,核销相关买入订单的盈亏状态,并记录真实卖出价格。此接口允许用户通过API手动执行卖出操作,同步量化交易数据源状态。

请求参数

参数名类型必填描述
appidString应用ID
appsecretString应用密钥
idInteger卖单ID
realsellpriceFloat真实卖出价格

业务逻辑

  1. 验证API访问权限,检查IP白名单、AppID和AppSecret
  2. 根据AppID获取用户配置信息
  3. 查询指定ID的卖单记录,确保属于当前用户且为待处理的做空操作(ResultColumnID为4或5且GolongOrShortsale为2)
  4. 计算该标的当前总持仓数量,智能选择结算方式:
    • 🟢 清仓结算(卖出数量 = 总持仓数量):按买入时间顺序逐笔结算盈亏
    • 🟡 部分仓位结算(卖出数量 < 总持仓数量):自动匹配一笔买入数量与卖出数量相同的买单,进行整笔结算;若匹配不到,返回提示并附带当前所有持仓买单明细
    • 🔴 卖出数量超过持仓:返回提示,拒绝执行结算
  5. 更新买入订单的最终状态(盈利为1,亏损为2),记录盈亏百分点和卖出价格
  6. 更新卖单订单状态为完全完结(ResultColumnID = 1)
  7. 更新建仓信号为已执行状态(DillStatus = -1)
  8. 检查标的是否还有其他活跃买入指令,如无则更新股票池持仓状态为非持仓

响应数据结构

json
{
  "code": 1,
  "message": "卖单交割执行成功",
  "data": {
    "trade_executed": true,
    "financial_object_id": 10211,
    "sold_quantity": 100,
    "real_sell_price": 32.50
  }
}

请求示例

POST http://www.deephunt.com.cn/api/executeuserselltrade Content-Type: application/x-www-form-urlencoded

appid=test_app_id&appsecret=test_app_secret&id=456&realsellprice=32.50

响应示例

json
{
  "code": 1,
  "message": "卖单交割执行成功",
  "data": {
    "trade_executed": true,
    "financial_object_id": 10211,
    "sold_quantity": 100,
    "real_sell_price": 32.50
  }
}

常见问题FAQ

  1. Q: 为什么有时候返回"该记录不是待处理的卖单,无法执行交割"? A: 可能因为该订单不是做空操作(GolongOrShortsale不为2)或不是待处理状态(ResultColumnID不为4或5)。

  2. Q: 卖单结算如何处理对应的买入订单? A: 系统会先计算该标的的总持仓数量,再分场景处理:① 清仓(卖出数量 = 总持仓) 按买入时间顺序逐笔结算;② 部分卖出(卖出数量 < 总持仓) 自动匹配一笔买入数量与卖出数量相同的买单整笔结算,保证每笔买单记录完整可追溯。

  3. Q: 盈利和亏损状态是如何判定的? A: 当真实卖出价格 >= 买入价时为盈利状态(ResultColumnID=1),反之为亏损状态(ResultColumnID=2)。

  4. Q: 如果对应买入订单数量不够结算怎么办? A: 清仓场景下会结算所有可用的买入订单,如有剩余卖出数量未处理,会记录提醒信息但不会中断流程;部分卖出场景如果找不到同数量买单,会直接返回提示并附上当前所有买单明细,方便您核对调整。

  5. Q: 卖单执行后对持仓状态有什么影响? A: 系统会更新建仓信号为已执行状态(DillStatus=-1),如果该标的没有其他活跃买入指令,会将持仓状态设为非持仓(Own=false)。

  6. Q: 卖单执行完成后为什么会自动触发新的买入动作? A: 系统设计了连续交易机制,卖单结算完成后会自动调用买入函数启动新的买入信号处理。这样做的目的是提高交易速度,增加交易机会,让资金更快地投入到新的交易中,实现资金的高效利用。同时,量化交易软件需要持续监控新的买入信号,建议设置合理的轮询间隔(如延迟5秒钟)重新获取新的买入信号,以便及时执行买入操作,确保不错过市场机会。系统也会确保同一个用户同一个买入信号只有一个对应的买单,避免重复多次买入。

  7. Q: 什么是「部分卖出时同数量买单整笔结算」? A: 每一笔买入订单在系统中都是一条完整独立的交易记录。部分卖出时,系统只对「买入数量刚好等于卖出数量」的那笔买单进行整笔结算,不会从某笔买入订单中只结算一部分,从而确保仓位数据计算的准确性。

  8. Q: 收到提示 "部分卖出需匹配同数量买单...当前所有买单:[订单xx:300股@xx.xx元], [订单yy:200股@yy.yy元]" 怎么办? A: 表示当前部分卖出的数量,在现有买单中没有任何一笔的买入数量恰好一致。您可以选择:① 调整本次卖出的数量,与现有某笔买单的买入数量相同后再执行;② 直接选择一次性卖出该标的所有持仓(清仓),系统会自动按顺序逐笔结算;③ 分多次执行卖出操作,每次对应一笔买单的数量。

  9. Q: 清仓和部分卖出两种结算方式有什么差异? A: 对比见下表:

    对比项清仓(卖出数量 = 总持仓)部分卖出(卖出数量 < 总持仓)
    结算方式按买入时间顺序,支持灵活拆分匹配同数量买单,整笔结算
    适用场景一次性卖出整个标的只卖出其中一部分仓位
    匹配不到时处理记录提醒信息,继续执行返回提示,列出当前所有买单
    剩余持仓全部卖出,无剩余其他买单继续保留,持仓准确

错误码说明

错误码描述
1成功
-1失败或错误

常见错误信息:

  • "缺少必要的认证参数: appid 或 appsecret" - 未提供必需的身份验证参数
  • "无效的AppID" - 提供的应用ID不存在
  • "AppSecret验证失败" - 应用密钥错误
  • "该账户未启用量化交易功能" - 账户未激活量化交易权限
  • "IP地址不在白名单中" - 客户端IP不在允许的白名单中
  • "查询数据失败" - 数据库查询出现异常
  • "参数必须整形: id" - 传入的参数类型不正确
  • "用户权限查询失败" - 无法查询到用户权限信息
  • "用户权限已到期" - 用户的使用权限已过期
  • "用户权限不足,无法进行量化交易" - 用户没有量化交易的权限
  • "部分卖出需匹配同数量买单:当前卖出X股,总持仓Y股。当前所有买单:[订单xx:XX股@xx.xx元], [订单yy:YY股@yy.yy元]。请调整卖出数量与某笔买单一致后再执行" - 部分卖出时,没有一笔买单的买入数量与卖出数量完全一致,请根据返回的买单明细调整卖出数量,或改为清仓方式卖出
  • "卖出数量(X股)大于当前总持仓(Y股),无法执行结算" - 卖出数量超过该标的的总持仓数量,请核实后重试
  • "获取持仓数量失败,请稍后重试" - 计算总持仓时出现异常,请稍后重试

安全注意事项

  1. 请妥善保管您的AppID和AppSecret,不要泄露给他人
  2. 确保调用接口的IP地址在白名单中
  3. 请对敏感数据进行适当的加密传输
  4. 定期更换AppSecret以增强安全性
  5. 限制接口调用频率,避免被系统限制访问

技术支持

如在使用过程中遇到问题,请联系技术支持团队。