equal_weighted_factor
  • fxdayu_alphaman.factor.admin.Admin.equal_weighted_factor(factors_dict)

简要描述:

  • 将若干个因子等权重合成新因子

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。

返回参数说明:

参数名 类型 说明
weighted_factor MultiFactor object 合成后的因子。该对象包含三个属性:
(1)"name":合成的因子名称(str)
(2)"multifactor_value":合成因子值(MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值)
(3)"weight": 加权方式 (str)
ic_cov_weighted_factor
  • fxdayu_alphaman.factor.admin.Admin.ic_cov_weighted_factor(*args, **kwargs)

简要描述:

  • 根据Sample协方差矩阵估算方法得到的因子权重,将若干个因子按该权重加权合成新因子

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
ic_weight_df pandas.Dataframe 使用Sample 协方差矩阵估算方法得到的因子权重(pd.Dataframe),可通过Admin.get_ic_weight_df 获取。
索引(index)为datetime,columns为待合成的因子名称,与factors_dict一致。

返回参数说明:

参数名 类型 说明
weighted_factor MultiFactor object 合成后的因子。该对象包含三个属性:
(1)"name":合成的因子名称(str)
(2)"multifactor_value":合成因子值(MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值)
(3)"weight": 加权方式 (str)
ic_shrink_cov_weighted_factor
  • fxdayu_alphaman.factor.admin.Admin.ic_shrink_cov_weighted_factor(*args, **kwargs)

简要描述:

  • 根据 Ledoit-Wolf压缩的协方差矩阵估算方法得到的因子权重,将若干个因子按该权重加权合成新因子

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
ic_weight_shrink_df pandas.Dataframe 使用Ledoit-Wolf 压缩的协方差矩阵估算方法得到的因子权重(pd.Dataframe),可通过 Admin.get_ic_weight_shrink_df获取。
索引(index)为datetime,columns为待合成的因子名称,与factors_dict一致。

返回参数说明:

参数名 类型 说明
weighted_factor MultiFactor object 合成后的因子。该对象包含三个属性:
(1)"name":合成的因子名称(str)
(2)"multifactor_value":合成因子值(MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值)
(3)"weight": 加权方式 (str)
get_factors_ic_df
  • fxdayu_alphaman.factor.admin.Admin.get_factors_ic_df(*args, **kwargs)

简要描述:

  • 获取指定周期下的多个因子ic值序列矩阵

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
pool list 股票池范围,如:["000001.XSHE","600300.XSHG",......]
start datetime 起始时间
end datetime 结束时间
periods tuple 指定持有周期,周期值类型为(int)
quantiles int 根据因子大小将股票池划分的分位数量
price pandas.Dataframe 包含了pool中所有股票的价格时间序列,索引(index)为datetime,columns为各股票代码,与pool对应。

返回参数说明:

参数名 类型 说明
ic_df_dict dict of pd.DataFrame 指定的不同周期下的多个因子ic值序列矩阵所组成的字典(dict), 键为周期(int),值为因子ic值序列矩阵(ic_df)。如:{1:ic_df_1,5:ic_df_5,10:ic_df_10}
ic_df(ic值序列矩阵) 类型pd.DataFrame,索引(index)为datetime,columns为各因子名称,与factors_dict中的对应

返回参数示例:

  • ic_df:
date         BP       CFP         EP      ILLIQUIDITY     REVS20     SRMI      VOL20
2016-06-24  0.165260    0.002198    0.085632    -0.078074   0.173832    0.214377    0.068445
2016-06-27  0.165537    0.003583    0.063299    -0.048674   0.180890    0.202724    0.081748
2016-06-28  0.135215    0.010403    0.059038    -0.034879   0.111691    0.122554    0.042489
2016-06-29  0.068774    0.019848    0.058476    -0.049971   0.042805    0.053339    0.079592
2016-06-30  0.039431    0.012271    0.037432    -0.027272   0.010902    0.077293   -0.050667
get_ic_weight_df
  • fxdayu_alphaman.factor.admin.Admin.get_ic_weight_df(*args, **kwargs)

简要描述:

  • 输入ic_df(ic值序列矩阵),指定持有期和滚动窗口,给出相应的多因子组合权重(样本协方差估计)

参数:

参数名 必选 类型 说明
ic_df pandas.Dataframe ic值序列矩阵,索引(index)为datetime,columns为各因子名称。
holding_period int 持有周期
rollback_period int 滚动窗口,即计算每一天的因子权重时,使用了之前rollback_period下的IC时间序列来计算IC均值向量和IC协方差矩阵。

返回参数说明:

参数名 类型 说明
ic_weight_df pandas.Dataframe 使用Sample协方差矩阵估算方法得到的因子权重,索引(index)为datetime,columns为待合成的因子名称。
get_ic_weight_shrink_df
  • fxdayu_alphaman.factor.admin.Admin.get_ic_weight_shrink_df(*args, **kwargs)

