盈透证券刚刚发布了他们 API 的 Python 版本。我正在尝试获取数据。
我正在使用“Program.py”中的“示例”,只是试图获取帐户值。我只想知道账户清算价值是多少,然后把它输入python。这是文档。这是创建和发送请求的代码:
app = TestApp()
app.connect("127.0.0.1", 4001, clientId=0)
print("serverVersion:%s connectionTime:%s" % (app.serverVersion(),
app.twsConnectionTime()))
app.reqAccountSummary(9004, 'All', '$LEDGER')
我可以使用 IB 网关,查看正在发送的请求,以及返回到 IB 网关的响应。我无法弄清楚如何将响应输入 Python。如果我正确阅读文档,我会看到:
Receiving
Summarised information is delivered via IBApi.EWrapper.accountSummary and IBApi.EWrapper.accountSummaryEnd
1 class TestWrapper(wrapper.EWrapper):
...
1 def accountSummary(self, reqId: int, account: str, tag: str, value: str,
2 currency: str):
3 super().accountSummary(reqId, account, tag, value, currency)
4 print("Acct Summary. ReqId:", reqId, "Acct:", account,
5 "Tag: ", tag, "Value:", value, "Currency:", currency)
6
...
1 def accountSummaryEnd(self, reqId: int):
2 super().accountSummaryEnd(reqId)
3 print("AccountSummaryEnd. Req Id: ", reqId)
我该怎么办?好像我调用这个函数来获取值,但是这个函数需要我想要返回的值作为输入!我错过了什么!??!
感谢任何人都可以提供的任何帮助。
编辑:
这是我认为的“回调”:
@iswrapper
# ! [accountsummary]
def accountSummary(self, reqId: int, account: str, tag: str, value: str,
currency: str):
super().accountSummary(reqId, account, tag, value, currency)
print("Acct Summary. ReqId:", reqId, "Acct:", account,
"Tag: ", tag, "Value:", value, "Currency:", currency)
这就是我感到困惑的地方。这似乎期望帐户的值(声明中的'value:str'),这正是我要求它产生的。我找不到我会说类似以下内容的地方:
myMonies = whateverTheHellGetsTheValue(reqID)
因此,“myMonies”将保留账户价值,我可以继续我的快乐之路。