データフレームを使用してポートフォリオ情報を保存し、毎分更新したいと考えています。しかし、以下のコードの結果は空です。何か不足していますか?
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.ticktype import TickTypeEnum
import pandas as pd
import time
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
self.all_positions = pd.DataFrame([], columns=['ConID', 'Symbol', 'Quantity', 'Average Cost', 'MarketPrice', 'marketValue', 'unrealizedONL', 'realizedPNL'])
def updatePortfolio(self, contract: Contract, position: float, marketPrice: float, marketValue: float,averageCost: float, unrealizedPNL: float, realizedPNL:float, accountName:str):
super().updatePortfolio(contract, position, marketPrice, marketValue, averageCost, unrealizedPNL, realizedPNL, accountName)
index = str(contract.conId)
self.all_positions.loc[index] = contract.conId, contract.symbol, position, averageCost, marketPrice, marketValue, unrealizedPNL, realizedPNL
def main():
app = IBapi()
app.connect('127.0.0.1', 7497, 0)
app.reqAccountUpdates(True, "XXXXXXXX")
current_positions = app.reqAccountUpdates(True, "XXXXXXX")
app.run()
print(current_positions.to_string())
app.disconnect()
if __name__ == "__main__":
main()