升级后报错哟:程序都开不出来啦。。。
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