4.11K 浏览
0

1. 在实盘多期货品种跟单时,采用order=api.insert_order()下限价单,对target_pos.set_target_volume()要有很多优势,但其后面要跟while order.status != “FINISHED”: api.wait_update(); 我的考虑是,多数情况下,该单应该成交;但在不成交的情况下,程序是否会出现死循环堵在这里,从而使其他品种的期货跟单无法跟踪?

2. 是否可以下单用api.insert_order(); 同时,止损单用target_pos.set_target_volume(0); 两种命令在程序中混合使用推荐吗?谢谢

lookis 已回答的问题 2020年8月25日
0

关于1. 我觉得还是得看你程序其它部分怎么写的,不能完全说不会堵但逻辑我觉得还是有问题的

lookis 发表新评论 2020年8月26日

谢谢您的解释!
关于第一个问题,我曾经测试过多线程,采用多策略,每个策略一个线程,然后同时启动,但实际运行效果跟单线程没有区别,还是运行完每一个策略,才运行第二个策略;后来查看了TqSdk的帮助文档,说多线程数还要受制于CPU个数,通常情况下,跟踪的期货品种个数要远远大于CPU个数,所以,多线程的方案放弃了;
关于单线程创建多异步任务的方案,TdSdk文档中的内容不多,能否再多分分享一些信息,我可以实际测试一下,谢谢!

多线程应该不会出现像您说的运行完一个策略再运行下一个,应该是同时运行的,而且不会受CPU个数影响,除非每一个子线程的逻辑都是死循环,如果逻辑是死循环的话异步任务也解决不了……,所以还是得看代码怎么写的

您正在查看2个答案中的1个,单击此处查看所有答案。