qlib高阶应用之财务数据库与自定义表达式

百天计划之22天,关于“AI量化,财富自由与个人成长”。

今天要涉及一些qlib的高级特性的使用: 财务数据库(PIT)以及自定义表达式的注册。

01 qlib之金融财务数据库

qlib的tutorial对于交易数据(日线)讲得比较清楚,就是把一堆标的的时间序列数据,写入到一个文件夹下的csv里,然后使用dump_bin就可以生成qlib格式的数据库。

我把qlib源代码里的scripts目录拷贝到 我的开源项目(gittee ailabx)的core目录下:

dump_bin是处理传统时间序列,dump_pit是处理金融财务数据,两者的输入都是csv格式。

金融数据库的csv格式如下:

需要特别说明的是,data_collector是qlib的作者用来采集试验数据的,可以不用,而且数据质量也不保证。

若要使用,里头的requirements需要单独安装的,里边连电子货币的数据都有:

合并之后,会多一个financial的文件夹如下:

数据查询:

instruments = ["sh600519"]
fields = ["P($$roewa_q)",
          "P(Ref($$roewa_q, 1))",
          "P($$yoyni_q)",
          "$close",
          "P($$roewa_q) * $close"
          ]
# Mao Tai published 2019Q2 report at 2019-07-13 & 2019-07-18
# - http://www.cninfo.com.cn/new/commonUrl/pageOfSearch?url=disclosure/list/search&lastPage=index
data = D.features(instruments, fields, start_time="2019-01-01", end_time="2019-07-19", freq="day")
pprint(data)

查询到的数据由”季度“频次变成按”天“的,方便我们回测时使用:

如下地址有详细的脚本使用说明:

https://github.com/microsoft/qlib/tree/main/scripts/data_collector/pit

02 自定义表达式

qlib内置了很多表达式,但我们经常有需求扩充自己的,这个相对简单:

class Distance(PairOperator):
    """Feature Distance
    Parameters
    ----------
    feature : Expression
        feature instance
    Returns
    ----------
    Expression
        a feature instance with distance
    """
    def _load_internal(self, instrument, start_index, end_index, freq):
        series_left = self.feature_left.load(instrument, start_index, end_index, freq)
        series_right = self.feature_right.load(instrument, start_index, end_index, freq)
        return np.abs(series_left - series_right)

只需要实现_load_internal之后,注册给初始化函数即可:

cls._setup_kwargs.update({"custom_ops": [Diff, Distance]})

03 成长感悟——ABZ的人生规划体系

ABZ适合多数工薪族出身的普通人。

ABZ是呢?

就是人生需要三个计划:

A计划是你的正职,就是你的工作,你谋生的岗位工作,有公司给你发工资。

B计划就是当下流行的“斜杠”计划。即不冒裸辞的风险,又可以探索人生更多的可能性。

Z计划是保底计划,这里特别指被动收入在你收入结构中的占比。

试想,一个人如果失业或者创业失败,但还有两套房可以收租,那么对于他而言,压力还好。这里的房租就是“被动收入”。我之前定制过一个“500万年化10%的大类资产配置计划”。如果达到这样一个金融资产状况,这里的Z计划相当于有一个小财务自由的兜底,那你做很多事情,选择起来是比较有底气的。

Z计划一般就是理财计划为主。

其实在有了一些的储蓄积累之后,多数人都有一些理财计划,收益率高低与冒多少风险的区别罢了。

好的A与B计划,是可以相互支撑的。

李笑来做新东方教英语,业余写了两本教学相关的书,一是单词二是作文。准备B计划的过程可以有效提升在A正职中的能力,A中积累的人气和经验,又可以很好的支撑B计划的展开。这是非常棒的“斜杠”。

有人在互联网公司做运营,然后把运营经验形成教程,在公众号,专栏里输出,与李笑来的例子类似,把正职中的经验形成自媒体时代的产品。

另外还有一种就是海量阅读,比如宋鸿兵写货币战争,涂子沛写大数据,彭小六教阅读等。

B计划之核心还是”独家“技能的产品化。

李笑来的技能是英语培训能力,时间管理,做时间的朋友的思考。

宋鸿兵读过很多财经历史的书以及有讲故事的能力。

彭小六是自己读过的几千本书,总结出的阅读方法论。

有某个技能独家以及成体系的思考,借媒体的杠杆将其产品化。

如果正好有一个独家技能最好,比如算法能力,编程能力,设计,运营,销售等,另外还有一个普适的方法就是“海量阅读”,这个技能对所有人适用

小结:

qlib做了不少贴心的,智能量化里需要使用的功能,值得好好深度挖掘。

中年焦虑与危机,还是由于没有好好规划,ABZ计划适合多数人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI量化投资实验室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值