VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 15
声望: 0

想在portfoliostrategy中获取策略当前所有持仓合约,在template中写了一个函数,添加策略时总是报如下错误,不知道是哪里的问题,求教。

description

Traceback (most recent call last):
File "D:\Software\vnpy\lib\site-packages\vnpy_portfoliostrategy\ui\widget.py", line 143, in add_strategy
self.strategy_engine.add_strategy(
File "D:\Software\vnpy\lib\site-packages\vnpy_portfoliostrategy\engine.py", line 380, in add_strategy
self.save_strategy_setting()
File "D:\Software\vnpy\lib\site-packages\vnpy_portfoliostrategy\engine.py", line 626, in save_strategy_setting
save_json(self.setting_filename, strategy_setting)
File "D:\Software\vnpy\lib\site-packages\vnpy\trader\utility.py", line 118, in save_json
json.dump(
File "D:\Software\vnpy\lib\json__init.py", line 179, in dump
for chunk in iterable:
File "D:\Software\vnpy\lib\json\encoder.py", line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File "D:\Software\vnpy\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "D:\Software\vnpy\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "D:\Software\vnpy\lib\json\encoder.py", line 438, in _iterencode
o = _default(o)
File "D:\Software\vnpy\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

Member
avatar
加入于:
帖子: 1286
声望: 77

策略参数中,包含了无法序列化的数据类型,截图下你策略代码里的parameteres和variables部分?

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

MTF wrote:

策略参数中,包含了无法序列化的数据类型,截图下你策略代码里的parameteres和variables部分?
我只是在portfoliostrategy的template中加了一个函数,就是一楼图里的get_all_pos(),没有变动其他部分。self.pos存放的是标的及数量,我只是用了self.pos的keys.

Member
avatar
加入于:
帖子: 1286
声望: 77

你添加的内容看着没啥问题,而且报错也不是说这里函数代码的解析有问题了

Member
avatar
加入于:
帖子: 4300
声望: 268

报错就是在engine的save_strategy_setting的时候有问题,可以自己打印一下。不是策略的vt_symbols变成了ndarray,就是策略的parameters里面有值是ndarray

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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