簡體   English   中英

如何從API Interactive Brokers的ib.reqHistoricalData生成的元組列表中獲取元素

[英]How do I get the elements from list of tuples generated by ib.reqHistoricalData from API Interactive Brokers

Interactive Brokers API為此請求提供了:

spzValue = ib.reqHistoricalData(spx, endDateTime='', durationStr='7200 S', barSizeSetting='1 hour', whatToShow='TRADES', useRTH =False)

變量“ spxValue”的以下輸出:

[BarData(date=datetime.datetime(2019, 7, 19, 20, 0), open=200.59, high=200.7, low=199.69, close=199.76, volume=97, average=200.045, barCount=87), BarData(date=datetime.datetime(2019, 7, 19, 21, 0), open=199.66, high=199.67, low=198.19, close=198.21, volume=369, average=198.969, barCount=322)]

不知何故,我無法從列表中刪除元素,也無法通過以下方式將其轉換為DataFrame:

df = util.df(spzValue)

有人對我如何從“ BarData”列表中選擇特定元素有什么建議嗎? 例如,我希望第一個柱的“關閉”值為199.76。

提前致謝。

看來您在使用ib_insync (而不僅僅是本機IBKR Python API)。

https://github.com/erdewit/ib_insync中有一個接收歷史數據的示例

from ib_insync import *
# util.startLoop()  # uncomment this line when in a notebook

ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)

contract = Forex('EURUSD')
bars = ib.reqHistoricalData(contract, endDateTime='', durationStr='30 D',
        barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)

# convert to pandas dataframe:
df = util.df(bars)

然后,一旦有了數據框,就可以使用iloc訪問第一行,然后使用列名訪問值:

df.iloc[0]['close']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM