Python量化因子测算与绘图超详细流程代码.docx

Python量化因子测算与绘图超详细流程代码.docx

Python量化因子测算与绘图超详细流程代码

目录因子测算框架1.预处理股票数据2.指标测算3.测算结果整理4.结果绘图量化因子的测算通常都是模拟交易,计算各种指标,其中:

测算需要用到的第三方库:numpy,pandas,talib绘图需要用到的第三方库:matplotlib,seaborn

其他库随策略的需要额外添加

因子测算框架

这里博主分享自己测算时常使用的流程,希望与大家共同进步!

测算时从因子到收益的整个流程如下:策略(因子组合)-买卖信号-买点与卖点-收益

因此我们在测算时,针对每一个个股:

1.预处理股票数据

首先这里是常用的一个工具导入,包括测算用的库与绘图用的库(含图片中文显示空白解决方案)

#测算用

importnumpyasnp

importpandasaspd

fromcopyimportdeepcopy

fromtqdmimporttqdm

fromdatetimeimportdatetime

importtalib

#绘图用

importmatplotlibasmpl

importmatplotlib.pyplotasplt

importseabornassns

%matplotlibinline

#绘图现实中文

sns.set()

plt.rcParams[figure.figsize]=(20,10)

plt.rcParams[font.sans-serif]=[ArialUnicodeMS]#当前字体支持中文

plt.rcParams[axes.unicode_minus]=False#解决保存图像是负号-显示为方块的问题

importwarnings

warnings.filterwarnings(ignore)

然后是循环读取股票的代码:

importos

defreadfile(path,limit=None):

files=os.listdir(path)

file_list=[]

forfileinfiles:#遍历文件夹

ifnotos.path.isdir(file):

file_list.append(path+/+file)

iflimit:

returnfile_list[:limit]

returnfile_list

stock_dict={}

for_fileintqdm(readfile(../data/stock_data)):

ifnot_file.endswith(.pkl):

continue

#TODO这里可以添加筛选,是否需要将当前的股票添加到测算的股票池中

file_df=pd.read_pickle(_file)

file_df.set_index([日期],inplace=True)

file_df.index.name=

file_df.index=pd.to_datetime(file_df.index)

file_df.rename(columns={开盘:open,收盘:close,最高:high,最低:low,成交量:volume},inplace=True)

stock_code=_file.split(/)[-1].replace(.pkl,)

#TODO这里可以添加日期,用来截取一部分数据

stock_dict[stock_code]=file_df

上面一部分是处理股票数据,处理后的数据都会保存在stock_dict这个变量中,键是股票的代码,值是股票数据

2.指标测算

测算指标时,我们以一只股票为例:

for_index,_stock_dfintqdm(stock_dict.items()):

measure_df=deepcopy(_stock_df)

代码中的:

这里的measure_df即要测算的dataframe数据使用deepcopy是防止测算的过程影响到原始数据

然后我们就可以循环这一个股票的每一行(代表每一天),测算的交易规则如下:

买入规则:买入信号发出当前没有持仓,则买入卖出规则:卖出信号发出当前有持仓,则卖出

#开始测算

trade_record_list=[]

this_trade:dict=None

for_mea_i,_mea_ser

文档评论(0)

1亿VIP精品文档

相关文档