ValueError: view limit minimum -0.001 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units #51
Running $ strat -f examples/api_example.json with the following parameters (START: 2015-03-03, END: 2015-03-09) gives:
{
"trading": {
"EXCHANGE": "bitfinex",
"ASSET": "btc_usd",
"DATA_FREQ": "daily",
"HISTORY_FREQ": "1d",
"CAPITAL_BASE": 10000,
"BASE_CURRENCY": "usd",
"START": "2015-03-03",
"END": "2015-03-09"
},
"datasets": [
{
"name": "quandl",
"columns": [
"MKTCP"
],
"indicators": []
},
{
"name": "google",
"columns": [
"bitcoin futures"
],
"indicators": [
{
"name": "RELCHANGE",
"symbol": "bitcoin futures",
"dataset": "google",
"label": "RELCHANGE",
"params": {}
}
]
}
],
"indicators": [
{
"name": "BBANDS",
"symbol": "btc_usd",
"dataset": null,
"label": "BBANDS",
"params": {
"matype": 3
}
},
{
"name": "STOCH",
"symbol": "btc_usd",
"dataset": null,
"label": "STOCH",
"params": {
"fastk_period": 5,
"slowk_period": 3,
"slowk_matype": 0,
"slowd_matype": 1
}
}
],
"signals": {}
}
[2018-04-07 21:23:25.053870] WARNING: run_algo: Catalyst is currently in ALPHA. It is going through rapid development and it is subject to errors. Please use carefully. We encourage you to report any issue on GitHub: https://github.com/enigmampc/catalyst/issues
[2018-04-07 21:23:25.054182] INFO: run_algo: Catalyst version 0.5.8
[2018-04-07 21:23:28.054689] INFO: run_algo: running algo in backtest mode
[2018-04-07 21:23:28.764442] INFO: exchange_algorithm: initialized trading algorithm in backtest mode
[2018-04-07 21:23:28.878547] INFO: google: Fetching trend data for 2015-03-03 2015-03-09
[2018-04-07 21:23:30.877815] ERROR: google: Retrieved 7 days of trend data
[2018-04-07 21:23:30.879948] INFO: Platform: Initializing strategy
[2018-04-07 21:23:30.880067] INFO: Strategy: Initilized Strategy
[2018-04-07 21:23:31.157536] INFO: Performance: Simulated 7 trading days out of 7.
[2018-04-07 21:23:31.157697] INFO: Performance: first open: 2015-03-03 00:00:00+00:00
[2018-04-07 21:23:31.157809] INFO: Performance: last close: 2015-03-09 23:59:00+00:00
/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
warnings.warn(message, mplDeprecation, stacklevel=1)
No handles with labels found to put in legend.
[2018-04-07 21:23:31.553062] INFO: Platform: Analyzing strategy
Exception in Tkinter callback
Traceback (most recent call last):
File "/Users/skurilyak/.pyenv/versions/3.6.4/lib/python3.6/tkinter/__init__.py", line 1699, in __call__
return self.func(*args)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 227, in resize
self.draw()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 12, in draw
super(FigureCanvasTkAgg, self).draw()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py", line 433, in draw
self.figure.draw(self.renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/figure.py", line 1475, in draw
renderer, self, artists, self.suppressComposite)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2607, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 1190, in draw
ticks_to_draw = self._update_ticks(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 1028, in _update_ticks
tick_tups = list(self.iter_ticks()) # iter_ticks calls the locator
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 971, in iter_ticks
majorLocs = self.major.locator()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1249, in __call__
self.refresh()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1269, in refresh
dmin, dmax = self.viewlim_to_dt()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1026, in viewlim_to_dt
.format(vmin))
ValueError: view limit minimum -0.001 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units
Exception in Tkinter callback
Traceback (most recent call last):
File "/Users/skurilyak/.pyenv/versions/3.6.4/lib/python3.6/tkinter/__init__.py", line 1699, in __call__
return self.func(*args)
File "/Users/skurilyak/.pyenv/versions/3.6.4/lib/python3.6/tkinter/__init__.py", line 745, in callit
func(*args)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 310, in idle_draw
self.draw()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 12, in draw
super(FigureCanvasTkAgg, self).draw()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py", line 433, in draw
self.figure.draw(self.renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/figure.py", line 1475, in draw
renderer, self, artists, self.suppressComposite)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2607, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 1190, in draw
ticks_to_draw = self._update_ticks(renderer)
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 1028, in _update_ticks
tick_tups = list(self.iter_ticks()) # iter_ticks calls the locator
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/axis.py", line 971, in iter_ticks
majorLocs = self.major.locator()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1249, in __call__
self.refresh()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1269, in refresh
dmin, dmax = self.viewlim_to_dt()
File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/matplotlib/dates.py", line 1026, in viewlim_to_dt
.format(vmin))
ValueError: view limit minimum -0.001 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units
I think this issue is caused by using a small time span (2 to 6 days), which is limited by Google Trends library.
Running
$ strat -f examples/api_example.json
with the following parameters (START: 2015-03-03, END: 2015-03-09) gives:I think this issue is caused by using a small time span (2 to 6 days), which is limited by Google Trends library.