Я использую ibpy для получения информации о моем портфолио каждые 10 секунд (мне нужна эта информация очень часто), в частности нереализованная информация pnl для каждого контракта. Способ, которым я это делаю:, запрашивающий информацию о портфолио на ibpy, не «обновляя его»
def updatePortfolio(self):
self._portfolio=[]
if self._updated_accounts==False:
print("requesting account updates")
self._tws.reqAccountUpdates(True,'')
sleep(3)
print("requesting account value updates")
self._tws.updateAccountValue()
sleep(3)
print("requesting portfolio updates")
self._tws.updatePortfolio()
sleep(3)
Однако, поскольку я делаю это довольно часто (каждые 10 секунд). Кажется, что информация о портфеле не отправляется обратно, и обычно это приводит к пустому портфолио. Как я могу обеспечить, чтобы я мог запрашивать и обновлять информацию о портфеле, а не его обновление (что означает, что я должен получать полную информацию о портфеле каждый раз, когда я запрашиваю)? Спасибо.
из положения я есть, <позиция счета = ME, контракт =, пос = 1, avgCost = 130777.46>, будущий контракт, как я могу запросить/вычислить текущую рыночную стоимость этого контракта, кажется, что reqcontractdetails не может этого сделать ... –
use 'reqMktData (tickerId, contract," "is isnnnth)' https: // www.interactivebrokers.com/en/software/api/apiguide/java/reqmktdata.htm. Данные будут возвращены в 'message.tickPrice'. Вам также понадобится множитель для фьючерсов. – brian