pandas_ta来替代talib,计算kdj做全量可转债因子回测

原创文章第601篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

之前说过,多因子模型在量化投资里占据很多比例。

多因子模型核心当然是找到好的因子。

可转债里我们可以把转债背后的正股的基本面数据合成进来。

图片

大家可以看出来,我们的基础因子维度就扩充了不少。

当然还有很多财务指标还没有纳入进来。

可转债还有很多债性指标可以考虑进来。

多表合并的代码:

class DumpQuotes:
    def __init__(self, tb_basic, tb_quotes_list: list):
        self.tb_basic = tb_basic
        self.tb_quotes_list = tb_quotes_list

    def build(self):
        items = list(mongo_utils.get_db()[self.tb_basic].find({}))
        for item in tqdm(items):
            # 导出数据到csv
            main_symbol = item['symbol']


            dfs = []
            for symbol_col, tb_quotes in self.tb_quotes_list.items():
                symbol = item[symbol_col]

                print(symbol)
                filters = {'limit_status': 0, 'symbol': 0, '_id': 0}
                if symbol != main_symbol:
                    filters.update({'close': 0})
                items = mongo_utils.get_db()[tb_quotes].find({'symbol': symbol},
                                                             filters)
                items = list(items)
                if len(items) == 0:
                    print(main_symbol+'没有数据')
                    continue
                df = pd.DataFrame(items)

                df = df.replace(pd.NA, 0)
                # print(df)
                # df.to_csv(DATA_DIR_QUOTES.joinpath('s_{}.csv'.format(symbol).format(symbol)))

                df.set_index('date', inplace=True)


                dfs.append(df)
            if len(dfs) == 0:
                continue
            df_all = pd.concat(dfs, axis=1)
            df_all['symbol'] = main_symbol
            df_all.dropna(inplace=True)
            df_all.to_csv(DATA_DIR_QUOTES.joinpath('{}.csv'.format(main_symbol)), index=True)

代码下载地址:(文末有优惠券和地址,扫码即可)

昨天经管理员提醒,可以使用pandas_ta来替代talib:

import pandas as pd
import pandas_ta as ta

from datafeed.expr_functions import calc_by_symbol


@calc_by_symbol
def ta_kdj(high, low, close, index=0):
    df_kdj = ta.kdj(high, low, close)
    if 0 <= index <= 2:
        name = list(df_kdj.columns)[index]
        return df_kdj[name]
    return None

AI量化实验室——2024量化投资的星辰大海

讲讲quantlab的代码结果:

图片

dataloader从本地目录读取csv集合,并使用因子表达式引擎计算因子。

在论论里发了详细讲解:
Quantlab代码结构讲解:datafeed数据加载与因子表达式。

吾日三省吾身

01

当下内心不平静时,把它用文字写出来。

写着写着你就平静了。

这个世界确实有很多人,他不想要过程,他也不想努力,但他也想要结果。

他不学习量化,但他就想实盘。

他不想理解,他只要策略。

而且还希望策略可以赚钱,而且要持续赚钱。

看到这里,可能你也觉得很奇怪,这怎么可能嘛。

但是,不自觉很多人就是这样,不是吗?

重申一次,量化里最核心的是策略,实盘是重要一环,但你策略都没理明白,实盘的意义是?

而且,现在实盘的接口有的是,你直接上去写不就好了。

然后他又问,你的策略能不能对接实盘。

其实就是改个API的事情。这是关键吗?不是。

人生的意义在于体验生命的过程、享受当下的生活和接纳所有的一切。每个阶段都有不同的美好和精彩,我们要把握当下,坦然接受一切,让生命成为一本精彩的故事书。不念过往,不惧将来,过好这一生。

02 

时间是最好的解药,能解所有的事情。

确实是所有,因为我们一旦出生,就永不停息,直到结束。

无论你是王侯将相,还是贩夫走卒,时间都是一分一秒,不曾多,也不曾少。

但是生命之厚度是不一样的,体验的深度是不一样的。

做时间的朋友,这句话太好了。——做时间的朋友里包含几重奥义:长期主义、复利,被动收入管道等等。

不要急,做正确的事情,等时间的结果。

历史文章:

有些新朋友还不知道星球在哪里,下面是优惠券:

图片

量化私募公司的多因子构建方案(附python代码)

代码发布:quantlabv5.3,可转债所有数据及双低、动量因子策略,单因子分析框架

年化22.8%的单因子分析:基于Alphalens做可转债全市场数据的单因子分析(附python代码+全量数据)

长期年化收益45.9%:兼顾高成长与低波动的趋势轮动策略(附python代码)

AI量化实验室——2024量化投资的星辰大海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI量化投资实验室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值