美文网首页
【量化投资工具】抓取沪深股市所有指数关联的公募基金列表(含ETF

【量化投资工具】抓取沪深股市所有指数关联的公募基金列表(含ETF

作者: 结丹记事本儿 | 来源:发表于2020-05-14 17:44 被阅读0次

    转载请注明公众号:结丹记事本儿,关注后获取更多懒人投资工具。

    摘要

    当我们看中某些个指数时,第一步就是挑选对应的指数基金,那么如何知道指数对应的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 发布

    相关文章

      网友评论

          本文标题:【量化投资工具】抓取沪深股市所有指数关联的公募基金列表(含ETF

          本文链接:https://www.haomeiwen.com/subject/lekxohtx.html