简要描述:

  • 输入ic_df(ic值序列矩阵),指定持有期和滚动窗口,给出相应的多因子组合权重( Ledoit-Wolf压缩的协方差估计)

参数:

参数名 必选 类型 说明
ic_df pandas.Dataframe ic值序列矩阵,索引(index)为datetime,columns为各因子名称。
holding_period int 持有周期
rollback_period int 滚动窗口,即计算每一天的因子权重时,使用了之前rollback_period下的IC时间序列来计算IC均值向量和IC协方差矩阵。

返回参数说明:

参数名 类型 说明
ic_weight_shrink_df pandas.Dataframe 使用Ledoit-Wolf压缩方法得到的因子权重,索引(index)为datetime,columns为待合成的因子名称。
orthogonalize
  • fxdayu_alphaman.factor.admin.Admin.orthogonalize(*args, **kwargs)

简要描述:

  • 因子间存在较强同质性时,使用施密特正交化方法对因子做正交化处理,用得到的正交化残差作为因子,默认对Admin里加载的所有因子做调整

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
standardize_type "rank"/"z_score" 标准化方法,有"rank"(排序标准化),"z_score"(z-score标准化)两种。

返回参数说明:

参数名 类型 说明
factors_dict(new) dict 正交化处理后所得的一系列新因子
calculate_performance
  • fxdayu_alphaman.factor.admin.Admin.calculate_performance(*args, **kwargs)

简要描述:

  • 计算因子(含组合因子)的表现

参数:

参数名 必选 类型 说明
factor_name string 因子名称
factor_value MultiIndex Series 因子值,格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
start datetime 回测起始时间
end datetime 回测结束时间
periods tuple 持有时间
quantiles int 划分分位数
price pandas.Dataframe 计算绩效时用到的的个股每日价格,通常为收盘价(close)。索引(index)为datetime,columns为各股票代码。

参数示例:

  • price:
   datetime          sh600011  sh600015  sh600018  sh600021  sh600028
2014-10-08 15:00:00   18.743    17.639     NaN      7.463     9.872
2014-10-09 15:00:00   18.834    17.556     NaN      7.536     9.909
2014-10-10 15:00:00   18.410    17.597     NaN      7.580     9.835
2014-10-13 15:00:00   18.047    17.515     NaN      7.536     9.685
2014-10-14 15:00:00   18.773    17.494     NaN      7.433     9.704
2014-10-15 15:00:00   18.561    17.597     NaN      7.477     9.704
2014-10-16 15:00:00   18.501    17.659     NaN      7.448     9.685
2014-10-17 15:00:00   18.349    17.535     NaN      7.272     9.611
2014-10-20 15:00:00   18.319    17.618     NaN      7.360     9.629

返回参数说明:

参数名 类型 说明
performance Performance object 该因子的表现,包含"factor_name", "holding_return", "mean_return_by_q", "ic", "mean_ic_by_M", "mean_ic"这些属性。
rank_performance
  • fxdayu_alphaman.factor.admin.Admin.rank_performance(*args, **kwargs)

简要描述:

  • 将若干Performance对象所组成的列表(factors_performance)按指定持有期(target_period)下的"mean_ic"排序,默认为降序

参数:

参数名 必选 类型 说明
factors_performance list 若干Performance object 所组成的列表。
Performance object 包含"factor_name", "holding_return", "mean_return_by_q", "ic", "mean_ic_by_M", "mean_ic"这些属性。
target_period int 指定持有期
ascending bool 是否升序。默认False(降序)

返回参数说明:

参数名 类型 说明
ranked_factors_performance list 排序后的Performance object所组成的列表。
show_factors_performance
  • fxdayu_alphaman.factor.admin.Admin.show_factors_performance(*args, **kwargs)

简要描述:

  • 批量计算factors_dict中所有因子的表现。

参数:

参数名 必选 类型 说明
factors_dict dict 若干因子组成的字典(dict),形式为:
{"factor_name_1":factor_1,"factor_name_2":factor_2}
每个因子值格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。
start datetime 回测起始时间
end datetime 回测结束时间
periods tuple 持有时间
quantiles int 划分分位数
price pandas.Dataframe 计算绩效时用到的的个股每日价格,通常为收盘价(close)。索引(index)为datetime,columns为各股票代码。
parallel boolean 是否执行并行计算,默认不执行。 如需并行计算需要在jupyter notebook下启动工作脚本。

返回参数说明:

参数名 类型 说明
factors_performance list 因子的表现 (Performance object)所组成的列表(list),列表里每个元素为因子的表现 (Performance object),包含"factor_name", "holding_return", "mean_return_by_q", "ic", "mean_ic_by_M", "mean_ic"这些属性。
instantiate_factor_and_get_factor_value
  • fxdayu_alphaman.factor.admin.Admin.instantiate_factor_and_get_factor_value(*args, **kwargs)

