VeighNa量化社区
你的开源社区量化交易平台
sean_vnpy's Avatar
Member
离线
6 帖子
声望: 0

好像还发现了一个bug。对于郑商所主力合约代码,比如AP9999.XZCE。获取的时候会自动转换成AP19999.XZCE。
代码中直接判断year=='9',然后就前面加1的方式有点问题。需要单独再加一个判断条件。

sean_vnpy wrote:

tonywang_efun wrote:

用IF9999.CFFEX试试,下图是聚宽对主力连续合约的代码定义,可以到他们的官网上找到,链接

description

sean_vnpy wrote:

之前按照这个方案配置好貌似没有问题了,但是最近使用的时候发现会有如下报错?是不是哪个接口的配置改了?

22:01:31 ----------------------------------------
22:01:31 IF88.CFFEX-1m开始下载历史数据
22:01:31 数据下载失败,触发异常:
Traceback (most recent call last):
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\app\cta_backtester\engine.py", line 367, in run_downloading
data = mddata_client.query_history(req)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\trader\mddata\jqdata.py", line 139, in query_history
skip_paused=True
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\utils.py", line 229, in _wrapper
return func(*args, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\api.py", line 28, in get_price
return JQDataClient.instance().get_price(
locals())
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 162, in <lambda>
return lambda kwargs: self(method, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 157, in call
raise err
Exception: 找不到标的IF88.CCFX

谢谢,好久不用忘记聚宽是用的另外一套标的符号了。
不过换成了IF9999.CFFEX,但是在回测的时候总显示
历史数据加载完成,数据量:0
成交记录为空,无法计算

后台已经提示auth success。感觉不是权限认证出了问题...

解决了。。。貌似是需要直接用代码回测就OK了,用界面点击加载数据、回测就会有问题,为什么界面不行还没研究明白。

tonywang_efun wrote:

用IF9999.CFFEX试试,下图是聚宽对主力连续合约的代码定义,可以到他们的官网上找到,链接

description

sean_vnpy wrote:

之前按照这个方案配置好貌似没有问题了,但是最近使用的时候发现会有如下报错?是不是哪个接口的配置改了?

22:01:31 ----------------------------------------
22:01:31 IF88.CFFEX-1m开始下载历史数据
22:01:31 数据下载失败,触发异常:
Traceback (most recent call last):
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\app\cta_backtester\engine.py", line 367, in run_downloading
data = mddata_client.query_history(req)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\trader\mddata\jqdata.py", line 139, in query_history
skip_paused=True
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\utils.py", line 229, in _wrapper
return func(*args, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\api.py", line 28, in get_price
return JQDataClient.instance().get_price(
locals())
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 162, in <lambda>
return lambda kwargs: self(method, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 157, in call
raise err
Exception: 找不到标的IF88.CCFX

谢谢,好久不用忘记聚宽是用的另外一套标的符号了。
不过换成了IF9999.CFFEX,但是在回测的时候总显示
历史数据加载完成,数据量:0
成交记录为空,无法计算

后台已经提示auth success。感觉不是权限认证出了问题...

之前按照这个方案配置好貌似没有问题了,但是最近使用的时候发现会有如下报错?是不是哪个接口的配置改了?

22:01:31 ----------------------------------------
22:01:31 IF88.CFFEX-1m开始下载历史数据
22:01:31 数据下载失败,触发异常:
Traceback (most recent call last):
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\app\cta_backtester\engine.py", line 367, in run_downloading
data = mddata_client.query_history(req)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\vnpy\trader\mddata\jqdata.py", line 139, in query_history
skip_paused=True
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\utils.py", line 229, in _wrapper
return func(*args, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\api.py", line 28, in get_price
return JQDataClient.instance().get_price(
locals())
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 162, in <lambda>
return lambda kwargs: self(method, kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\jqdatasdk\client.py", line 157, in call
raise err
Exception: 找不到标的IF88.CCFX

用Python的交易员 wrote:

这个报错应该是你某个策略的variables参数里,有不是int/float/str/bool类型的数据,请检查下吧。

谢谢!删掉了配置文件,重新生成策略的时候,问题就解决了。

在策略运行的过程中,点击全部停止会触发下列错误,看了半天也每天看懂是什么原因,有大神能帮忙看一下吗?

Traceback (most recent call last):
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\trader\ui\mainwindow.py", line 253, in closeEvent
self.main_engine.close()
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\trader\engine.py", line 220, in close
engine.close()
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 116, in close
self.stop_all_strategies()
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 846, in stop_all_strategies
self.stop_strategy(strategy_name)
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 702, in stop_strategy
self.sync_strategy_data(strategy)
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 803, in sync_strategy_data
save_json(self.data_filename, self.strategy_data)
File "C:\Users\puir\Anaconda3\lib\site-packages\vnpy\trader\utility.py", line 109, in save_json
ensure_ascii=False
File "C:\Users\puir\Anaconda3\lib\json__init.py", line 179, in dump
for chunk in iterable:
File "C:\Users\puir\Anaconda3\lib\json\encoder.py", line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File "C:\Users\puir\Anaconda3\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "C:\Users\puir\Anaconda3\lib\json\encoder.py", line 405, in _iterencode_dict
yield from chunks
File "C:\Users\puir\Anaconda3\lib\json\encoder.py", line 438, in _iterencode
o = _default(o)
File "C:\Users\puir\Anaconda3\lib\json\encoder.py", line 179, in default
raise TypeError(f'Object of type {o.
class.name__} '
TypeError: Object of type time is not JSON serializable

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

沪公网安备 31011502017034号

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