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
讲讲quantlab的代码结果:

dataloader从本地目录读取csv集合,并使用因子表达式引擎计算因子。
在论论里发了详细讲解:
Quantlab代码结构讲解:datafeed数据加载与因子表达式。
吾日三省吾身
01
当下内心不平静时,把它用文字写出来。
写着写着你就平静了。
这个世界确实有很多人,他不想要过程,他也不想努力,但他也想要结果。
他不学习量化,但他就想实盘。
他不想理解,他只要策略。
而且还希望策略可以赚钱,而且要持续赚钱。
看到这里,可能你也觉得很奇怪,这怎么可能嘛。
但是,不自觉很多人就是这样,不是吗?
重申一次,量化里最核心的是策略,实盘是重要一环,但你策略都没理明白,实盘的意义是?
而且,现在实盘的接口有的是,你直接上去写不就好了。
然后他又问,你的策略能不能对接实盘。
其实就是改个API的事情。这是关键吗?不是。
人生的意义在于体验生命的过程、享受当下的生活和接纳所有的一切。每个阶段都有不同的美好和精彩,我们要把握当下,坦然接受一切,让生命成为一本精彩的故事书。不念过往,不惧将来,过好这一生。
02
时间是最好的解药,能解所有的事情。
确实是所有,因为我们一旦出生,就永不停息,直到结束。
无论你是王侯将相,还是贩夫走卒,时间都是一分一秒,不曾多,也不曾少。
但是生命之厚度是不一样的,体验的深度是不一样的。
做时间的朋友,这句话太好了。——做时间的朋友里包含几重奥义:长期主义、复利,被动收入管道等等。
不要急,做正确的事情,等时间的结果。
历史文章:
有些新朋友还不知道星球在哪里,下面是优惠券:

代码发布:quantlabv5.3,可转债所有数据及双低、动量因子策略,单因子分析框架
年化22.8%的单因子分析:基于Alphalens做可转债全市场数据的单因子分析(附python代码+全量数据)
更多推荐




所有评论(0)