produvia / kryptos

Kryptos AI is a virtual investment assistant that manages your cryptocurrency portfolio
http://twitter.com/kryptos_ai
MIT License
48 stars 8 forks source link

ZeroDivisionError: float division by zero #48

Open slavakurilyak opened 6 years ago

slavakurilyak commented 6 years ago

Running $ strat -f examples/api_example.json with the following parameters (START: 2015-03-01, END: 2018-04-06) gives:

{
   "trading": {
      "EXCHANGE": "bitfinex",
      "ASSET": "btc_usd",
      "DATA_FREQ": "daily",
      "HISTORY_FREQ": "1d",
      "CAPITAL_BASE": 10000,
      "BASE_CURRENCY": "usd",
      "START": "2015-03-01",
      "END": "2018-04-06"
   },
   "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 20:04:27.509285] 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 20:04:27.509584] INFO: run_algo: Catalyst version 0.5.8
[2018-04-07 20:04:30.512407] INFO: run_algo: running algo in backtest mode
[2018-04-07 20:04:31.461912] INFO: exchange_algorithm: initialized trading algorithm in backtest mode
[2018-04-07 20:04:31.574942] INFO: google: Fetching trend data for 2015-03-01 2015-09-01
[2018-04-07 20:04:33.486100] ERROR: google: Retrieved 185 days of trend data
[2018-04-07 20:04:33.486244] INFO: google: Fetching trend data for 2015-09-01 2016-03-01
[2018-04-07 20:04:35.878926] ERROR: google: Retrieved 183 days of trend data
[2018-04-07 20:04:35.879082] INFO: google: Fetching trend data for 2016-03-01 2016-09-01
[2018-04-07 20:04:37.308315] ERROR: google: Retrieved 185 days of trend data
[2018-04-07 20:04:37.308469] INFO: google: Fetching trend data for 2016-09-01 2017-03-01
[2018-04-07 20:04:39.215666] ERROR: google: Retrieved 182 days of trend data
[2018-04-07 20:04:39.215856] INFO: google: Fetching trend data for 2017-03-01 2017-09-01
[2018-04-07 20:04:40.849798] ERROR: google: Retrieved 185 days of trend data
[2018-04-07 20:04:40.849953] INFO: google: Fetching trend data for 2017-09-01 2018-03-01
[2018-04-07 20:04:42.347250] ERROR: google: Retrieved 182 days of trend data
[2018-04-07 20:04:42.347481] INFO: google: Fetching trend data for 2018-03-01 2018-04-06
[2018-04-07 20:04:43.957935] ERROR: google: Retrieved 36 days of trend data
Traceback (most recent call last):
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/bin/strat", line 11, in <module>
    load_entry_point('crypto-trading-platform', 'console_scripts', 'strat')()
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/scripts/build_strategy.py", line 56, in run
    strat.run(live=paper)
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/strategy/strategy.py", line 385, in run
    self.run_backtest()
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/strategy/strategy.py", line 403, in run_backtest
    end=pd.to_datetime(self.trading_info['END'], utc=True),
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 560, in run_algorithm
    stats_output=stats_output
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 342, in _run
    overwrite_sim_params=False,
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 373, in run
    data, overwrite_sim_params
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 330, in run
    data, overwrite_sim_params
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/algorithm.py", line 724, in run
    for perf in self.get_generator():
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/algorithm.py", line 622, in get_generator
    return self._create_generator(self.sim_params)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/algorithm.py", line 593, in _create_generator
    self.initialize(*self.initialize_args, **self.initialize_kwargs)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/algorithm.py", line 457, in initialize
    self._initialize(self, *args, **kwargs)
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/strategy/strategy.py", line 169, in _init_func
    manager.fetch_data()
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/data/manager.py", line 284, in fetch_data
    self.df = self.normalize_data(trend_data)
  File "/Users/skurilyak/dev/produvia/cryptocurrency-trading-platform/crypto_platform/data/manager.py", line 297, in normalize_data
    renorm_factor *= float(last_entry) / float(first_entry)
ZeroDivisionError: float division by zero
treethought commented 6 years ago

dfbfc3d252386d721988775d3ab8a805313db52b should resolve this issue as well