5

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' はアカウントの値を保持し、楽しい道を続けることができます。

4

3 に答える 3