bpsmith / tia

Toolkit for integration and analysis
BSD 3-Clause "New" or "Revised" License
404 stars 165 forks source link

New issue trying to request intraday data #12

Open summerside182 opened 7 years ago

summerside182 commented 7 years ago

It seems like something has change on BBG side, the wrapper doesn't work intraday anymore. I am getting this `import datetime as dt

from tia.bbg import LocalTerminal

sid = 'SPX Index' event = 'TRADE' start = dt.datetime.combine(dt.date.today(), dt.time(9, 30))-dt.timedelta(days=360) end = dt.datetime.combine(dt.date.today(), dt.time(23, 59)) f = LocalTerminal.get_intraday_bar(sid, event, start, end, interval=1).as_frame()`

getting the following error

Traceback (most recent call last):
  File "C:\Anaconda2\lib\site-packages\IPython\core\formatters.py", line 222, in catch_format_error
    r = method(self, *args, **kwargs)
  File "C:\Anaconda2\lib\site-packages\IPython\core\formatters.py", line 699, in __call__
    printer.pretty(obj)
  File "C:\Anaconda2\lib\site-packages\IPython\lib\pretty.py", line 383, in pretty
    return _default_pprint(obj, self, cycle)
  File "C:\Anaconda2\lib\site-packages\IPython\lib\pretty.py", line 503, in _default_pprint
    _repr_pprint(obj, p, cycle)
  File "C:\Anaconda2\lib\site-packages\IPython\lib\pretty.py", line 694, in _repr_pprint
    output = repr(obj)
  File "C:\Anaconda2\lib\site-packages\pandas\core\base.py", line 63, in __repr__
    return str(self)
  File "C:\Anaconda2\lib\site-packages\pandas\core\base.py", line 43, in __str__
    return self.__bytes__()
  File "C:\Anaconda2\lib\site-packages\pandas\core\base.py", line 55, in __bytes__
    return self.__unicode__().encode(encoding, 'replace')
  File "C:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 534, in __unicode__
    line_width=width, show_dimensions=show_dimensions)
  File "C:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 1486, in to_string
    show_dimensions=show_dimensions)
  File "C:\Anaconda2\lib\site-packages\pandas\core\format.py", line 378, in __init__
    self._chk_truncate()
  File "C:\Anaconda2\lib\site-packages\pandas\core\format.py", line 450, in _chk_truncate
    frame.iloc[-row_num:, :]))
  File "C:\Anaconda2\lib\site-packages\pandas\tools\merge.py", line 835, in concat
    return op.get_result()
  File "C:\Anaconda2\lib\site-packages\pandas\tools\merge.py", line 1025, in get_result
    concat_axis=self.axis, copy=self.copy)
  File "C:\Anaconda2\lib\site-packages\pandas\core\internals.py", line 4474, in concatenate_block_managers
    for placement, join_units in concat_plan]
  File "C:\Anaconda2\lib\site-packages\pandas\core\internals.py", line 4579, in concatenate_join_units
    concat_values = com._concat_compat(to_concat, axis=concat_axis)
  File "C:\Anaconda2\lib\site-packages\pandas\core\common.py", line 2716, in _concat_compat
    return _concat_compat(to_concat, axis=axis)
  File "C:\Anaconda2\lib\site-packages\pandas\tseries\common.py", line 290, in _concat_compat
    for x in to_concat]),
  File "C:\Anaconda2\lib\site-packages\pandas\util\decorators.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "C:\Anaconda2\lib\site-packages\pandas\tseries\index.py", line 1835, in tz_localize
    new_dates = tslib.tz_convert(self.asi8, 'UTC', self.tz)
  File "pandas\tslib.pyx", line 3534, in pandas.tslib.tz_convert (pandas\tslib.c:60687)
  File "C:\Anaconda2\lib\site-packages\blpapi\datetime.py", line 73, in __eq__
    return self.getOffsetInMinutes() == other.getOffsetInMinutes()
AttributeError: 'str' object has no attribute 'getOffsetInMinutes'
leolle commented 7 years ago

I have the same problem, please take a look.

summerside182 commented 7 years ago

intraday timestamp seems to be localize now instead of being tz naive. The fix should be easy by changing pd.tz_localise() to pd.tz_convert().

leolle commented 7 years ago

@summerside182 changing pd.tz_localise() to pd.tz_convert() from where? in tia//bbg/v3api.py?

leolle commented 7 years ago

@summerside182 Hi, can you tell me how you solve this issue? thank you.

summerside182 commented 7 years ago

Hey Leolle, I looked at the code and can't figure it out. I am calling the data directly from the API until TIA is fixed. normally, a full deploy on bloomberg side takes 4 weeks so I guess we will see more and more people asking to fix the problem... will see.