现在还有这个问题,一旦开机超过1天就出现这个问题,我是在服务器运行,本来就是要24小时开着,这个问题可以有方法自动解决吗?
郭易燔 wrote:
策略的参数只能使用string,int,bool,你这里把对象传进参数里了。导致持久化数据时,json文件出错了,之后就打不开了。删除用户名目录下.vntrader下cta_strategy_data.json文件,然后再重启试试。
好了,非常感谢!是这样的。
晚上调试策略,弄好了重新启动vnpy,点了链接ctp但是应该是服务器关掉了并没有出现连接正常的信息,
这个时候想直接启动策略,让CTP连接上了可以直接运行,但是点了启动之后,系统报错,好像是无法找到那个行情代码之类的话,因为CTP行情服务器没有启动,想着应该是正常,但是第二天没有自动启动策略,而是点停止策略也无法停止,点停止报错信息如下:
Traceback (most recent call last):
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\ui\widget.py", line 278, in stop_strategy
self.cta_engine.stop_strategy(self.strategy_name)
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py", line 745, in stop_strategy
self.sync_strategy_data(strategy)
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py", line 845, in sync_strategy_data
save_json(self.data_filename, self.strategy_data)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 116, in save_json
ensure_ascii=False
File "c:\vnstudio\lib\json\__init__.py", line 179, in dump
for chunk in iterable:
File "c:\vnstudio\lib\json\encoder.py", line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File "c:\vnstudio\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "c:\vnstudio\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "c:\vnstudio\lib\json\encoder.py", line 438, in _iterencode
o = _default(o)
File "c:\vnstudio\lib\json\encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type ndarray is not JSON serializable
想着是不是有点异常,关闭vnpy后,重启服务器,然后重新连接好ctp接口之后,点击启动CTA策略,促发异常如下:
Traceback (most recent call last):
File "c:\vnstudio\lib\site-packages\vnpy\trader\ui\mainwindow.py", line 282, in open_widget
widget = widget_class(self.main_engine, self.event_engine)
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\ui\widget.py", line 38, in __init__
self.cta_engine.init_engine()
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py", line 115, in init_engine
self.load_strategy_data()
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py", line 834, in load_strategy_data
self.strategy_data = load_json(self.data_filename)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 99, in load_json
data = json.load(f)
File "c:\vnstudio\lib\json\__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "c:\vnstudio\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "c:\vnstudio\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\vnstudio\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 57 column 20 (char 1215)
感觉就是策略引擎有问题,试了一下CTA策略回测
所有策略均无法运营,log里面只有这四行
13:28:59 初始化CTA回测引擎
13:28:59 策略文件加载完成
13:28:59 数据服务初始化成功
13:29:00 策略文件重载刷新完成
再无其他。始终无法启动CTA引擎
VNPY版本:2.9.0
这个数据源只有股票的数据吗?我看到订购页面只有股票,没有期货数据。