如何使用Python通过IBAPI从TWS导入基本数据

时间:2019-02-03 01:38:46

标签: python-3.x

我想使用Eclient类的reqFundamentalData()方法从交易平台请求股票基本数据(例如财务报表),但未成功。

我是IBAPI的新手,一直在尝试使用Python从TWS导入库存基本数据。我可以确定连接成功,因为我可以从应用程序中请求ContractDetails。但是后来,reqfundamentaldata()方法不起作用了。

from ibapi.client import EClient
from ibapi.wrapper import EWrapper


class MyWrapper(EWrapper):

    def nextValidId(self, orderId:int):
        print("setting nextValidOrderId: %d", orderId)
        self.nextValidOrderId = orderId
        # start program here or use threading
        app.reqContractDetails(4444, contract)
        app.reqFundamentalData(4444, contract, "ReportsFinSummary", [])

def contractDetails(self, reqId, contractDetails):
    print(reqId, contractDetails.contract)# my version doesnt use summary

    def contractDetailsEnd(self, reqId):
         print("ContractDetailsEnd. ", reqId)
         # this is the logical end of your program
         app.disconnect() 

    def error(self, reqId, errorCode, errorString):
         print("Error. Id: " , reqId, " Code: " , errorCode , " Msg: " , 
         errorString)


 wrapper = MyWrapper()
 app = EClient(wrapper)
 app.connect("127.0.0.1", 7496, clientId=123)
  print("serverVersion:%s connectionTime:%s" % (app.serverVersion(), 
  app.twsConnectionTime()))

  from ibapi.contract import Contract
  contract = Contract()
  contract.symbol = "IBKR"
  contract.secType = "STK"
  contract.currency = "USD"
  contract.exchange = "ISLAND"

  app.run()

结果: serverVersion:148 connectionTime:b'20190203 09:03:21 HKT' 设置nextValidOrderId:%d 1 错误。 ID:-1代码:2104消息:市场数据场连接正常:usfarm.nj 错误。 ID:-1代码:2104消息:市场数据场连接正常:hfarm 错误。 ID:-1代码:2104消息:市场数据场连接正常:美国 错误。 ID:-1代码:2106消息:HMDS数据场连接正常:hkhmds 错误。 ID:-1代码:2106消息:HMDS数据场连接正常:fundfarm 错误。 ID:-1 Code:2106消息:HMDS数据场连接正常:ushmds 4444 43645865,IBKR,STK ,, 0.0,,ISLAND,IEX,USD,IBKR,IBKR,False ,,组合: ContractDetailsEnd。 4444

以退出代码0结束的过程

0 个答案:

没有答案