从asx.com.au中提取数据的python库
pyasx的Python项目详细描述
python库通过未记录的api获取asx库存信息 用于www.ASX.com.au。
主要功能有;
- 在澳大利亚证券交易所上市的公司和证券的完整名单
- 提取详细的公司信息
- 拉动公司监管公告
而pyasx提供定价信息,使用 AlphaVantage是 最新和历史价格数据的更好选择。
注意:这个库使用了来自 asx.com.au网站因此可能会走上谷歌和雅虎金融的道路 因为api被不客气地杀掉了。
安装
通过PIP安装:
$ pip install pyasx
API
- 公司特定数据
- 证券数据
获得上市公司(
调出所有在澳大利亚证券交易所上市的公司的名单。这不包括 公司以外的任何公司,即无EFT/ETP、期权、认股权证等。
示例
>>> import pyasx.data.companies >>> results = pyasx.data.companies.get_listed_companies() >>> print(results, indent=4) [ { "ticker": "MOQ", "name": "MOQ LIMITED" "gics_industry": "Software & Services", }, { "ticker": "1PG", "name": "1-PAGE LIMITED" "gics_industry": "Software & Services", }, { "ticker": "ONT", "name": "1300 SMILES LIMITED" "gics_industry": "Health Care Equipment & Services", }, ... { "ticker": "ZYB", "name": "ZYBER HOLDINGS LTD" "gics_industry": "Software & Services", } ]
获取公司信息
使用给定的ticker符号提取公司信息。这也是 包括 pyasx.data.securities.get_security_info()。
这只对一家公司有效,不会返回信息, 交易所买卖基金、认股权证、指数等,请使用 pyasx.data.securities.get_security_info()
示例
>>> import pyasx.data.companies >>> results = pyasx.data.companies.get_company_info('CBA') >>> print(results, indent=4) { "ticker": "CBA", "name": "COMMONWEALTH BANK OF AUSTRALIA.", "name_short": "COMMONWEALTH BANK.", "gics_sector": "Financials", "gics_industry": "Banks", "principal_activities": "Banking, financial and related services.", "website": "http://www.commbank.com.au/", "mailing_address": "Ground Floor, Tower 1, 201 Sussex Street, SYDNEY, NSW, AUSTRALIA, 2000", "phone_number": "(02) 9378 2000", "fax_number": "(02) 9118 7192", "registry_name": "LINK MARKET SERVICES LTD", "registry_phone_number": "1800 022 440", "listing_date": datetime.datetime(1997, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "delisting_date": null, "foreign_exempt": false, "products": [ "shares", "hybrid-securities", "options", "warrants" ], "primary_share": { "ticker": "CBA", "type": "Ordinary Fully Paid", "isin": "AU000000CBA7", "open_price": 74.1, "last_price": 72.81, "offer_price": 72.92, "bid_price": 72.8, "last_trade_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "average_daily_volume": 2610218, "day_high_price": 74.16 "day_low_price": 72.81, "day_change_price": -2.06, "day_change_percent": "-2.751%", "day_volume": 3617914, "prev_day_close_price": 74.87, "prev_day_change_percent": "-1.201%", "year_open_price": 75.27, "year_high_price": 87.74, "year_high_date": datetime.datetime(2017, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "year_low_price": 72.81, "year_low_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "year_change_price": -2.46, "year_change_percent": "-3.268%", "annual_dividend_yield": 5.91, "securities_outstanding": 1752728198, "market_cap": 131226760184, "pe": 12.68, "eps": 5.7442, "is_suspended": false, "indices": [ { "code": "XTL", "name": "S&P/ASX 20" }, ... ] }, "last_dividend": { "type": "", "amount_aud": "", "franked_percent": "", "created_date": "", "ex_date": "", "record_date": "", "books_close_date": "", "payable_date": "", "comments": "" }, }
获取公司公告()
用给定的 股票代码。这只适用于公司,不适用于 其他证券。
note这目前只吸引20个最新的market sensitive 公告。
示例
>>> import pyasx.data.companies >>> results = pyasx.data.companies.get_company_announcements('CBA') >>> print(results, indent=4) [ { "num_pages": 106, "title": "CommBank PERLS X Capital Notes - Replacement Prospectus", "url": "http://www.asx.com.au/asxpdf/20180315/pdf/43sg1vw9rn1yl1.pdf", "release_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "size": "4.7MB", "document_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)) }, { "num_pages": 185, "title": "2018 Half Year Results Profit Announcement", "url": "http://www.asx.com.au/asxpdf/20180207/pdf/43rd1t86s7g1ll.pdf", "release_date": datetime.datetime(2018, 3, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "size": "19.9MB", "document_date": datetime.datetime(2018, 3, 1, 0, 0, tzinfo=tzoffset(None, 36000)) }, ... ]
[删除:获取已上市证券]
注意由于asx.com.au上的中断更改,此功能已被禁用
[删除:提取ASX上列出的所有证券的列表。]
示例
>>> import pyasx.data.securities >>> results = pyasx.data.securities.get_listed_securities() >>> print(results, indent=4) [ { "isin": "AU000000IJH2", "ticker": "IJH", "name": "ISHARES MID-CAP ETF", "type": "CHESS DEPOSITARY INTERESTS 1:1 ISHS&P400" }, { "isin": "AU000000IJH2", "ticker": "MOQ", "name": "MOQ LIMITED", "type": ORDINARY FULLY PAID" }, { "isin": "AU000000IJH2", "ticker": "MOQAI", "name": "MOQ LIMITED", "type": "OPTION EXPIRING VARIOUS DATES EX VARIOUS PRICES" }, ... { "isin": "AU0000ZYBAI9", "ticker": "ZYBAI", "name": "ZYBER HOLDINGS LTD", "type": "OPTION EXPIRING VAR DATES RESTRICTED VAR PRICES" } ]
获取安全信息
使用给定的股票代号提取证券上的定价信息。 这可以用于任何类型的上市证券,如公司股票, 债券、ETF等
示例
>>> import pyasx.data.securities >>> results = pyasx.data.securities.get_security_info('CBAPC') >>> print(results, indent=4) { "ticker": "CBAPC", "type": "Cap Note 3-bbsw+3.80% Perp Non-cum Red T-12-20", "isin": "AU0000CBAPC9", "open_price": 100.4, "last_price": 100.61, "offer_price": 100.66, "bid_price": 100.6, "last_trade_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "average_daily_volume": 12781, "day_low_price": 100.4, "day_high_price": 100.66, "day_change_price": 0.18, "day_change_percent": "0.179%", "day_volume": 18446, "prev_day_close_price": 100.43, "prev_day_change_percent": "-0.366%", "year_open_price": 104.18, "year_high_price": 100.66, "year_high_date": datetime.datetime(2017, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "year_low_price": 0, "year_low_date": datetime.datetime(2018, 5, 1, 0, 0, tzinfo=tzoffset(None, 36000)), "year_change_price": -3.57, "year_change_percent": "-3.427%", "annual_dividend_yield": 3.89, "securities_outstanding": 1752728198, "market_cap": 131226760184, "pe": 0, "eps": 0, "is_suspended": false, "indices": [] }
单元测试
单元测试可以通过执行test.py文件来运行,就像这样;
python3 tests.py
更改日志
2.2
- 由于中断而禁用pyasx.data.securities.get_listed_securities() 在asx.com.au上更改
- 修复pyasx.data.securities.get_security_info()单元测试中的错误
2.1.7
- 需求安全修补程序
2.1.5
- 文档更新
2.1.1
- 小错误修复
2.1.0
- 在API 404S时引发UnknownTickerException
2.0.0
- 现在返回的日期是datetime对象,而不是字符串
- 更好的异常处理
1.1.0
- 优化的get_company_info()只使用一个API调用
- 将gics§or字段更改为gics_industry和gics_sector
- 文档更新
1.0.2
- 错误修复-dist中缺少配置文件
1.0.1
- 错误修复-pypi上的pypandoc依赖性失败
1.0
- 初始版本