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

升级后报错哟:程序都开不出来啦。。。

2022-06-02 09:06:18 --------------------------------------------------
2022-06-02 09:06:18 VeighNa Trader进程启动
2022-06-02 09:06:18 Traceback (most recent call last):
File "C:\veighna_studio\lib\runpy.py", line 196, in _run_module_as_main
2022-06-02 09:06:18 return _run_code(code, main_globals, None,
File "C:\veighna_studio\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "build\bdist.win-amd64\egg\veighna_station\trader.py", line 5, in <module>
2022-06-02 09:06:18 File "C:\veighna_studio\lib\site-packages\vnpy\trader\engine.py", line 43, in <module>
from .setting import SETTINGS
File "C:\veighna_studio\lib\site-packages\vnpy\trader\setting.py", line 7, in <module>
from tzlocal import get_localzone_name
ImportError: cannot import name 'get_localzone_name' from 'tzlocal' (C:\veighna_studio\lib\site-packages\tzlocal__init.py)
2022-06-02 09:06:18 VeighNa Trader进程终止
2022-06-02 09:06:43 --------------------------------------------------
2022-06-02 09:06:43 VeighNa Trader进程启动
2022-06-02 09:06:43 Traceback (most recent call last):
File "C:\veighna_studio\lib\runpy.py", line 196, in _run_module_as_main
2022-06-02 09:06:43 return _run_code(code, main_globals, None,
File "C:\veighna_studio\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "build\bdist.win-amd64\egg\veighna_station\trader.py", line 5, in <module>
2022-06-02 09:06:43 File "C:\veighna_studio\lib\site-packages\vnpy\trader\engine.py", line 43, in <module>
from .setting import SETTINGS
File "C:\veighna_studio\lib\site-packages\vnpy\trader\setting.py", line 7, in <module>
from tzlocal import get_localzone_name
ImportError: cannot import name 'get_localzone_name' from 'tzlocal' (C:\veighna_studio\lib\site-packages\tzlocal\
init__.py)
2022-06-02 09:06:43 VeighNa Trader进程终止

@KeKe @用Python的交易员
二位晚上好,反馈并求助:
问题1:

tick = TickData(
...
                volume=float(item["持仓量"]),
...
            )

应为:

open_interest=float(item["持仓量"]),
volume=float(item["数量"]),

问题2:VNPY2.1.4 TICK MODE的回测无法完成,报错:

2020-07-25 15:31:47.633707  开始加载历史数据
2020-07-25 15:32:28.954328  加载进度: [5%]
...
2020-07-25 15:44:10.700282  加载进度:######### [93%]
2020-07-25 15:44:55.731819  加载进度:######### [99%]
2020-07-25 15:44:59.925135  加载进度:########## [100%]
2020-07-25 15:44:59.925135  历史数据加载完成,数据量:9831737
2020-07-25 15:44:59.925135  触发异常,回测终止
2020-07-25 15:44:59.927129  Traceback (most recent call last):
  File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 286, in run_backtesting
    self.callback(data)
  File "c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\strategies\atr_rsi_strategy.py", line 93, in on_bar
    am.update_bar(bar)
  File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 360, in update_bar
    self.close_array[-1] = bar.close_price
AttributeError: 'TickData' object has no attribute 'close_price'

2020-07-25 15:44:59.927129  开始计算逐日盯市盈亏
2020-07-25 15:44:59.927129  成交记录为空,无法计算

问题3:VNPY2.1.4 BAR MODE回测无法完成,按照教程导入TickData后,似乎没有生成BarData:

2020-07-25 18:38:58.427694  开始加载历史数据
2020-07-25 18:38:58.427694  加载进度: [5%]
...
2020-07-25 18:38:58.428693  加载进度:######### [99%]
2020-07-25 18:38:58.428693  加载进度:########## [100%]
2020-07-25 18:38:58.428693  历史数据加载完成,数据量:0
2020-07-25 18:38:58.428693  策略初始化完成
2020-07-25 18:38:58.428693  开始回放历史数据
2020-07-25 18:38:58.428693  历史数据回放结束
2020-07-25 18:38:58.428693  开始计算逐日盯市盈亏
2020-07-25 18:38:58.428693  成交记录为空,无法计算
None
2020-07-25 18:38:58.428693  开始计算策略统计指标
2020-07-25 18:38:58.428693  ------------------------------
2020-07-25 18:38:58.428693  首个交易日:  
2020-07-25 18:38:58.428693  最后交易日:  
2020-07-25 18:38:58.428693  总交易日:   0
2020-07-25 18:38:58.428693  盈利交易日:  0
2020-07-25 18:38:58.429133  亏损交易日:  0
2020-07-25 18:38:58.429133  起始资金:   1,000,000.00
2020-07-25 18:38:58.429133  结束资金:   0.00
2020-07-25 18:38:58.429133  总收益率:   0.00%
2020-07-25 18:38:58.429133  年化收益:   0.00%
...

原因:vt_symbol 和symbol 参数没区分清楚。修正如下:

vt_symbols = ['EUR-USD-CASH.IDEALPRO']
symbols = [x.split('.')[0] for x in vt_symbols]


from vnpy.trader.constant import Exchange
from vnpy.trader.object import SubscribeRequest
req0 = SubscribeRequest(symbols[0],Exchange.IDEALPRO) #创建行情订阅
engine.main_engine.subscribe(req0,"IB")

ticks = engine.get_ticks(vt_symbols)

print(f'Subscribed:\n{ticks}')
Subscribed:
[TickData(gateway_name='IB', symbol='EUR-USD-CASH', exchange=<Exchange.IDEALPRO: 'IDEALPRO'>, datetime=datetime.datetime(2020, 7, 23, 3, 10, 41, 195875, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>), name='ŷԪ-European Monetary Union Euro', volume=0, open_interest=0, last_price=1.157035, last_volume=0, limit_up=0, limit_down=0, open_price=0, high_price=1.16015, low_price=1.1507, pre_close=1.1527, bid_price_1=1.15703, bid_price_2=0, bid_price_3=0, bid_price_4=0, bid_price_5=0, ask_price_1=1.15704, ask_price_2=0, ask_price_3=0, ask_price_4=0, ask_price_5=0, bid_volume_1=3000000, bid_volume_2=0, bid_volume_3=0, bid_volume_4=0, bid_volume_5=0, ask_volume_1=1000000, ask_volume_2=0, ask_volume_3=0, ask_volume_4=0, ask_volume_5=0)]

题外话:这个俄文?ŷԪ?是什么东西?

各位老师:
我再IB Paper测试账户订阅行情时出现如下错误,应该如何修正啊?
提前谢过,感谢。

vt_symbols = ['GBP-USD-CASH.IDEALPRO']
#engine.subscribe(vt_symbols)

from vnpy.trader.constant import Exchange
from vnpy.trader.object import SubscribeRequest
req0 = SubscribeRequest(vt_symbols[0],Exchange.IDEALPRO) #创建行情订阅
engine.main_engine.subscribe(req0,"IB")

ticks = engine.get_ticks(vt_symbols)
print(f'Subscribed:\n{ticks}')
Subscribed:
[None]
ERROR 1 321 Error validating request:-'bQ' : cause - Please enter a valid security type
ERROR 2 321 Error validating request:-'bW' : cause - Please enter a valid security type
2020-07-23 02:37:12.945376  信息通知,代码:321,内容: Error validating request:-'bQ' : cause - Please enter a valid security type
2020-07-23 02:37:12.946373  信息通知,代码:321,内容: Error validating request:-'bW' : cause - Please enter a valid security type
© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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