我的开源项目及知识星球

微软的开源量化框架qlib是个不错的项目。代码质量好,工程能力强。

但直接是机器学习导向,后面使用了大量的ymal,导致在学习阶段,定制阶段有些困难。

而且qlib的回测引擎偏弱,不太符合传统的回测系统的习惯,之前已经用自主研发的替代了,这两天直接把数据管理与表达式引擎也拆分出来,所以不用有qlib的依赖了。

但对于qlib还是会持续关注它的进展,它的model zoo里有大量而且还在持续更新的前沿的机器学习模型都很值得关注。

我增强了qlib的表达式引擎。

feature_name = [
('PairSlope($high, $close,18)','RSRS'),
('$close / Ref($close,20) -1 ','20日动量'),
('$20日动量>=0.08','to_buy_momentum'),
('$20日动量<0.0', 'to_sell_momentum'),
('$RSRS>=0.08', 'to_buy_RSRS'),
('$RSRS<0.0', 'to_sell_RSRS'),
('Ref($close,-1)/$close -1', 'label'),
]

df = D.load(codes=['000300.SH', '000905.SH', '399006.SZ'],
feature_name=feature_name)

比如20日动量指标是表达式生成的,后面的字段可以直接使用$20日动量来引用,qlib是从本地加载feature,所以它是做不到的。

 

我把qlib的dataframe的双索引简化了,使用instument,date作为索引,从显示上看是简洁不少,但使用的使用,总要判断index的level,而且loc还无法直接使用,造成麻烦,就使用date作为index就好,而且laebl与feature都是数据标注,不必作区分。

 

新增一个机器学习的策略。

class StrategyMachineLearning(Strategy):
    def __init__(self, name, params={}):
        algo_list = [
            #SelectBySignal(signal_buy=params['signal_buy'],signal_sell=params['signal_sell']),
            SelectTopK(K=params['K'], col=params['sort_by']),
            WeightEqually()
        ]
        super(StrategyMachineLearning, self).__init__(name,algo_list=algo_list)
        self._init_model(params)


    def _init_model(self, params):
        df = params['df']
        from engine.model.gbdt import LGBModel
        m = LGBModel()
        m.fit(df)
        results = m.predict()
        df['pred_score'] = results

 此策略多一个初始化,即如果模型没有训练过,则需要先训练模型,而后使用模型对数据进行预测,生在pred_score这一列,用于策略回测。

这一部分就是机器学习策略的核心,后续交给sklearn、集成学习、pytorch这样的框架来完成。

下一步搞搞集成学习:

图片

 

有人问我,为何重复造轮子?qlib不是很香么。

总体来说,如开篇所言,是的。

之初打算是以qlib平台为基础,自己做扩展就好。

后来遇到的问题是qlib的回测引擎不支持传统策略,要扩展这块不容易。所以就自己写的。而且它的模型与表达式引擎相对独立,本身就容易拆份。剩下的就是数据下载与存储,而我目前更偏重研究,工程上的东西与高频恰恰不是最重要的。

如果,工作量也可以接受,而且本身也是很好的学习的过程,更加重要的是,这件事要做很久,所以越可控越好。

 

故而,有了ailabx这个开源项目和星球。

在准备一门量化投资与机器学习的课,我觉得这很有意义。机器学习的高维统计力,可以给金融这么高大上的行业赋能。

人工智能现在还不能自主参与投资,但若你本身会投资,又懂得借力人工智能,你将无往而不利。

这是“AI量化投资实验室”的初心,项目地址如下,gitee上搜索 ailabx 就可以找到(github上已经有约200个star)

AI量化实验室,专注将前沿人工智能技术(深度学习/强化学习/知识图谱)应用于金融量化投资 。https://gitee.com/ailabx/ailabx

 

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104231
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注