これからインスピレーションを得て、blpapiwrapper ( https://github.com/alex314159/blpapiwrapper ) を使用して、特定の時間の株価を取得しようとしています ( https://quant.stackexchange.com/questions/35126/price-特定の時間にブルームバーグから):
=BDH("EURGBP Curncy","Last Price","7/13/2017 3:00:00 PM","7/13/2017 3:00:01 PM","BarTp=T,BarSz=1,Fill=P")
再作成しようとすると、15:40:00 から 15:40:01 までの最後の価格ではなく、EOD 価格が取得されます。同じ SEDOL と日付で Excel で同じ構文を使用すると、15:40 の正しい株価が得られます。
bloomberg = BLP()
startdate = datetime.datetime.strptime('2020-01-03 15:40:00', '%Y-%m-%d %H:%M:%S')
enddate = datetime.datetime.strptime('2020-01-03 15:40:01', '%Y-%m-%d %H:%M:%S')
bloomberg.bdh('/SEDOL1/B151P43 Equity', "Last price",startdate, enddate , "BarTp = T, BarSz = 1, Fill = P")
blpapiwrapper の bdh() 関数を変更して周期性を 'INTRADAY' に変更し、'startDate' と 'endDate' の定義に '%H:%M:%S' を含めようとしましたが、うまくいきませんでした。
def bdh(self, strSecurity='SPX Index', strData='PX_LAST', startdate=datetime.date(2014, 1, 1),
enddate=datetime.date(2014, 1, 9), adjustmentSplit=False, periodicity='DAILY'):
request = self.refDataSvc.createRequest('HistoricalDataRequest')
request.append('securities', strSecurity)
if type(strData) == str:
strData = [strData]
for strD in strData:
request.append('fields', strD)
request.set('startDate', startdate.strftime('%Y%m%d'))
request.set('endDate', enddate.strftime('%Y%m%d'))
request.set('adjustmentSplit', 'TRUE' if adjustmentSplit else 'FALSE')
request.set('periodicitySelection', periodicity)
requestID = self.session.sendRequest(request)
blpapiwrapper を使用したソリューションの提案はありますか?