2016-11-17 14 views
0

私はIbPYを使用して財務諸表とともに株式の価格を引き出そうとしています。私はPythonには新しく、IbPy内のいくつかの異なるメソッドを呼び出す複雑さを完全には理解していません。基本データIbPyを使用して

私はSP 500をループして各在庫の入札/取次ぎをするコードを書いた。誰かが財務諸表を引き出す次のステップを見つけ出す手助けをしてくれることを期待していました。

これを行う最善の方法についての考え方はありますか?

from ib.opt import ibConnection, message 
from ib.ext.Contract import Contract 
from ib.ext.EWrapper import EWrapper 
from time import sleep 
import csv 

with open(r'C:\Users\User\folder\sp500-symbol-list.txt') as f: 
reader = csv.reader(f) 
lst = list(reader) 


bid_lst=[] 
ask_lst = [] 

start = -1 

for x in range(len(lst)): 
start = start +1 

    def my_callback_handler(msg): 
    #print(start) 
    inside_mkt_bid = '' 
    inside_mkt_ask = '' 

    if msg.field == 1: 
     inside_mkt_bid = msg.price 
     z = ('bid', inside_mkt_bid) 
     print(z) 
     bid_lst.append(z[1]) 


    elif msg.field == 2: 
     inside_mkt_ask = msg.price 
     k=['ask', inside_mkt_ask] 
     print(k) 
     ask_lst.append(k[1]) 

tws = ibConnection(port=1111, clientId=000) 
tws.register(my_callback_handler, message.tickSize, message.tickPrice) 
tws.connect() 


c = Contract() 
c.m_symbol = lst[start][0] 
c.m_secType = 'STK' 
c.m_exchange = "SMART" 
c.m_currency = "USD" 

print(c.m_symbol) 
tws.reqMktData(1,c,"",False) 
tws.reqFundamentalData(1,c,'ReportsFinStatements') 
sleep(1) 

tws.disconnect() 

答えて

0

無関係のコードがたくさんありますが、基本的なデータコールバックのハンドラを実装していないという問題があります。

from ib.opt import ibConnection, message 
from ib.ext.Contract import Contract 
from time import sleep 

def fundamentalData_handler(msg): 
    print(msg) 

def error_handler(msg): 
    print(msg) 

tws = ibConnection(port=7497, clientId=123) 
tws.register(error_handler, message.Error) 
tws.register(fundamentalData_handler, message.fundamentalData) 
tws.connect() 

c = Contract() 
c.m_symbol = 'AAPL' 
c.m_secType = 'STK' 
c.m_exchange = "SMART" 
c.m_currency = "USD" 

tws.reqFundamentalData(1,c,'ReportsFinStatements') 
sleep(2) 

tws.disconnect() 
+0

ありがとうございました。心から感謝する! – ashap

関連する問題