【发布时间】:2020-10-06 12:12:50
【问题描述】:
我正在运行 Python 脚本以从 Interactive Brokers API 收集金融市场数据。连接到 API 后,终端打印出请求的历史数据。如何将数据保存到数据框中而不是在终端中流式传输?
from ibapi.wrapper import EWrapper
from ibapi.client import EClient
from ibapi.contract import Contract
from ibapi.ticktype import TickTypeEnum
class TestApp(EWrapper, EClient):
def __init__(self):
EClient.__init__(self,self)
def error(self, reqId, errorCode, errorString):
print("Error: ", reqId, " ", errorCode, " ", errorString)
def historicalData(self, reqId, bar):
print("historicalData. ", reqId, "Data:", bar.date, "Open:", bar.open, "High:", bar.high, "low:", bar.low, "close:", bar.close, "Volume:", bar.volume, "WAP:", bar.average)
def main():
app = TestApp()
app.connect("127.0.0.1", 7497, 0)
contract = Contract()
contract.symbol = "EUR"
contract.secType = "CASH"
contract.exchange = "IDEALPRO"
contract.currency = "USD"
app.reqHistoricalData(1, contract, "", "1 D", "1 min", "MIDPOINT", 0, 1, False, [])
app.run()
if __name__ == "__main__":
main()
代码的输出打印历史数据的提要,例如:
historicalData. 1 Data: 20200616 11:53:00 Open: 1.125985 High: 1.12601 low: 1.12592 close: 1.12592 Volume: -1 WAP: -1.0
historicalData. 1 Data: 20200616 11:54:00 Open: 1.12592 High: 1.125925 low: 1.12583 close: 1.125885 Volume: -1 WAP: -1.0
historicalData. 1 Data: 20200616 11:55:00 Open: 1.125885 High: 1.126045 low: 1.125865 close: 1.126045 Volume: -1 WAP: -1.0
如何将这些信息存储到数据框中,而不是仅打印在终端中?
【问题讨论】:
标签: python api dataframe algorithmic-trading interactive-brokers