Добавьте дни к дате в цикле, используя Python Bloomberg API - PullRequest
0 голосов
/ 07 ноября 2019

После подключения с помощью API Bloomberg я хотел бы отфильтровать OPT_EXPIRE_DT на даты истечения срока, которые находятся в течение 40 дней после указанной даты.

Я указал 3 даты, для каждой даты есть цикл for, чтобы получить данные ссылки для исторических опционов на эту дату, включая OPT_EXPIRE_DT и OPT_STRIKE_PX. Я хотел бы отфильтровать OPT_EXPIRE_DT, чтобы получить параметры, срок действия которых истекает в течение 40 дней сразу после указанной даты.

dates=[date(2014,12,22),date(2015,1,12),date(2015,1,13)]
for d in dates:
    option_chain=con.bulkref_hist(["HSI Index"],"OPT_CHAIN",[d.strftime("%Y-%M-%D")], ovrds=[("SINGLE_DATE_OVERRIDE",d.strftime("%Y%M%D"))])      
    option_chain_long_data=con.ref(list(option_chain.value),["OPT_STRIKE_PX","OPT_PUT_CALL","OPT_EXPIRE_DT"])
    ocld_filter=option_chain_long_data.copy()
    mask=(ocld_filter.OPT_EXPIRE_DT<(d+timedelta(days=40))&(ocld_filter.OPT_STRIKE_PX>18000)&(ocld_filter.OPT_STRIKE_PX<30000))

Ошибка связана с последней строкой. ошибка типа: TypeError: невозможно сравнить массив dtyped [bool] со скаляром типа [bool]. Однако я не понимаю, почему я сравнивал бы два разных типа, поскольку все они являются типом даты.

...