abupy.MetricsBu package

Submodules

abupy.MetricsBu.ABuGridHelper module

组合参数辅助模块

abupy.MetricsBu.ABuGridHelper.gen_factor_grid(type_param, factors)[源代码]
参数:
  • type_param – grid目标,为K_GEN_FACTOR_PARAMS_BUY或K_GEN_FACTOR_PARAMS_SELL需要重构
  • factors – 可迭代序列,元素为因子dict 如: {‘class’: [AbuFactorBuyBreak], ‘xd’: [42]}, {‘class’: [AbuFactorBuyBreak],’xd’: [60]}
返回:

返回因子dict的组合参数序列

abupy.MetricsBu.ABuGridHelper.make_grid_score_pd(grid_scores, score_index=0)[源代码]

对最优结果score分析处理,暂时未迁移完整,需迁移其余最优模块后可用

abupy.MetricsBu.ABuGridHelper.score_pd_plot(grid_score_pd, y_key, x_key=None)[源代码]

对最优结果score可视化,暂时未迁移完整,需迁移其余最优模块后可用

abupy.MetricsBu.ABuGridSearch module

借鉴sklearn GridSearch,针对买入因子,卖出因子,选股因子最合进行最优寻找分析

class abupy.MetricsBu.ABuGridSearch.GridSearch(read_cash, choice_symbols, stock_pickers_product=None, buy_factors_product=None, sell_factors_product=None, score_weights=None, metrics_class=None)[源代码]

Bases: object

最优grid search对外接口类

fit(score_class=<class 'abupy.MetricsBu.ABuMetricsScore.WrsmScorer'>, n_jobs=-1)[源代码]

开始寻找最优因子参数组合,费时操作,迭代所有因子组合进行交易回测,回测结果进行评分 :param score_class: 对回测结果进行评分的评分类,AbuBaseScorer类型,非对象,只传递类信息 :param n_jobs: 默认回测并行的任务数,默认-1, 即启动与cpu数量相同的进程数 :return: (scores: 评分结果dict, score_tuple_array: 因子组合序列)

class abupy.MetricsBu.ABuGridSearch.ParameterGrid(param_grid)[源代码]

Bases: object

参数进行product辅助生成类

abupy.MetricsBu.ABuGridSearch.grid_mul_func(read_cash, benchmark, buy_factors, sell_factors, stock_pickers, choice_symbols, kl_pd_manager=None)[源代码]

针对输入的买入因子,卖出因子,选股因子及其它参数,进行两年历史交易回测,返回结果包装AbuScoreTuple对象 :param read_cash: 初始化资金数(int) :param benchmark: 交易基准对象,AbuBenchmark实例对象 :param buy_factors: 买入因子序列 :param sell_factors: 卖出因子序列 :param stock_pickers: 选股因子序列 :param choice_symbols: 初始备选交易对象序列 :param kl_pd_manager: 金融时间序列管理对象,AbuKLManager实例 :return: AbuScoreTuple对象

abupy.MetricsBu.ABuMetrics module

abupy.MetricsBu.ABuMetricsBase module

度量模块基础

