IB API を使用してライブ価格データをストリーミングしており、分析のためにデータフレームに入れたいと考えています。私のデータは、タイムスタンプなしでライブ ストリーミングされている価格で構成されています。
自動的に追加される行番号を使用して新しい行を作成し、価格列に価格を挿入する必要があると思います。
私はデータフレームを定義し、次のようにどこに行くべきかを価格に伝えようとしました:
def tick_df(self, reqId,
contract): # this stores price dataframe by creating an empty dataframe and setting the index to the time column
self.bardata[reqId] = pd.DataFrame(columns=['index', 'price'])
self.reqMktData(reqId, contract, "", False, False, [])
self.bardata[reqId].index = [x for x in range(1, len(self.bardata[reqId].values) + 1)]
return self.bardata[reqId]
def tickPrice(self, reqId, tickType, price, attrib): # this function prints the price
if tickType == 2 and reqId == 102:
self.bardata[reqId].loc[self.bardata[reqId].index] = price
ここに似た方法論を使用しています ( https://github.com/PythonForForex/Interactive-brokers-python-api-guide/blob/master/GOOG_five_percent.py )。ただし、価格をストリーミングしているだけなので、タイムスタンプを使用して新しい行を作成することはできません。