因为不懂程序,所以版本更新后就没跟进了,一直用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程序,结果现在不能用了。感觉实在学不会了。有大神能用简单的办法规避这个问题吗?求指教!