一开始用“每个进程执行一个策略实例”的方法,后面发现同一网络最大只能启动30个API.
经管理员介绍:目前按https://doc.shinnytech.com/pysdk/latest/advanced/multi_strategy.html
经真实代码测试,程序只创建1个线程,但在感应价格跳动时,总是会慢,随着时间的推移,相差时间越来越长。
而不用线程的方法,同一台电脑,“每个进程执行一个策略实例”,就不会有时间延迟的问题。这是什么原因呢?
按下图的时间跳动,已经跟系统时间相差5分钟左右了,打印时间是14:49:40,系统时间:14:54。系统时间是与网络同步的。
参考的例子如下:
Paul Yu 已回答的问题 2020年2月26日
python的多线程就是有性能问题啊。
我的策略,最初多线程版本挺好的。当时限制只有5个线程。后来真正实用的时候,加到20个线程以上,python的性能,完全无法胜任。
你百度搜python GIL就知道了。
ishanning 发表新评论 2020年2月26日
感谢分享。
用多线程也是没办法的事情,因为平台限制同一IP最大30 API。
我现在的想法是这样:成交量较大的合约大概50个,初步拆成5个合约共用一个进程,等于要启动10个进程,分两台电脑跑,每台跑5个。
方便私信留个联系方式吗?以后多交流。