从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的一些高级功能:在线任务、高频投资、财务数据库

<think>好的,用户想了解如何安装和使用TushareQlib插件进行量化交易数据分析。首先,我需要回忆这两个工具的基本信息。Tushare是一个金融数据接口库,可以获取票、基金等市场数据。Qlib则是微软开发的量化投资平台,支持从数据处理到模型训练的全流程。 接下来是安装步骤。Tushare可以通过pip直接安装,但需要注册获取token,这可能是个容易出错的地方,要提醒用户注意。Qlib的安装可能更复杂,除了库本身,可能还需要安装依赖项,比如C++编译工具,特别是Windows用户可能会遇到问题。另外,Qlib的插件安装可能需要通过git克隆仓库,然后安装,这部分需要详细说明。 然后是使用部分。Tushare需要初始化设置token,用户可能需要指导如何获取和保存token。获取数据后,用户可能需要保存为CSV或进行实时处理。Qlib的使用涉及数据集的创建、模型训练和回测,需要分步骤说明,可能还需要示例代码帮助用户理解。 用户可能遇到的问题包括安装错误、数据获取失败、模型配置错误等。需要提前想到这些情况,并给出解决建议,比如检查网络、更新依赖库等。 最后,生成相关问题时,要覆盖安装、配置、数据获取、集成使用、回测分析等方面,确保用户后续可能的问题都能得到解答。同时,注意引用提供的参考资料,尤其是Qlib-Server和回测分析的部分,增强回答的可信度。</think>### Tushare & Qlib 插件安装与使用指南 #### 一、Tushare 安装与配置 1. **安装步骤** ```bash pip install tushare ``` 2. **获取API Token** - 访问[Tushare官网](https://tushare.pro)注册账号 - 在个人中心获取`token`(如:`xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`) 3. **初始化设置** ```python import tushare as ts ts.set_token('your_token') # 替换实际token pro = ts.pro_api() ``` 4. **数据获取示例** ```python # 获取票日线数据 df = pro.daily(ts_code='600519.SH', start_date='20200101', end_date='20230101') print(df.head()) ``` #### 二、Qlib 插件集成 1. **核心库安装** ```bash pip install pyqlib ``` 2. **Qlib-Server 部署[^2] ```bash git clone https://github.com/microsoft/qlib cd qlib/scripts python setup_server.py ``` 3. **数据装载示例** ```bash python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn ``` #### 三、量化分析流程 1. **策略回测实现** ```python from qlib.contrib.strategy import TopkDropoutStrategy # 模型训练配置 model_config = { "class": "LGBModel", "module_path": "qlib.contrib.model.gbdt" } ``` 2. **回测结果分析[^3] ```python from qlib.contrib.report import analysis_position analysis_position.report_graph(portfolio_analysis_df) ``` §§常见问题§§ 1. **安装时报错`Microsoft Visual C++ 14.0 required`怎么办?** - 安装[Visual Studio Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) - 或使用预编译包:`pip install pyqlib --no-dependencies` 2. **Tushare获取数据返回`401`错误?** - 检查token是否过期 - 确认账号权限是否满足接口要求 3. **如何将Tushare数据导入Qlib?** ```python from qlib.data import D D.feeder(dump_all=True, provider_uri='tushare_data_path') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI量化投资实验室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值