class abupy.MetricsBu.ABuMetricsBase.AbuMetricsBase(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: object

主要适配股票类型交易对象的回测结果度量

benchmark = None

满仓乘数,如果设置为True, 针对度量信息如收益等需要除self.stocks_full_rate_factor

fit_metrics()[源代码]

执行所有度量函数

fit_metrics_order()[源代码]

对外接口,并非度量真实成交了的结果,只度量orders_pd,即不涉及资金的度量

plot_action_buy_cost()[源代码]

可视化开仓花费情况

plot_effect_mean_day()[源代码]

可视化因子平均生效间隔时间

plot_keep_days()[源代码]

可视化策略持股天数

plot_max_draw_down()[源代码]

可视化最大回撤

plot_order_returns_cmp(only_info=True)[源代码]

非真实成交的度量,认为资金无限,无资金管理的情况下总体情况

plot_returns_cmp(only_show_returns=False, only_info=False)[源代码]

考虑资金情况下的度量,进行与benchmark的收益度量对比,收益趋势,资金变动可视化,以及其它度量信息

plot_sell_factors()[源代码]

可视化卖出生效因子分布

plot_sharp_volatility_cmp(only_info=False)[源代码]

sharp,volatility的策略与基准对比可视化,以及alpha阿尔法,beta贝塔,Information信息比率等信息输出

classmethod show_general(orders_pd, action_pd, capital, benchmark, returns_cmp=False, only_info=False, only_show_returns=False, enable_stocks_full_rate_factor=False)[源代码]

类方法,针对输入执行度量后执行主要度量可视化及度量结果信息输出 :param orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param action_pd: 回测结果生成的交易行为构成的pd.DataFrame对象 :param capital: 资金类AbuCapital实例化对象 :param benchmark: 交易基准对象,AbuBenchmark实例对象 :param returns_cmp: 是否只度量无资金管理的情况下总体情况 :param only_info: 是否只显示文字度量结果,不显示图像 :param only_show_returns: 透传plot_returns_cmp,默认False, True则只显示收益对比不显示其它可视化 :param enable_stocks_full_rate_factor: 是否开启满仓乘数 :return AbuMetricsBase实例化类型对象

transform_to_full_rate_factor(read_cash=-1, kl_pd_manager=None, n_process_kl=4, show=True)[源代码]
class abupy.MetricsBu.ABuMetricsBase.MetricsDemo(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsBase.AbuMetricsBase

扩展自定义度量类示例

eg:
metrics = MetricsDemo(*abu_result_tuple) metrics.fit_metrics() metrics.plot_commission()
plot_commission()[源代码]

使用计算好的首先费cumsum序列和策略收益cumsum序列进行可视化对比 可视化收益曲线和手续费曲线之前的关系

abupy.MetricsBu.ABuMetricsBase.valid_check(func)[源代码]

检测度量的输入是否正常,非正常显示info,正常继续执行被装饰方法

abupy.MetricsBu.ABuMetricsFutures module

期货度量模块

class abupy.MetricsBu.ABuMetricsFutures.AbuMetricsFutures(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsBase.AbuMetricsBase

期货度量类,主要区别在于不涉及benchmark

plot_returns_cmp(only_show_returns=False, only_info=False)[源代码]

考虑资金情况下的度量,进行与benchmark的收益度量对比,收益趋势,资金变动可视化,以及其它度量信息,不涉及benchmark

plot_sharp_volatility_cmp(only_info=False)[源代码]

sharp,volatility信息输出

abupy.MetricsBu.ABuMetricsScore module

回测结果评分模块

class abupy.MetricsBu.ABuMetricsScore.AbuBaseScorer(score_tuple_array, *arg, **kwargs)[源代码]

Bases: abc.NewBase

针对GridSearch的score_tuple_array进行评分抽象基类

fit_score()[源代码]

对度量结果按照score排序,返回排序后的score列

class abupy.MetricsBu.ABuMetricsScore.AbuScoreTuple[源代码]

Bases: abupy.MetricsBu.ABuMetricsScore.AbuScoreTuple

namedtuple扩展类,在GridSearch中包装回测参数及结果

class abupy.MetricsBu.ABuMetricsScore.DemoScorer(score_tuple_array, *arg, **kwargs)[源代码]

Bases: abupy.MetricsBu.ABuMetricsScore.AbuBaseScorer

class abupy.MetricsBu.ABuMetricsScore.WrsmScorer(score_tuple_array, *arg, **kwargs)[源代码]

Bases: abupy.MetricsBu.ABuMetricsScore.AbuBaseScorer

abupy.MetricsBu.ABuMetricsScore.make_scorer(score_tuple_array, sc_class, **kwargs)[源代码]

score对外接口模块函数 :param score_tuple_array: 承接GridSearch返回的AbuScoreTuple对象序列 :param sc_class: 指定进行评分的具体评分类,AbuBaseScorer子类,非实例对象 :param kwargs: AbuBaseScorer中init的参数,可选weights代表评分项权重, 可选metrics_class代表交易目标度量类 :return: 通过AbuBaseScorer __call__ 调用sc_class.fit_score(),

返回fit_score返回值,即self.score_pd.sort_values(by=’score’)[‘score’]

abupy.MetricsBu.ABuMetricsTC module

比特币度量模块

class abupy.MetricsBu.ABuMetricsTC.AbuMetricsTC(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsFutures.AbuMetricsFutures

比特币,莱特币等币类型度量,自扩张使用,暂时继承AbuMetricsFutures,即不涉及benchmark,user可继承扩展需求

Module contents

class abupy.MetricsBu.ParameterGrid(param_grid)[源代码]

Bases: object

参数进行product辅助生成类

class abupy.MetricsBu.GridSearch(read_cash, choice_symbols, stock_pickers_product=None, buy_factors_product=None, sell_factors_product=None, score_weights=None, metrics_class=None)[源代码]

Bases: object

最优grid search对外接口类

fit(score_class=<class 'abupy.MetricsBu.ABuMetricsScore.WrsmScorer'>, n_jobs=-1)[源代码]

开始寻找最优因子参数组合,费时操作,迭代所有因子组合进行交易回测,回测结果进行评分 :param score_class: 对回测结果进行评分的评分类,AbuBaseScorer类型,非对象,只传递类信息 :param n_jobs: 默认回测并行的任务数,默认-1, 即启动与cpu数量相同的进程数 :return: (scores: 评分结果dict, score_tuple_array: 因子组合序列)

class abupy.MetricsBu.AbuMetricsBase(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: object

主要适配股票类型交易对象的回测结果度量

fit_metrics()[源代码]

执行所有度量函数

fit_metrics_order()[源代码]

对外接口,并非度量真实成交了的结果,只度量orders_pd,即不涉及资金的度量

plot_action_buy_cost()[源代码]

可视化开仓花费情况

plot_effect_mean_day()[源代码]

可视化因子平均生效间隔时间

plot_keep_days()[源代码]

可视化策略持股天数

plot_max_draw_down()[源代码]

可视化最大回撤

plot_order_returns_cmp(only_info=True)[源代码]

非真实成交的度量,认为资金无限,无资金管理的情况下总体情况

plot_returns_cmp(only_show_returns=False, only_info=False)[源代码]

考虑资金情况下的度量,进行与benchmark的收益度量对比,收益趋势,资金变动可视化,以及其它度量信息

plot_sell_factors()[源代码]

可视化卖出生效因子分布

plot_sharp_volatility_cmp(only_info=False)[源代码]

sharp,volatility的策略与基准对比可视化,以及alpha阿尔法,beta贝塔,Information信息比率等信息输出

classmethod show_general(orders_pd, action_pd, capital, benchmark, returns_cmp=False, only_info=False, only_show_returns=False, enable_stocks_full_rate_factor=False)[源代码]

类方法,针对输入执行度量后执行主要度量可视化及度量结果信息输出 :param orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param action_pd: 回测结果生成的交易行为构成的pd.DataFrame对象 :param capital: 资金类AbuCapital实例化对象 :param benchmark: 交易基准对象,AbuBenchmark实例对象 :param returns_cmp: 是否只度量无资金管理的情况下总体情况 :param only_info: 是否只显示文字度量结果,不显示图像 :param only_show_returns: 透传plot_returns_cmp,默认False, True则只显示收益对比不显示其它可视化 :param enable_stocks_full_rate_factor: 是否开启满仓乘数 :return AbuMetricsBase实例化类型对象

transform_to_full_rate_factor(read_cash=-1, kl_pd_manager=None, n_process_kl=4, show=True)[源代码]
class abupy.MetricsBu.AbuMetricsFutures(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsBase.AbuMetricsBase

期货度量类,主要区别在于不涉及benchmark

plot_returns_cmp(only_show_returns=False, only_info=False)[源代码]

考虑资金情况下的度量,进行与benchmark的收益度量对比,收益趋势,资金变动可视化,以及其它度量信息,不涉及benchmark

plot_sharp_volatility_cmp(only_info=False)[源代码]

sharp,volatility信息输出

class abupy.MetricsBu.AbuMetricsTC(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsFutures.AbuMetricsFutures

比特币,莱特币等币类型度量,自扩张使用,暂时继承AbuMetricsFutures,即不涉及benchmark,user可继承扩展需求

class abupy.MetricsBu.MetricsDemo(orders_pd, action_pd, capital, benchmark, enable_stocks_full_rate_factor=False)[源代码]

Bases: abupy.MetricsBu.ABuMetricsBase.AbuMetricsBase

扩展自定义度量类示例

eg:
metrics = MetricsDemo(*abu_result_tuple) metrics.fit_metrics() metrics.plot_commission()
plot_commission()[源代码]

使用计算好的首先费cumsum序列和策略收益cumsum序列进行可视化对比 可视化收益曲线和手续费曲线之前的关系

class abupy.MetricsBu.AbuBaseScorer(score_tuple_array, *arg, **kwargs)[源代码]

Bases: abc.NewBase

针对GridSearch的score_tuple_array进行评分抽象基类

fit_score()[源代码]

对度量结果按照score排序,返回排序后的score列

class abupy.MetricsBu.WrsmScorer(score_tuple_array, *arg, **kwargs)[源代码]

Bases: abupy.MetricsBu.ABuMetricsScore.AbuBaseScorer

abupy.MetricsBu.make_scorer(score_tuple_array, sc_class, **kwargs)[源代码]

score对外接口模块函数 :param score_tuple_array: 承接GridSearch返回的AbuScoreTuple对象序列 :param sc_class: 指定进行评分的具体评分类,AbuBaseScorer子类,非实例对象 :param kwargs: AbuBaseScorer中init的参数,可选weights代表评分项权重, 可选metrics_class代表交易目标度量类 :return: 通过AbuBaseScorer __call__ 调用sc_class.fit_score(),

返回fit_score返回值,即self.score_pd.sort_values(by=’score’)[‘score’]