qtpylib
qtpylib copied to clipboard
Unable to run any strategies in tick resolution
I am unable to get any algos to run for longer than a few seconds. It crashes on df.append(data, sort=True)
I've tried downgrading pandas to many versions down to 0.19.0 and have not been able to resolve the issue.
Here is the examble algo:
class TestAlgo(Algo):
pass
if __name__ == '__main__':
strategy = TestAlgo(
instruments=["AAPL", ],
resolution="1K",
timezone="US/Eastern",
ibport=7497,
)
strategy.run()
And the traceback:
Exception in thread Thread-27:
Traceback (most recent call last):
File "C:\Python36\Lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Python36\Lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\qtpylib\asynctools.py", line 95, in _run_via_pool
return callee(*args, **kwargs)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\qtpylib\algo.py", line 755, in _tick_handler
self.ticks = self._update_window(self.ticks, tick)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\qtpylib\algo.py", line 869, in _update_window
df = df.append(data, sort=True)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\frame.py", line 6201, in append
sort=sort)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\reshape\concat.py", line 226, in concat
return op.get_result()
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\reshape\concat.py", line 423, in get_result
copy=self.copy)
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\internals.py", line 5421, in concatenate_block_managers
concatenate_join_units(join_units, concat_axis, copy=copy),
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\internals.py", line 5565, in concatenate_join_units
for ju in join_units]
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\internals.py", line 5565, in <listcomp>
for ju in join_units]
File "C:\Users\jay.BDEVILS\Envs\exchangedata-ZDNy_R_-\lib\site-packages\pandas\core\internals.py", line 5851, in get_reindexed_values
if not self.block._can_consolidate:
AttributeError: 'NoneType' object has no attribute '_can_consolidate'
Hi @jshridha, can you try a larger tick resolution?
"1K" refers to 1 tick. Perhaps you can try 1000 ticks? This would be:
strategy = TestAlgo(
instruments=["AAPL", ],
resolution="1000K",
timezone="US/Eastern",
ibport=7497,
)
Increasing to 1000K or 2000K still results in the same issue.
I got the same issue too:
Traceback (most recent call last):
File "strategy_tick_demo.py", line 102, in <module>
strategy.run()
File "c:\users\summit\projects\summit\summitquant\env\src\qtpylib\qtpylib\algo.py", line 412, in run
book_handler=self._book_handler
File "c:\users\summit\projects\summit\summitquant\env\src\qtpylib\qtpylib\blotter.py", line 1084, in stream
tick_handler(df)
File "c:\users\summit\projects\summit\summitquant\env\src\qtpylib\qtpylib\asynctools.py", line 100, in async_method
return callee(*args, **kwargs)
File "c:\users\summit\projects\summit\summitquant\env\src\qtpylib\qtpylib\algo.py", line 758, in _tick_handler
self.ticks = self._update_window(self.ticks, tick)
File "c:\users\summit\projects\summit\summitquant\env\src\qtpylib\qtpylib\algo.py", line 872, in _update_window
df = df.append(data, sort=True)
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\frame.py", line 6211, in append
sort=sort)
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\reshape\concat.py", line 226, in concat
return op.get_result()
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\reshape\concat.py", line 423, in get_result
copy=self.copy)
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\internals.py", line 5421, in concatenate_block_managers
concatenate_join_units(join_units, concat_axis, copy=copy),
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\internals.py", line 5565, in concatenate_join_units
for ju in join_units]
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\internals.py", line 5565, in <listcomp>
for ju in join_units]
File "C:\Users\summit\Projects\Summit\summitquant\env\lib\site-packages\pandas\core\internals.py", line 5851, in get_reindexed_values
if not self.block._can_consolidate:
AttributeError: 'NoneType' object has no attribute '_can_consolidate'