trim_tickerlist is called from load_datafile.
trim_tickerlist will throw an index out of range error when parsing a ticker json file for a timerange outside its current contents.
This patch to load_datafile checks the timerange is in the file or not handles the exception by downloading the file with complete range. If the Exchange does not have the full range a message is logged and the file not sent to ticker-parse.
In summary, is json file does not have full requested time range
1. download file
2. if still missing time range, log and continue without ticker trim.
Here is an example of the error prior to path and after patching.
This is from binannce using the pair "ZEN/BTC" and timerange "20180522-20180523"
"""
File "/Users/creslin/PycharmProjects/freqtrade/freqtrade/optimize/__init__.py", line 107, in load_data
pairdata = load_tickerdata_file(datadir, pair, ticker_interval, timerange=timerange)
File "/Users/creslin/PycharmProjects/freqtrade/freqtrade/optimize/__init__.py", line 84, in load_tickerdata_file
pairdata = trim_tickerlist(pairdata, timerange)
File "/Users/creslin/PycharmProjects/freqtrade/freqtrade/optimize/__init__.py", line 36, in trim_tickerlist
while tickerlist[start_index][0] < start * 1000:
IndexError: list index out of range
""""
"""
2018-05-31 14:08:04,680 - freqtrade.optimize - INFO - Start timerange not in cached data
2018-05-31 14:08:04,680 - freqtrade.optimize - INFO - Download the pair: "ZEN/BTC", Interval: 5m
dumping json to "/Users/creslin/PycharmProjects/freqtrade/freqtrade/tests/testdata/ZEN_BTC-5m.json"
2018-05-31 14:08:08,225 - freqtrade.optimize - INFO - Start timerange unavailable from exchange
"""
* remove obsolete helper functions and make _state a public member.
* remove function assertions
* revert worker() changes
* Update pytest from 3.4.2 to 3.5.0
* Adapt exchange functions to ccxt API
Remove get_market_summaries and get_wallet_health, add exception handling
* Add NetworkException
* Change pair format in constants.py
* Add tests for exchange functions that comply with ccxt
* Remove bittrex tests
* Remove Bittrex and Interface classes
* Add retrier decorator
* Remove cache from get_ticker
* Remove unused and duplicate imports
* Add keyword arguments for get_fee
* Implement 'get_pair_detail_url'
* Change get_ticker_history format to ccxt format
* Fix exchange urls dict, don't need to initialize exchanges
* Add "Using Exchange ..." logging line