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

因为不懂程序,所以版本更新后就没跟进了,一直用2.4.0版本好好的。
结果这几天程序运行时突然出现datetime问题。代码如下:
触发异常已停止
Traceback (most recent call last):
File ""c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py"", line 617, in call_strategy_func
func(params)
File ""C:\Users\Administrator\strategies\B2412263ZhengYou1.py"", line 376, in on_tick
self.sync_data()
File ""c:\vnstudio\lib\site-packages\vnpy_ctastrategy\template.py"", line 334, in sync_data
self.cta_engine.sync_strategy_data(self)
File ""c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py"", line 842, 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 datetime is not JSON serializable
"
今天晚上更新了windows,结果连cta策略功能都打不开了,一打开就是如下错误。

Traceback (most recent call last):
File "c:\vnstudio\lib\site-packages\vnpy\trader\ui\mainwindow.py", line 281, 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 112, in init_engine
self.load_strategy_data()
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\engine.py", line 831, 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 857286 column 21 (char 13307376)
电脑小白太痛苦了。好不容易照虎画猫了一个能用的cta程序,结果现在不能用了。感觉实在学不会了。有大神能用简单的办法规避这个问题吗?求指教!

Member
avatar
加入于:
帖子: 5615
声望: 340

可以根据报错信息删除.vntrader文件夹下的cta_strategy_data.json文件,再重启。建议检查一下策略参数的类型。检查一下策略里是否有把str\bool\int\float以外的变量名,写到了parameters或variables列表中,json文件保存不了这四种基础数据以外的类型,就会出错

Member
avatar
加入于:
帖子: 27
声望: 0

又能用了。感谢xiaohe大神!

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

沪公网安备 31011502017034号

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