Получение позиций вашего портфолио с помощью библиотеки 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
Сообщения.