Interactive Brokers は、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)
そして、これは私が混乱しているところです。これは、アカウントの値 (宣言の「値: str」) を期待しているようです。これは、まさに私が生成するように求めているものです。次のようなことを言う場所が見つかりません。
myMonies = whateverTheHellGetsTheValue(reqID)
したがって、'myMonies' はアカウントの値を保持し、楽しい道を続けることができます。