12下一页
返回列表 发布新帖

miniqmt,国金,卖完成交了,query_stock_asset的cash还没变,你们遇到过么

604 16
发表于 2025-7-11 11:21:25 | 显示全部楼层 阅读模式

国金证券,我是监听一个组合,先卖后买,卖完之后,没隔0.3秒查询余额然后买入,循环8秒,结果cash一直没有增加...

是我代码的问题么?还是国金客户端哪里设置的错了缓存之类的?

评论16

流利楼主
发表于 2025-7-11 14:22:17 | 显示全部楼层
有大佬知道么 不是又问必答么:'(
*******5272_L3N5h
发表于 2025-7-11 17:37:22 | 显示全部楼层
明天用mini客户端手动下单看下账号资金那一栏变动是否正常.
如果客户端正常那可能就是代码问题了,否则就是环境问题.
gj的模拟环境特别拉,有时候委托都查不出来
流利楼主
发表于 2025-7-12 20:32:37 | 显示全部楼层
*******5272_L3N5h 发表于 2025-7-11 17:37
明天用mini客户端手动下单看下账号资金那一栏变动是否正常.
如果客户端正常那可能就是代码问题了,否则就是 ...

哥 你没遇到过这种问题么?
*******5272_L3N5h
发表于 2025-7-12 21:08:50 | 显示全部楼层
流利 发表于 2025-7-12 20:32
哥 你没遇到过这种问题么?

我是每个策略单独本地维护了一个资金池,
下完单后会校验持仓,但是没校验资金,因此可能忽略了你遇到的问题,
查持仓倒是挺正常的,没做资金校验因为得考虑手续费,比较麻烦.
后续我也加个log看看资金变动
流利楼主
发表于 2025-7-14 08:30:06 | 显示全部楼层
*******5272_L3N5h 发表于 2025-7-12 21:08
我是每个策略单独本地维护了一个资金池,
下完单后会校验持仓,但是没校验资金,因此可能忽略了你遇到的问题 ...

等您的log  看看到底是小弟的问题还是通用的 麻烦了哥
*******5272_L3N5h
发表于 2025-7-14 13:23:26 | 显示全部楼层
测了,没发现问题,每次买入/卖出两个标的:
卖出成交日志:
-->更新新本地资金:id:ee6d2705607011f0823f,委托成交额:9921.7,本次资金变动额:58904.2 -> 68825.9 : (9921.7)
-->更新新本地资金:id:ee6d4df6607011f0952b,委托成交额:9918.599999999999,本次资金变动额:68825.9 -> 78744.5 : (9918.6)
下单后资金变动:19902195.7->19922036.0,delta:19840.300000000745

买入的:
-->更新新本地资金:id:2bae8817607111f0a739,委托成交额:9924.7,本次资金变动额:78744.5 -> 68819.8 : (-9924.7)
-->更新新本地资金:id:2bc176e7607111f094cd,委托成交额:9926.4,本次资金变动额:68819.8 -> 58893.4 : (-9926.4)
下单后资金变动:19922016.0->19902164.9,delta:-19851.10000000149

账户总的变动等于两笔的变动之和,基本500ms以内就刷新了,
你检查下代码,看看是不是查账户没有返回,用了缓存,导致没有刷新
流利楼主
发表于 2025-7-14 13:51:20 | 显示全部楼层
*******5272_L3N5h 发表于 2025-7-14 13:23
测了,没发现问题,每次买入/卖出两个标的:
卖出成交日志:
-->更新新本地资金:id:ee6d2705607011f0823f,委托 ...

我代码就是用的xt_trader.query_stock_asset(G.ACCOUNT),我今天也测试了,委托一笔,观察可用余额,10秒了还没有变,直到我点国金证券QMT交易端里的刷新资金按钮,


哥 你用的也是国金证券QMT交易端么?设置里没找到缓存相关的设置项

下边是小弟的大致代码


  1. if __name__ == '__main__':
  2.     logger.info("开始执行")

  3.     # 创建配置读取器
  4.     G.CONFIG = ConfigReader("配置.json")

  5.     # 生成session id 整数类型 同时运行的策略不能重复
  6.     session_id = int(time.time())
  7.     # 指定客户端所在路径
  8.     xt_trader = XtQuantTrader(G.CONFIG.get('miniqmt客户端路径'), session_id)
  9.     # 开启主动请求接口的专用线程 开启后在on_stock_xxx回调函数里调用XtQuantTrader.query_xxx函数不会卡住回调线程,但是查询和推送的数据在时序上会变得不确定
  10.     # 详见: http://docs.thinktrader.net/vip/pages/ee0e9b/#开启主动请求接口的专用线程
  11.     # xt_trader.set_relaxed_response_order_enabled(True)

  12.     # 创建证券账号对象
  13.     G.ACCOUNT = StockAccount(G.CONFIG.get('股票账号'), 'STOCK')
  14.     # 创建交易回调类对象,并声明接收回调
  15.     callback = MyXtQuantTraderCallback()
  16.     xt_trader.register_callback(callback)
  17.     # 启动交易线程
  18.     xt_trader.start()
  19.     # 建立交易连接,返回0表示连接成功
  20.     connect_result = xt_trader.connect()
  21.     print('建立交易连接,返回0表示连接成功:', connect_result)
  22.     # 对交易回调进行订阅,订阅后可以收到交易主推,返回0表示订阅成功
  23.     subscribe_result = xt_trader.subscribe(G.ACCOUNT)
  24.     print('对交易回调进行订阅,订阅后可以收到交易主推,返回0表示订阅成功 :', subscribe_result)
  25.     # 这一行是注册全推回调函数 包括下单判断 安全起见处于注释状态 确认理解效果后再放开

  26. asset_data = query_asset()
  27. first_cash = asset_data['cash']
  28. logger.info(f"可用余额 {first_cash}")
  29. while True:
  30. time.sleep(1)
  31. asset_data = query_asset()
  32. second_cash = asset_data['cash']
  33. if first_cash != second_cash:
  34. first_cash = second_cash
  35. logger.info(f"可用余额 {first_cash}")


  36. # 资产查询
  37. def query_asset():
  38.     logger.debug("查询资产")

  39.     asset = xt_trader.query_stock_asset(G.ACCOUNT)

  40.     if asset is None:
  41.         logger.fatal("资产为空,请检查是否登录国金MQT客户端,并且登录界面勾选'独立交易'!!!")
  42.         return {}

  43.     ret = {
  44.         'cash': asset.cash,
  45.         # 'cash': asset.total_asset,  # todo 测试 解决可用余额不实时更新的问题,简单粗暴直接用总资产试试
  46.         'total_asset': asset.total_asset,
  47.     }
  48.     logger.debug("查询资产返回: %s", ret)

  49.     return ret
复制代码



流利楼主
发表于 2025-7-14 14:16:59 | 显示全部楼层
*******5272_L3N5h 发表于 2025-7-14 13:23
测了,没发现问题,每次买入/卖出两个标的:
卖出成交日志:
-->更新新本地资金:id:ee6d2705607011f0823f,委托 ...

哥哥 你懂的:lol  5b6u5L+hOTE4ODkxNw==
*******5272_L3N5h
发表于 2025-7-14 14:22:52 | 显示全部楼层
我好像复现了, image.png
勾上,用柜台的数据

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表