使用python从交互式代理获取帐户摘要详细信息

时间:2017-12-07 10:39:02

标签: python interactive-brokers

我有一些基于IB使用python进行自动交易的问题。

我可以访问TWS,但是当我要求帐户摘要时,我无法将它们放入常量变量来使用它,我只接收它们作为打印输出。

这是我的代码:

from ib.ext.Contract import Contract
from ib.ext.Order import Order
from ib.opt import Connection, message

def error_handler(msg):
    """Handles the capturing of error messages"""
    print "Server Error: %s" % msg

def reply_handler(msg):
    """Handles of server replies"""
    print "Server Response: %s, %s" % (msg.typeName, msg)

if __name__ == "__main__":

    tws_conn = Connection.create(port=4096, clientId=150)
    tws_conn.connect()
    tws_conn.registerAll(reply_handler)

    tws_conn.reqAccountSummary(119, "All", "TotalCashValue")
    time.sleep(4)

屏幕上的输出(cmd):

Server Response: accountSummary, <accountSummary reqId=119,
account=DU860294, tag=TotalCashValue, value=980232.77, currency=USD>
Server Response: accountSummary, <accountSummary reqId=119,
account=DUC00074, tag=TotalCashValue, value=610528.18, currency=USD>
Server Response: accountSummaryEnd, <accountSummaryEnd reqId=119>

我需要将所有这些信息都放入变量中,以便在我的程序中使用它。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您也可以通过updateAccountValue事件获取此信息。使用tws_conn.reqAccountUpdates()订阅此活动,您将在

中收到与帐户相关的信息
Cypher

然后你可以过滤像key ==“TotalCashValue”这样的消息,并将值字符串转换为双变量。