Python炒股自动化(5):通过接口查询订单,查询账户资产

上一节我们演示了报单撤单,也叫提交委托和撤销委托,我习惯说下单撤单,与交易所建立连接这里不演示了,没看的可以点下面链接了解一下

Python炒股自动化(4):通过接口向交易所发送订单https://caiair.blog.csdn.net/article/details/136620466

这一节,我们来学习查询订单,提交了订单,有可能成交,有可能成交不了进入挂单状态,也有可能成交一部分,撤销一部分,要想了解每笔订单记录和状态,就要通过查订单的接口获取,用query_stock_orders,就是字面意思,接口文档中叫做"委托查询"

python 复制代码
订单列表 = 交易对象.query_stock_orders(账户对象)
for 订单 in 订单列表:
    print('报单时间:', 订单.order_time,
          '股票代码:', 订单.stock_code,
          '订单编号:', 订单.order_id,
          '柜台合同号:', 订单.order_sysid,
          '报价类型:', 订单.price_type,
          '委托类型:', 订单.order_type,
          '委托状态:', 订单.order_status,
          '委托数量:', 订单.order_volume,
          '委托价格:', 订单.price,
          '成交数量:', 订单.traded_volume,
          '成交均价:', 订单.traded_price)

这个接口查询的是所有订单,包括挂单、成交、撤销、部成、部撤等,返回的是一个列表,列表项是订单对象,迭代输出后结果如下
Python炒股自动化(5):通过接口查询订单,查询账户资产

然后就是查询已成交订单,包含部成和部撤的订单,虽然查询委托里也有这些,但在实际使用中委托查询接口会返回用不到的挂单和撤单状态的订单,也有几个关键信息,用委托查询接口是查不到的

python 复制代码
成交列表 = 交易对象.query_stock_trades(账户对象)
for 成交 in 成交列表:
    print('成交时间:', 成交.traded_time,
          '证券代码:', 成交.stock_code,
          '委托类型:', 成交.order_type,
          '订单编号:', 成交.order_id,
          '成交编号:', 成交.traded_id,
          '柜台合同号:', 成交.order_sysid,
          '成交数量:', 成交.traded_volume,
          '成交⾦额:', 成交.traded_amount,
          '成交均价:', 成交.traded_price)

输出后结果如下:
Python炒股自动化(5):通过接口查询订单,查询账户资产

接着再查询持仓信息,包含之前的持仓,和当前半成交半挂单的持仓(部成),还有卖出挂单的冻结部分,比如某支标的,你在多空方向同时挂单,买入方向成交了一部分,算进持仓数量里,也可能还未入账计入在途股份,卖出方向是挂单等待成交状态,就是在冻结里

python 复制代码
持仓列表 = 交易对象.query_stock_positions(账户对象)
for 持仓 in 持仓列表:
    print('证券代码:', 持仓.stock_code,
          '持仓数量:', 持仓.volume,
          '可用数量:', 持仓.can_use_volume,
          '冻结数量:', 持仓.frozen_volume,
          '开仓价:', 持仓.open_price,
          '成本价:', 持仓.avg_price,
          '市值:', 持仓.market_value,
          '在途股份:', 持仓.on_road_volume,
          '昨夜拥股:', 持仓.yesterday_volume)

输出后结果如下,我这资金量小,所以"部成""部撤"状态难以捕捉,也没多大参考意义,这里就不演示了
Python炒股自动化(5):通过接口查询订单,查询账户资产

最后是查询账户,也就是"资产查询",返回的是资产对象,都是字面意思

python 复制代码
账户资产 = 交易对象.query_stock_asset(账户对象)
print('可用金额:', 账户资产.cash,
      '冻结金额:', 账户资产.frozen_cash,
      '持仓市值:', 账户资产.market_value,
      '总资产:', 账户资产.total_asset)

输出后结果如下:
Python炒股自动化(5):通过接口查询订单,查询账户资产

至此,Python炒股自动化简版系列就完结了,就这么点内容,现在才写完,我太懒散了
Python炒股自动化(5):通过接口查询订单,查询账户资产

下一版的Plus版尽量早点写完,内容也会丰富一些,最后会附上两个入门策略,还有傻瓜化上手代码也会一并写好,确实有一些朋友完全不懂,又想尽快上手,部署环境,接口选择,练习代码等等都存在障碍

所以下一版会尽量写的细致一些,程序基础也会写进去,直接面向炒股自动化实战学习编程,不要一想到编程就觉得难,并不难,我就是个半吊子,二把刀,现在有chatGPT、文心一言这些强大工具辅助,有任何不理解的就去问,写程序太轻松了

好了,今天的分享就到这里,对股票量化程序化自动交易感兴趣的朋友可以关注我,有任何相关问题也可以留言讨论或者私信与我交流

相关推荐
倔强的石头_4 分钟前
你的 Python 为什么“优雅地慢”?——读《极速Python:高性能编码、计算与数据分析》
python
程序猿 小项目大搞头11 分钟前
视频加水印,推荐使用运营大管家-视频批量加水印软件
python
Adorable老犀牛32 分钟前
可遇不可求的自动化运维工具 | 2 | 实施阶段一:基础准备
运维·git·vscode·python·node.js·自动化
xchenhao1 小时前
SciKit-Learn 全面分析 digits 手写数据集
python·机器学习·分类·数据集·scikit-learn·svm·手写
胡耀超1 小时前
7、Matplotlib、Seaborn、Plotly数据可视化与探索性分析(探索性数据分析(EDA)方法论)
python·信息可视化·plotly·数据挖掘·数据分析·matplotlib·seaborn
tangweiguo030519872 小时前
Django REST Framework 构建安卓应用后端API:从开发到部署的完整实战指南
服务器·后端·python·django
Dfreedom.2 小时前
在Windows上搭建GPU版本PyTorch运行环境的详细步骤
c++·人工智能·pytorch·python·深度学习
兴科Sinco2 小时前
[leetcode 1]给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数[力扣]
python·算法·leetcode
程序员奈斯2 小时前
Python深度学习:NumPy数组库
python·深度学习·numpy
yongche_shi2 小时前
第二篇:Python“装包”与“拆包”的艺术:可迭代对象、迭代器、生成器
开发语言·python·面试·面试宝典·生成器·拆包·装包