stable/freqtrade/optimize
creslin ba31c809cb
avoid list index out of range in trim_tickerlist
trim_tickerlist is called from load_datafile. 
 trim_tickerlist will throw an index out of range error when parsing a json file for a timerange outside its contents.
This patch to load_datafile checks the timerange is in the file or not handles the exception as:
 - first time hit: 
---- Return None existing code will try to download file/timerange from exchange
 - second time hit: 
---- Log that the exchange does not have the timerange requested 
---- Bypass trim_tickerlist function to avoid triggering the index out of range function 

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
"""
2018-05-31 14:33:22 +03:00
..
__init__.py avoid list index out of range in trim_tickerlist 2018-05-31 14:33:22 +03:00
backtesting.py Merge branch 'develop' into feat/objectify-ccxt 2018-05-02 22:49:55 +02:00
hyperopt.py Merge branch 'develop' into feat/objectify-ccxt 2018-05-02 22:49:55 +02:00