3.42K 浏览
1

老师您好,我写了一个多品种的多线程策略。把策略封装成了一个函数,使用多线程调用。不多每个品种在使用多线程的时候都需要初始化api,这样就会不停的提示网络已建立。并且有的时候会显示连接超时。请问有什么解决方案么?

有几个问题想请教:

1、使用多线程的时候,是否可以把交易策略封装成类的形式?能否封装成函数的形式进行多线程?

2、在把api_master进行传参的时候,为什么回提示      不推荐使用 api._data[‘quotes’] 获取全部合约,该使用方法会在 20201101 之后的版本中放弃维护。请尽快修改使用新的接口,参考链接 http://doc.shinnytech.com/tqsdk/reference/tqsdk.api.html#tqsdk.api.TqApi.query_quotes??

我并没有使用api._data[‘quotes’]方法,我只是生成了一个线程而已。

问题比较多,还请老师不吝赐教 感谢!!~~~

ywf8231757 编辑问题 2020年9月24日
1

不要每个线程都开一个TqApi, 主线程用一个,其它子线程用主线程的TqApi的副本,参考这里:

https://doc.shinnytech.com/tqsdk/latest/advanced/multi_strategy.html#id3

lookis 发表新评论 2020年9月24日

我看了样例代码,请问是否一定要封装成类的形式呢?能否封装成函数的形式,然后把主线程的副本传进函数里呢?我对于类的封装不大熟悉

另外 麻烦您看一下我的第一张图,当我创建api副本的时候,为什么会出现waining提示呢?

可以直接用函数,总之在线程里跑的是一个 copy 就可以了

warning 提示如果不是你自己使用到了的话不用担心,只是对老版本的调用的兼容

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