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

KeyError: Timestamp('2013-03-31 00:00:00+0000', tz='UTC') #47

Open slavakurilyak opened 6 years ago

slavakurilyak commented 6 years ago

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

{
   "trading": {
      "EXCHANGE": "bitfinex",
      "ASSET": "btc_usd",
      "DATA_FREQ": "daily",
      "HISTORY_FREQ": "1d",
      "CAPITAL_BASE": 10000,
      "BASE_CURRENCY": "usd",
      "START": "2013-03-31",
      "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 19:38:23.703312] 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 19:38:23.703605] INFO: run_algo: Catalyst version 0.5.8
[2018-04-07 19:38:26.703805] INFO: run_algo: running algo in backtest mode
Traceback (most recent call last):
  File "pandas/index.pyx", line 581, in pandas.index.DatetimeEngine.get_loc (pandas/index.c:11479)
  File "pandas/src/hashtable_class_helper.pxi", line 404, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8564)
  File "pandas/src/hashtable_class_helper.pxi", line 410, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8508)
KeyError: 1364688000000000000

During handling of the above exception, another exception occurred:

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 280, in _run
    last_available_session=end
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 251, in __init__
    super(DataPortalExchangeBacktest, self).__init__(*args, **kwargs)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 29, in __init__
    super(DataPortalExchangeBase, self).__init__(*args, **kwargs)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/data/data_portal.py", line 301, in __init__
    if self._first_trading_day is not None else (None, None)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/catalyst/utils/calendars/trading_calendar.py", line 647, in open_and_close_for_session
    sched.at[session_label, 'market_open'].tz_localize('UTC'),
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/pandas/core/indexing.py", line 1665, in __getitem__
    return self.obj.get_value(*key, takeable=self._takeable)
  File "/Users/skurilyak/Envs/cryptocurrency-trading-platform-umgmcl4V/lib/python3.6/site-packages/pandas/core/frame.py", line 1900, in get_value
    return engine.get_value(series.get_values(), index)
  File "pandas/index.pyx", line 98, in pandas.index.IndexEngine.get_value (pandas/index.c:3557)
  File "pandas/index.pyx", line 106, in pandas.index.IndexEngine.get_value (pandas/index.c:3240)
  File "pandas/index.pyx", line 583, in pandas.index.DatetimeEngine.get_loc (pandas/index.c:11566)
KeyError: Timestamp('2013-03-31 00:00:00+0000', tz='UTC')

Data Availability: Catalyst Status

image 2018-04-07 at 12 40 36 pm

I think there's an issue with pytrends, the Google Trends library.

If you are to change the parameter for START to be 2013-03-01, then it works.

treethought commented 6 years ago

This seems to be an issue with catalyst https://github.com/enigmampc/catalyst/issues/276 and https://github.com/enigmampc/catalyst/issues/268. Running the strat with the following JSON produces the same error.

{
   "trading": {
      "EXCHANGE": "bitfinex",
      "ASSET": "btc_usd",
      "DATA_FREQ": "daily",
      "HISTORY_FREQ": "1d",
      "CAPITAL_BASE": 10000,
      "BASE_CURRENCY": "usd",
      "START": "2013-03-31",
      "END": "2018-04-06"
   }
}