美文网首页
python量化交易2——用tushare获取指数行情

python量化交易2——用tushare获取指数行情

作者: 德尔璐 | 来源:发表于2019-04-03 15:44 被阅读0次

    一、在cmd中开启MongoDB

    在目录G:\MongoDB\bin的地址栏输入cmd:

    输入mongod.exe --dbpath=G:\mongoDB\data 新开一个cmd,输入mongo.exe

    创建索引:

    输入db.daily.createIndex({'code':1,'date':1,'index':1},{'background':true})  

    代码如下:


    from pymongo import MongoClient

    from pymongo import UpdateOne

    import tushare as ts

    from datetime import datetime

    # 指定数据库的连接,quant_01是数据库名

    DB_CONN = MongoClient('mongodb://127.0.0.1:27017')['quant_01']

    # 从tushare获取日K数据,保存到本地的MongoDB数据库中

    class DailyCrawler:

        def __init__(self):

            """

            初始化

            """

            # 创建daily数据集

            self.daily = DB_CONN['daily']

            # 创建daily_hfq数据集

            self.daily_hfq = DB_CONN['daily_hfq']

        def crawl_index(self, begin_date=None, end_date=None):

            """

            抓取指数的日K数据。

            指数行情的主要作用:

            1. 用来生成交易日历

            2. 回测时做为收益的对比基准

            :param begin_date: 开始日期

            :param end_date: 结束日期

            """

            # 指定抓取的指数列表,可以增加和改变列表里的值

            index_codes = ['000001', '000300', '399001', '399005', '399006']

            # 当前日期

            now = datetime.now().strftime('%Y-%m-%d')

            # 如果没有指定开始,则默认为当前日期

            if begin_date is None:

                begin_date = now

            # 如果没有指定结束日,则默认为当前日期

            if end_date is None:

                end_date = now

            # 按照指数的代码循环,抓取所有指数信息

            for code in index_codes:

                # 抓取一个指数的在时间区间的数据

                df_daily = ts.get_k_data(code, index=True, start=begin_date, end=end_date)

                # 保存数据

                self.save_data(code, df_daily, self.daily, {'index': True})

    if __name__ == '__main__':

        dc = DailyCrawler()

        dc.crawl_index('2019-04-01')


    在jupyter notebook运行的结果:

    相关文章

      网友评论

          本文标题:python量化交易2——用tushare获取指数行情

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