インタラクティブブローカーはPythonバージョンのAPIをリリースしました。私はデータを取得しようとしています。IBS APIからのデータをPythonでどのように受け取るのですか?
私は 'Program.py'の 'examples'を使用しており、アカウントの値を取得しようとしています。私はちょうど口座の清算価値が何であるかを知り、それをPythonに取り入れるだけです。これはdocumentation.であり、これは要求を作成して送信するためのコードです:
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)
私はこれをどうしますか?値を取得するためにこの関数を呼び出すようですが、この関数は入力として返される値を必要としています!私は何が欠けているのですか?
誰もが提供できるお手伝いをありがとう。
EDIT:
@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')を期待しているようですが、これはまさに私が作成することを求めているものです。私は、次のようなsomehtingを言うどこで見つけることができません。
myMonies = whateverTheHellGetsTheValue(reqID)
だから、「myMonies」は、アカウントの値を保持するだろう、と私は私の陽気な方法で続けることができます。
Pythonについてのアイデアはありませんが、コールバックのようなJavaのIB API関数では、コールされていない_get_が呼ばれています。おそらくPython APIでも同じです。 – SantiBailors
それは私がちょっと考えていたものですが、どのようにデータを端末に取り込みますか?またはコードに戻る?あなたはどのように応答を得ますか? – lukehawk