周公恐惧流言日,王莽谦恭未篡时。
1 前言
前文已经分享了很多篇 python 爬虫与数据分析的内容,今天继续给分享python 数据爬虫的内容。本文分享的是抓取和分析特别国债的内容。特别国债顾名思义,是财政部发行的债券,用于特殊用途的超长期债券。目前2024已经发行了多期特别国债,能够在交易所上市的特别国债目前一共有6只。
2 基本信息
按照之前抓取数据的经验,特别国债数据的抓取还是从东方财富网上抓取。如下所示,即24特国01的分时交易信息,可以像股票或者ETF一样进行交易。
# 东方财富网获取
http://quote.eastmoney.com/bond/sh019742.html
标的的交易信息如下图所示,需要抓取的信息有持有到期收益率和当天的收益率波动。
以下是国债的基本信息,债券的名称、发行量、债券期限、债券的期限、付息日期以及票面利率。特别国债的发行单位是财政部,债券价格越高其收益率越低,价格越低收益率越高。发行的价格是100元,正常情况下国债价格=利率*天数+国债发行价。但是债券的利率会受到当前利率影响。如果当前利率以及未来预期的利率高于当前票面利率,那么债券价格就会下行,以调整实际的收益率达到达到当前的利率水平。如果未来利率走低,那么债券价格就会上行,其实际收益率会走低。
通过以上的分析,当前的利率会影响其债券价格,可以利用影响利率高低的因素买卖债券,从中赚取价差。
3 数据抓取
通过 python 抓取数据,还是需要通过 requests 来抓取数据,通过 json 来处理和获取数据。首先,我们需要通过检查浏览器控制台的交互报文,找到两个比较重要的信息,即获取国债基本信息的接口以及国债交易信息的接口。
# 获取国债的基本信息
server = """
http://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_BOND_BS_INFO&filter=(SECUCODE="019752.SH")&pageNumber=1&pageSize=200&
columns=SSDD,SECUCODE,SECURITY_CODE,BOND_NAME_ABBR,BOND_NAME,ISSUE_SCALE,ISSUE_PRICE,BOND_EXPIRE,NEWRATE_REFETENCE,ISSUE_DATE,LISTING_DATE,VALUE_DATE,EXPIRE_DATE,ISSUE_NAME,PAY_INTEREST_WAY,PI_RATE_TYPE,PAY_DAY,CURRENCY,DELIST_DATE,HONOUR_DATE,BOND_TYPE,PAY_INTEREST_TIMES,TRADE_MARKET_CODE,REMAIN_DAY,REMAIN_DAY3,CEASE_DATE,SECURITY_INNER_CODE
"""
# 获取国债交易信息
price_uri = "http://push2.eastmoney.com/api/qt/stock/get?invt=2&fltt=2&secid=1.019752&ut=fa5fd1943c7b386f172d6893dbfba10b&fields=f703,f704,f43,f47,f48"
# 特别国债 24特国01-06 的代码信息
code_list = ["019742", "019744", "019746", "019750", "019752", "019756"]
具体代码如下所示:
需要注意的是,通过两个 api 接口来抓取对应的数据,通过比对字段的值以及网页的内容来判断某个字段的含义,每个字段的含义已经在代码中有所展示。最后通过 PrettyTable 表格化显示国债的数据信息。抓取后的数据信息如下图所示:
4 数据分析
通过抓取特别国债的信息,对比其国债的票面利率以及其到期收益率(YTM)、以及当前的实际利率可以判断其债券有无投资价值,如果即时利率YTM高于当前利率和票面利率,甚至比股票的收益率还要高,那就十分具备投资价值。前段时间国债价格被爆炒,就是大家对经济预期比较悲观,造成了资产荒的局面。预期未来收益率会降低,那么现阶段的特别国债就特别香,于是国债价格就一路飙升。除了直接买卖国债之外,还可以操作债券ETF,相当于是一揽子的国债。
30年国债ETF 511090
十年国债ETF 511260
国债ETF 511010
5 总结
本文通过 python 爬虫抓取债券基本信息和交易信息,分析债券价格的影响因素,为买卖国债提供参考。希望 python 爬虫技术能够帮助自己抓取对比信息,为自己的投资决策提供依据。