如何解决有没有办法从交互式经纪人的 TWS API 访问 ESG 数据?
我一直在使用 IBKR 的 TWS 的 Python API,并且知道如何获取基本数据。代码如下。我看不到这有 ESG 评级(公平地说,它不应该因为它不是基本数据),而且我无法弄清楚哪些其他 API 函数可能会获取 ESG 和争议分数。 API 有办法获取这些数据吗?
import threading
import time
from ibapi.client import EClient
from ibapi.contract import Contract
from ibapi.wrapper import EWrapper
import lxml.etree
from bs4 import BeautifulSoup
# This class extends EClient to send messages to TWS
# It also extends EWrapper and Thread to run as a separate thread to get responses from TWS
class IBapi(EWrapper,EClient,threading.Thread):
def __init__(self):
EClient.__init__(self,self)
threading.Thread.__init__(self,target=self.run,daemon=True)
self.data=[None]
def connect(self,clientId,**kwargs):
self.clientId = clientId
super().connect(clientId=clientId,**kwargs)
# Error handling function
def error(self,reqId,errorCode,errorString):
print("error: "," ",errorString)
self.data=[None]
# Inherit and overwrite fundamentalData() function in EWrapper
def fundamentalData(self,reqId: int,data: str):
super().fundamentalData(reqId,data)
self.data[0]=data
#soup = lxml.etree.fromstring(data.encode('utf8'))
#for item in soup.xpath('//IssueID'):
# print(item.attrib['Type'],':',item.text)
def make_contract(ticker):
contract = Contract()
contract.symbol = ticker
contract.secType = 'STK'
contract.exchange = 'SMART'
contract.currency = 'USD'
return contract
app = IBapi()
app.connect(host='127.0.0.1',port=7497,clientId=4534)
# start the thread to listen for responses from TWS
app.start()
time.sleep(1)
# use the EClient to request data from TWS
app.reqFundamentalData(10,make_contract('AAPL'),'ReportSnapshot',[])
time.sleep(1)
# Soupify the XML response
BeautifulSoup(app.data[0],'xml')
在上面的代码中我要求'ReportSnapshot'但实际上已经尝试了所有选项
- 报告快照(公司概览)
- ReportsFinSummary(财务摘要)
- ReportRatios(财务比率)
- ReportsFinStatements(财务报表)
- RESC(分析师估计)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。