账户中有股指期货的仓位。在早晨9点商品开盘的时候,获取股指行情出错。
`
[2017-05-05 09:00:45.451757] ERROR: system_log: Cannot find such tick whose order_book_id is IF1705
Traceback (most recent call last):
File "/media/psf/Home/rqalpha/rqalpha/main.py", line 209, in run
env.portfolio = broker.get_portfolio()
│ └ <rqalpha_mod_vnpy.vnpy_broker.VNPYBroker object at 0x7fe49f38eb50>
└ <rqalpha.environment.Environment object at 0x7fe4ad1ed410>
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/vnpy_broker.py", line 68, in get_portfolio
return self.gateway.get_portfolio()
└ <rqalpha_mod_vnpy.vnpy_broker.VNPYBroker object at 0x7fe49f38eb50>
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/gateway.py", line 93, in get_portfolio
future_account = self.cache.account
└ <rqalpha_mod_vnpy.ctp.gateway.CtpGateway object at 0x7fe49f38b150>
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/data_cache.py", line 115, in account
holding_pnl = sum(position.holding_pnl for position in six.itervalues(ps))
│ └ {'CU1705': FuturePosition({'sell_old_quantity': 1, 'contract_multiplier': 5.0, 'last_price': 44960.0, 'buy_pnl': -3850.0, 'buy_r...
└ <module 'six' from '/home/cui/anaconda2/envs/rqa/lib/python2.7/site-packages/six.pyc'>
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/data_cache.py", line 115, in
holding_pnl = sum(position.holding_pnl for position in six.itervalues(ps))
│ │ └ <module 'six' from '/home/cui/anaconda2/envs/rqa/lib/python2.7/site-packages/six.pyc'>
│ └ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy...
└ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy...
File "/media/psf/Home/rqalpha/rqalpha/model/position/future_position.py", line 133, in holding_pnl
return self.buy_holding_pnl + self.sell_holding_pnl
│ └ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
└ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
File "/media/psf/Home/rqalpha/rqalpha/model/position/future_position.py", line 105, in buy_holding_pnl
return (self.last_price - self.buy_avg_holding_price) * self.buy_quantity * self.contract_multiplier
│ │ │ └ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
│ │ └ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
│ └ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
└ FuturePosition({'sell_old_quantity': 0, 'contract_multiplier': 300.0, 'last_price': 3383.4, 'buy_pnl': -8039.999999999918, 'buy_...
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2017-05-05 09:00:45.00 ERROR unsupported operand type(s) for -: 'NoneType' and 'float'
[2017-05-05 09:00:45.725248] ERROR: system_log: 策略运行产生异常
Traceback (most recent call last):
File "/media/psf/Home/rqalpha/rqalpha/main.py", line 209, in run
env.portfolio = broker.get_portfolio()
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/vnpy_broker.py", line 68, in get_portfolio
return self._gateway.get_portfolio()
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/gateway.py", line 93, in get_portfolio
future_account = self._cache.account
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/data_cache.py", line 115, in account
holding_pnl = sum(position.holding_pnl for position in six.itervalues(ps))
File "/media/psf/Home/rqalpha-mod-vnpy/rqalpha_mod_vnpy/ctp/data_cache.py", line 115, in
holding_pnl = sum(position.holding_pnl for position in six.itervalues(ps))
File "/media/psf/Home/rqalpha/rqalpha/model/position/future_position.py", line 133, in holding_pnl
return self.buy_holding_pnl + self.sell_holding_pnl
File "/media/psf/Home/rqalpha/rqalpha/model/position/future_position.py", line 105, in buy_holding_pnl
return (self.last_price - self.buy_avg_holding_price) * self.buy_quantity * self.contract_multiplier
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
CThostFtdcUserApiImplBase::OnSessionDisconnected[0x7fe48c0008c8][-830341119][ 0]
CThostFtdcUserApiImplBase::OnSessionDisconnected[0x7fe4900008c8][-830406655][ 0]
`
应该是多线程导致数据加载不同步导致出错,正在修复。