返回列表 发布新帖

策略初始资金分配和资金池管理问题,请指教。

75 5
发表于 6 天前 来自手机 | 显示全部楼层 阅读模式
现在想用券商版的QMT客户端做交易,折腾了很长时间,太难用了!请问大佬们,QMT想同时运行多个策略,策咯的初始资金怎么分配?只能用代码实现吗?

评论5

thinkhands
发表于 3 天前 | 显示全部楼层
实盘交易 其实和初始资金有关的 就是按资金的比例下单了 ,按照pdf文件的操作说明中关于passorder那几页 下单方式就四种,一种是总资产比例,一种是可用资金比例,一种是多少手,一种是多少金额,按不同策略可以写不同的passorder
*******9127_GHY7s
发表于 前天 15:41 | 显示全部楼层
qmt分为内置python和miniqmt原生python两种模式,内置python不支持多线程
*******9127_GHY7s
发表于 前天 15:41 | 显示全部楼层
下单与回报相关
为保证以尽快的速度执行交易信号, qmt 客户端提供的交易接口是异步的, 以快速交易参数填2的passorder函数为例,调用后会立刻发出委托, 然后返回。不会等待委托回报, 也不会阻塞python线程的运行。

委托/成交/持仓/账号信息的更新, 是在客户端后台进行的, python策略中无法手动控制。python提供的取账号信息接口 get_trade_detail_data, 与四种交易回调函数, 都是从客户端本地缓存中读取数据 / 触发调用,不是调用时查询柜台再返回。客户端本地缓存状态定期接收柜台推送刷新,有交易主推的柜台50ms一次,没有交易主推的柜台1-6秒一次。 不能认为get_trade_detail_data查到的状态是与柜**全一致的, 比如卖出委托后立刻查询, 不会查到对应委托, 可用资金也不会变多。

实盘策略需要设计盘中保存/更新委托状态的机制。常见的做法是用全局变量字典保存委托状态, 给每一笔委托独立的投资备注作为字典的key,委托状态作为字典的value, 下单后默认设置为待报, 之后查到委托后更新状态。如果某品种股票存在待报状态委托, 暂停该品种后续报单, 防止发生超单的情况。(实现可以参考实盘示例7-调整至目标持仓Demo)

QMT 所有策略是在同一个线程中被调用的,任意一个策略阻塞线程(死循环 sleep 加锁等操作)会导致所有策略的执行被阻塞,所以不能在策略里写等待操作。如需要多线程 / 多进程的用法,可以使用极简模式配合 xtquant 库使用
*******9127_GHY7s
发表于 前天 15:41 | 显示全部楼层
qmt的api里边有揭示:QMT中,内置python无法使用多线程和多进程,而且所有策略都在同一线程中执行,所以策略中应该尽量避免阻塞类的写法,否则会影响其他策略的执行。
*******9127_GHY7s
发表于 前天 15:43 | 显示全部楼层
可加微信交流:Ecs21xwei

回复

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

客服专线

400-080-8112

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