VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 164
声望: 0

脚本模式下,用多进程跑策略报错:
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
Traceback (most recent call last):
File "c:\Users\wp61413_114147317492\期权交易\终稿\test2.py", line 22, in <module>
main()
File "c:\Users\wp61413_114147317492\期权交易\终稿\test2.py", line 18, in main
p1.start()
File "D:\veighna_studio\lib\multiprocessing\process.py", line 121, in start
self._popen = self._Popen(self)
File "D:\veighna_studio\lib\multiprocessing\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "D:\veighna_studio\lib\multiprocessing\context.py", line 327, in _Popen
return Popen(process_obj)
File "D:\veighna_studio\lib\multiprocessing\popen_spawn_win32.py", line 93, in init
reduction.dump(process_obj, to_child)
File "D:\veighna_studio\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: cannot pickle 'thread.lock' object
找不到数据服务驱动vnpy
,使用默认的RQData数据服务
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "D:\veighna_studio\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "D:\veighna_studio\lib\multiprocessing\spawn.py", line 126, in _main
self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

源代码如下:

import multiprocessing
from vnpy_scripttrader import init_cli_trading
from vnpy_ctp import CtpGateway

class Strategy:
    def __init__(self,engine = init_cli_trading([CtpGateway])) -> None:
        self.engine = engine

    def stratrgy(self):
        print('111')

def main():
    commodities = Strategy()

    p1 = multiprocessing.Process(target=commodities.stratrgy)
    p2 = multiprocessing.Process(target=commodities.stratrgy)
    p1.start()
    p2.start()

if __name__ == '__main__':
    main()
Member
加入于:
帖子: 21
声望: 0

后面解决这个问题了吗 我也遇到了

Member
avatar
加入于:
帖子: 5372
声望: 326

开源版本没有提供多进程支持,目前只有elite版本提供了多进程支持

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】