从tushare建立自己的A股 qlib数据库

百天计划之第24天,关于“智能量化,财富自由与个人成长”。

继续昨天基于tushare和mongo,玩转qlib自带的数据库,继续构建我们的数据库。

01 qlib的dump_bin

三种模式:DumpDataAll,就是完全重建,这个很好理解,相当于把原来的抹掉。DumpDataUpdate,其实是追加(日期必须在之后)(已存在的date数据不修改),DumpDataFix就是修改(不存在的date不追加)。

update和fix模式有点互补的意味。

一般历史数据一次性创建出来,然后连续往后的日期update(追加)即可。

02  qlib的股票数据normalize

与我们通常的后复权不同,不过这个差异点留着后续再说。

03 财务数据

tushare取财务指标:

把查询出来的财务指标变成pit的导入格式:

def get_fin_from_mongo(symbol, indicators, start_report_date=None):
    query = {'code': symbol}
    if start_report_date:
        query['end_date'] = {'$gte': start_report_date}

    filters = {'date': 1, 'period': 1, '_id': 0}
    for ind in indicators:
        filters[ind] = 1
    items = get_db()['stock_fin'].find(query, filters)
    items = list(items)

    csv = []
    for item in items:
        for ind in indicators:
            csv.append({'date':item['date'], 'period':item['period'], 'field':ind, 'value':item[ind], 'symbol':symbol})

    df = pd.DataFrame(csv)
    return df

正则化:

# 正则化
dt = df["period"].apply(
    lambda x: (
            pd.to_datetime(x) + pd.DateOffset(days=45)
    ).date()
)
df["date"] = df["date"].fillna(dt.astype(str))

df["period"] = pd.to_datetime(df["period"])
#df["period2"] = pd.to_datetime(df["period"])
df["period"] = df["period"].apply(
    lambda x: x.year * 100 + (x.month - 1) // 3 + 1
)

核心就是“报告期”period变成“年第X期”的格式:

整理好格式后,dump倒是比较简单:

def dump_csv_to_pit():
    dump = DumpPitData(csv_path=PIT_CSVS, qlib_dir=CN_DATA_TEST)
    dump.dump()

到目前为止,我们完成了茅台的时间序列数据,以及财务指标数据从tushare采集入mongo,而后从mongo读取并整合到qlib的数据库中。

主要的时间花在数据整理上,如同传统机器学习的项目一样,数据整理与特征工程本身就是花费大量时间的地方。

后续可以把这个机制写成定时任务,定期增量更新数据。

成长感悟:

和很多人的很多事比起来,我们应该珍惜已经拥有的。

没有什么东西是理所应当,像健康,自由,至少有一份稳定的工作等。

常怀感恩的心。

努力活在当下,尽量规避风险没有问题。

做好自己的ABZ计划,谋事在人,成事在天,很多事情不要勉强也勉强不来,尽力而为然后顺其自然就好。

春种秋收是自然规律,你现在的生活是三年前的决策决定的。而你想要的生活,需要今天去努力。没有什么好的改变会在瞬间发生,都是潜移默化,量化到质变的结果。读一本书有多少用处,感觉不出来,但你读了很多本书之后,你的认知水平就上了一个台阶。所以做“时间的朋友”,“有复利”的东西。

阅读,运动,成体系的投资理财。

假设回到大学毕业,告诉年轻时的自己(不能透露未来信息,比如房价,茅台和腾讯股票之类的未来信息),那站在今天的认知水平上,我们会告诉自己什么呢?

财富管理(理财)或者说财富思维。

海量阅读并快速建立认知体系。

学会写作与系统化表达。

最近的文章:
qlib高阶应用之财务数据库与自定义表达式

Qlib的一些高级功能:在线任务、高频投资、财务数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI量化投资实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值