0

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 )。ただし、価格をストリーミングしているだけなので、タイムスタンプを使用して新しい行を作成することはできません。

4

1 に答える 1