【量化投資工具】抓取滬深股市所有指數關聯的公募基金列表(含ETF、增強、分級等)

轉載請註明公衆號:結丹記事本兒,關注後獲取更多懶人投資工具。

摘要

當我們看中某些個指數時,第一步就是挑選對應的指數基金,那麼如何知道指數對應的ETF基金、增強基金以及其他跟蹤該指數的公募基金呢?再進一步,如果有基金的經理人、規模、年化、Alpha和Beta、誤差率等信息,是不是就能用excel篩選功能快速決策?本文用20行代碼即可實現該功能,數據文件和代碼附在文末。

數據樣例

file file

如何使用

篩選指數代碼

過濾IndexTicker和IndexName

file

篩選規模較大的基金

file

篩選跟蹤誤差較小的基金

file

查看基金類型

通常我們會看到ETF、增強和傳統指數基金三類,可以篩選找到自己中意的

file

代碼實現

主要使用akshare庫來提取指數列表,同時借用了fundsmart的接口來獲取匹配的

import requests
import json
import csv
from multiprocessing.dummy import Pool as ThreadPool
from tqdm import tqdm
import akshare as ak

FUND_URL = "http://www.fundsmart.com.cn/api/fund.list.data.php?d=&t=3&i={}"
stock_df = ak.stock_zh_index_spot()


funds = [x[2:] for x in stock_df['symbol'].to_list()]
def getCoFunds(code):
    return requests.get(FUND_URL.format(code)).json()['list']

with ThreadPool(5) as p:
    r = list(tqdm(p.imap(getCoFunds, funds), total=len(funds)))

with open('全市場指數基金信息.csv', 'w+') as f:
    fieldnames = list(r[0][0].keys())
    writer = csv.DictWriter(f, fieldnames=fieldnames)    
    writer.writeheader()
    for funds in r:
        for fund in funds:
            fund['indexTicker'] = "'" + fund['indexTicker'].zfill(6)
            writer.writerow(fund)

如果您喜歡這篇文章,請點擊右下角再看分享 本文是我公衆號關於量化工具的其中一篇,歡迎關注查閱其他工具和分析方法

本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章