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

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

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

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

图片

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

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

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

多表合并的代码:

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

讲讲quantlab的代码结果:

图片

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

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

吾日三省吾身

01

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

写着写着你就平静了。

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

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

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

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

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

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

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

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

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

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

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

02 

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

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

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

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

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

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

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

(0)
股市刺客的头像股市刺客
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

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