我有一些基于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>
我需要将所有这些信息都放入变量中,以便在我的程序中使用它。
提前致谢。
答案 0 :(得分:0)
您也可以通过updateAccountValue事件获取此信息。使用tws_conn.reqAccountUpdates()订阅此活动,您将在
中收到与帐户相关的信息Cypher
然后你可以过滤像key ==“TotalCashValue”这样的消息,并将值字符串转换为双变量。