Получение позиций вашего портфолио с помощью библиотеки Python ibPy

Я использую ibpy, чтобы получить позиции моего портфеля. Я понимаю, что я могу сделать:

from ib.opt import ibConnection
tws = ibConnection( host = 'localhost',port= 7496, clientId = 123)
tws.reqAccountUpdates(True,'accountnumber')

и тогда я должен использовать updatePortfolio() каким-то образом, но я не знаю как.

Спасибо

2 ответа

tws.reqAccountUpdates(True,'accountnumber') Отправит строку "acctnumber", когда вы, вероятно, подразумевали, что она является переменной. Обратите внимание, что строка, которую я посылаю, является моим действительным (поддельным) номером счета.

Затем вам нужно зарегистрировать обратный вызов для интересующих вас сообщений.

from ib.opt import ibConnection, message

def acct_update(msg):
    print(msg)


con = ibConnection(clientId=1)
con.register(acct_update,
             message.updateAccountValue,
             message.updateAccountTime,
             message.updatePortfolio)
con.connect()
con.reqAccountUpdates(True,'DU000000')

#don't forget to disconnect somehow when done
#con.disconnect()

Есть также reqPositions() который, как следует из названия, дает вам ваши позиции (и только ваши позиции в отличие от предоставления вам много другой информации, а также). Они будут возвращены в message.position Сообщения.

Другие вопросы по тегам