• 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计划适合多数人。

  • 相关阅读:
    大学生川菜网页制作教程 学生HTML静态美食菜品网页设计作业成品 简单网页制作代码 学生美食网页作品免费设计
    78. 子集
    python配置文件json
    子监督学习的知识点总结
    超越时间与人力的软件开发智慧:《人月神话》
    飞塔防火墙之Link Monitor
    多元高斯分布
    HCIA、OSPF笔记
    【HTML——三维立体隧道】(效果+代码)
    day09渗透简单测试流程以及PKI实验
  • 原文地址:https://blog.csdn.net/weixin_38175458/article/details/126465391