简要描述:

  • 计算某个因子指定时间段的因子值。

参数:

参数名 必选 类型 说明
factor_name string 因子名称
pool list 股票池范围,如:["000001.XSHE","600300.XSHG",......]。
start datetime 起始时间
end datetime 结束时间
Factor object 因子。可以输入一个设计好的Factor类来执行计算
data 不定 计算因子需用到的数据,根据计算需求自行指定。
data_config 不定 在data参数为None的情况下(不传入自定义数据),可通过该参数调用fxdayu_data api 访问到数据 (dict),与data参数二选一。
para_dict 不定 外部指定因子里所用到的参数集(dict),为空则不修改原有参数。 形如:{"fast":5,"slow":10}。

返回参数说明:

参数名 类型 说明
factor_value MultiIndex Series 因子值,格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。

返回参数示例:

------------------------------------
   date     |    asset   |
------------------------------------
            |   AAPL     |   0.5
            -------------------------
            |   BA       |  -1.1
            ------------------------
2014-01-01  |   CMG      |   1.7
            ------------------------
            |   DAL      |  -0.1
            ------------------------
            |   LULU     |   2.7
------------------------------------
enumerate_parameter
  • fxdayu_alphaman.factor.admin.Admin.enumerate_parameter(*args, **kwargs)

简要描述:

  • 枚举不同参数下的所得到的不同因子值。

参数:

参数名 必选 类型 说明
factor_name string 因子名称
para_range_dict list 描述了factor当中待优化参数的选择空间(dict)。
键为参数名称,值为range对象,表示优化空间的起始、终止、步长。如:para_range_dict = {"fast":range(0,10,1),"slow":range(0,10,1)}。
pool list 股票池范围,如:["000001.XSHE","600300.XSHG",......]。
start datetime 起始时间
end datetime 结束时间
Factor object 因子。可以输入一个设计好的Factor类来执行计算
data 不定 计算因子需用到的数据,根据计算需求自行指定。
data_config 不定 在data参数为None的情况下(不传入自定义数据),可通过该参数调用fxdayu_data api 访问到数据 (dict),与data参数二选一。
parallel boolean 是否执行并行计算(bool) 默认不执行。 如需并行计算需要在jupyter notebook下启动工作脚本。

返回参数说明:

参数名 类型 说明
factor_value_by_para_list list 不同参数下得到的因子值所组成的list。
para_dict_list list 不同参数集所组成的list(list),与factor_value_by_para_list一一对应。
每个参数集格式为dict,形如:{"fast":5,"slow":10}
get_all_factors_value
  • fxdayu_alphaman.factor.admin.Admin.get_all_factors_value(*args, **kwargs)

简要描述:

  • 计算admin下加载的所有因子的因子值。

参数:

参数名 必选 类型 说明
pool list 股票池范围,如:["000001.XSHE","600300.XSHG",......]。
start datetime 起始时间
end datetime 结束时间
all_Factors_dict object 加载到admin下的所有因子类构成的字典,可以输入一系列设计好的Factor类(与Admin._all_factors_name一一对应)直接执行计算。
形如:{"factor_name_1":Factor_1,"factor_name_2":Factor_2,...}
all_factors_data_dict dict 计算因子需用到的自定义数据组成的字典(dict),根据计算需求自行指定。
字典键名为所有载入的因子的因子名(admin._all_factors_name),值为对应因子所需的数据。 形如:{"factor_name_1":data_1,"factor_name_2":data_2,...}
all_factors_data_config_dict 不定 在all_factors_data_dict参数为None的情况下(不传入自定义数据),可通过该参数调用fxdayu_data api 访问到数据 (dict)。 与all_factors_data_dict二选一(未指定数据通过fxdayu_data api获取)。
字典键名为所有载入的因子的因子名(admin._all_factors_name),值为对应因子所需的数据api访问参数设置dict(data_config)。形如:{"factor_name_1":data_config_1,"factor_name_2":data_config_2,...}。
all_factors_para_dict boolean 所有因子外部指定参数集(dict)所构成的字典(dict)。为空则不修改因子原有参数。
字典键名为所有载入的因子的因子名(admin._all_factors_name),值为对应因子的指定参数集(dict)。形如:{"factor_name_1":{"fast":5,"slow":10},"factor_name_2":{"fast":4,"slow":7},...}。
parallel boolean 是否执行并行计算(bool) 默认不执行。 如需并行计算需要在jupyter notebook下启动工作脚本。
update boolean 是否更新已有记录值。默认为False——如果admin曾经计算过所有因子值,则不再重复计算。 True 则更新计算所加载的因子值。

返回参数说明:

参数名 类型 说明
all_factors_dict dict admin下加载的所有因子的因子值。字典键名为所有载入的因子的因子名,值为因子值,格式为一个MultiIndex Series,索引(index)为date(level 0)和asset(level 1),包含一列factor值。