1

私は IBPy を初めて使用し、複数のアカウントのアカウント パラメーターを取得する方法を知りたいと思っています。以下のコードは、コマンドラインでの出力のみを提供しますが、それらの情報をデータフレームに保存する方法がわかりませんでした. 関数 updateAccountValue() には、データフレームのインデックスとして使用できる一意の ID がありません。

from ib.opt import Connection, message
import pandas as pd
import time

def error_handler(msg):
    """Handles the capturing of error messages"""
    print "Server Error: %s" % msg

def updateAccount_handler(msg):
    if msg.key in ['AccountType','NetLiquidation']:
        print msg.key, msg.value

if __name__ == "__main__":
    conn = Connection.create(port=7497, clientId = 93)
    conn.connect()

    conn.register(error_handler, 'Error')
    conn.register(updateAccount_handler,message.updateAccountValue)

    # we can do a loop, i am just giving a simple example for 2 accounts
    conn.reqAccountUpdates(1,"Uxxxx008")
    time.sleep(0.5)

    conn.reqAccountUpdates(1,"Uxxxx765")
    time.sleep(0.5)

    conn.disconnect()

出力は次のようになります。

Server Version: 76
TWS Time at connection:20150729 12:46:56 EST
Server Error: <error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:usfuture>
Server Error: <error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:usfuture.us>
Server Error: <error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:usfarm>
Server Error: <error id=-1, errorCode=2106, errorMsg=HMDS data farm connection is OK:ushmds>
AccountType INDIVIDUAL
NetLiquidation 2625.24
AccountType IRA-ROTH NEW
NetLiquidation 11313.83

最終的な目標は、アカウント番号の一意の ID を持つ pandas データフレーム形式にこれらの情報を保存することです。

4

1 に答える 1