abupy.TradeBu package¶
Submodules¶
abupy.TradeBu.ABuBenchmark module¶
基准模块,基准的作用在于交易时间范围确定,交易时间序列对齐, 抛弃异常时间序列,交易市场范围限制,以及对比与策略的度量结果等作用
-
class
abupy.TradeBu.ABuBenchmark.
AbuBenchmark
(benchmark=None, start=None, end=None, n_folds=2, rs=True)[源代码]¶ Bases:
abupy.CoreBu.ABuBase.PickleStateMixin
基准类,混入PickleStateMixin,因为在abu.store_abu_result_tuple会进行对象本地序列化
abupy.TradeBu.ABuCapital module¶
资金模块,不区分美元,人民币等类型,做美股交易默认当作美元,a股默认当作人民币
-
class
abupy.TradeBu.ABuCapital.
AbuCapital
(init_cash, benchmark, user_commission_dict=None)[源代码]¶ Bases:
abupy.CoreBu.ABuBase.PickleStateMixin
资金类
-
apply_action
(a_action, progress)[源代码]¶ 在回测结果生成的交易行为构成的pd.DataFrame对象上进行apply对应本方法,即 将交易行为根据资金情况进行处理,处理手续费以及时序资金对象capital_pd上的 数据更新 :param a_action: 每一个被迭代中的action,即每一个交易行为 :param progress: 进度条对象 :return: 是否成交deal bool
-
apply_init_kl
(action_pd, show_progress)[源代码]¶ 根据回测交易在时序资金对象capital_pd上新建对应的call,put列 :param action_pd: 回测交易行为对象,pd.DataFrame对象 :param show_progress: 外部设置是否需要显示进度条
-
apply_k_line
(a_k_day, kl_pd, buy_type_head)[源代码]¶ 在apply_kl中的do_apply_kl方法中时序资金对象capital进行apply的对应方法, 即迭代金融时间序列的每一个交易日,根据持仓量计算每一个交易日的市场价值 :param a_k_day: 每一个被迭代中的时间,即每一个交易日数据 :param kl_pd: 正在被apply迭代的金融时间序列本体,pd.DataFrame对象 :param buy_type_head: 代表交易类型,范围(_call,_put) :return:
-
apply_kl
(action_pd, kl_pd_manager, show_progress)[源代码]¶ apply_action之后对实际成交的交易分别迭代更新时序资金对象capital_pd上每一个交易日的实时价值 :param action_pd: 回测结果生成的交易行为构成的pd.DataFrame对象 :param kl_pd_manager: 金融时间序列管理对象,AbuKLManager实例 :param show_progress: 是否显示进度条
-
buy_stock
(a_order)[源代码]¶ 在apply_action中每笔交易进行处理,根据买单计算cost,在时序资金对象capital_pd上修改对应cash_blance, 以及更新对应symbol上的持仓量 :param a_order: 在apply_action中由action转换的AbuOrder对象 :return: 是否成交deal bool
-
abupy.TradeBu.ABuCommission module¶
手续费模块
-
class
abupy.TradeBu.ABuCommission.
AbuCommission
(commission_dict)[源代码]¶ Bases:
object
交易手续费计算,记录,分析类,在AbuCapital中实例化
-
abupy.TradeBu.ABuCommission.
calc_commission_cn
(trade_cnt, price)[源代码]¶ a股计算交易费用:印花税+佣金: 印花税万3,佣金万2.5 :param trade_cnt: 交易的股数(int) :param price: 每股的价格(人民币) :return: 计算结果手续费
-
abupy.TradeBu.ABuCommission.
calc_commission_futures_cn
(trade_cnt, price, symbol_name)[源代码]¶ 期货计算交易费用:首先查询对应商品单位交易量(每手单位数量),以及每手手续费,再计算对应手续费 :param trade_cnt: 交易的单位数量(int) :param price: 买入的价格(暂不使用,只是保持接口统一) :param symbol_name: 商品查询symbol :return: 计算结果手续费
-
abupy.TradeBu.ABuCommission.
calc_commission_futures_global
(trade_cnt, price)[源代码]¶ 国际期货:差别很大,最好外部自定义自己的计算方法,这里只简单按照0.002计算 :param trade_cnt: 交易的股数(int) :param price: 每股的价格(美元) :return: 计算结果手续费
-
abupy.TradeBu.ABuCommission.
calc_commission_hk
(trade_cnt, price)[源代码]¶ h股计算交易费用:印花税+佣金: 佣金千分之二,印花税千分之一 :param trade_cnt: 交易的股数(int) :param price: 每股的价格(人民币) :return: 计算结果手续费
-
abupy.TradeBu.ABuCommission.
calc_commission_tc
(trade_cnt, price)[源代码]¶ 币类计算交易费用:只简单计算手续费,双向都使用流通币计算手续费,不涉及卖出使用币类的手续计算, 如需要更精确计算,请使用自定义计算费率,即在AbuCommission初始化中自定义计算手续费的方法 :param trade_cnt: 交易的币个数(int) :param price: 每币的价格(人民币) :return: 计算结果手续费
abupy.TradeBu.ABuKLManager module¶
金融时间序列管理模块
-
class
abupy.TradeBu.ABuKLManager.
AbuKLManager
(benchmark, capital)[源代码]¶ Bases:
object
金融时间序列管理类
-
batch_get_pick_time_kl_pd
(choice_symbols, n_process=4)[源代码]¶ 统一批量获取择时金融时间序列获保存在内部的择时字典中,以多进程并行方式运行 :param choice_symbols: 支持迭代的symbol序列 :param n_process: 择时金融时间序列获取并行启动的进程数,默认16个,属于io操作多,所以没有考虑cpu数量 :return:
-
filter_pick_time_choice_symbols
(choice_symbols)[源代码]¶ 使用filter筛选出choice_symbols中的symbol对应的择时时间序列不在内部择时字典中的symbol序列 :param choice_symbols: 支持迭代的symbol序列 :return: 不在内部择时字典中的symbol序列
-
abupy.TradeBu.ABuMLFeature module¶
内置特征定义,以及用户特征扩展,定义模块
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureAtr
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
atr特征,支持买入
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureBase
[源代码]¶ Bases:
object
特征构造基类
-
calc_feature
(kl_pd, combine_kl_pd, day_ind, buy_feature)[源代码]¶ 子类主要需要实现的函数,根据买入或者卖出时的金融时间序列,以及交易日信息构造特征 :param kl_pd: 择时阶段金融时间序列 :param combine_kl_pd: 合并择时阶段之前1年的金融时间序列 :param day_ind: 交易发生的时间索引,即对应self.kl_pd.key :param buy_feature: 是否是买入特征构造(bool) :return: 构造特征的键值对字典
-
feature_prefix
(buy_feature, check=True)[源代码]¶ 根据buy_feature决定返回_feature_buy_prefix或者_feature_sell_prefix,目的是在calc_feature中构成唯一key :param buy_feature: 是否是买入特征构造(bool) :param check: 是否需要检测是否支持特征构建 :return:
-
get_feature_keys
(buy_feature)[源代码]¶ 子类主要需要实现的函数,定义feature的列名称 :param buy_feature: 是否是买入特征构造(bool) :return: 键值对字典中的key序列
-
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureDeg
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
角度特征,支持买入,卖出
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureDegExtend
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
示例添加新的视角来录制比赛,角度特征,支持买入,卖出
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureJump
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
跳空特征,支持买入,卖出
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeaturePrice
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
价格rank特征,支持买入,卖出
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureSnapshot
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
快照特征,支持买入,卖出 abupy.env.g_enable_take_kl_snapshot开关控制特征是否生成, 生成的走势图在~/abu/data/save_png/今天的日期/目录下
-
class
abupy.TradeBu.ABuMLFeature.
AbuFeatureWave
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
波动特征,支持买入,卖出
-
class
abupy.TradeBu.ABuMLFeature.
AbuMlFeature
[源代码]¶ Bases:
object
特征对外统一接口类,负责管理构建内部特征,用户扩展特征,提供买入卖出因子的交易特征生成,转换接口
-
class
abupy.TradeBu.ABuMLFeature.
BuyFeatureMixin
[源代码]¶ Bases:
object
买入特征标识混入,与BuyUmpMixin不同,具体feature类可能属于多个类别 即可能同时混入BuyFeatureMixin和SellFeatureMixin
-
class
abupy.TradeBu.ABuMLFeature.
SellFeatureMixin
[源代码]¶ Bases:
object
卖出特征标识混入,与SellUmpMixin不同,具体feature类可能属于多个类别 即可能同时混入BuyFeatureMixin和SellFeatureMixin
abupy.TradeBu.ABuOrder module¶
交易订单模块
-
class
abupy.TradeBu.ABuOrder.
AbuOrder
[源代码]¶ Bases:
object
交易订单类
-
buy_cnt
¶
-
buy_date
¶
-
buy_factor
¶
-
buy_pos
¶
-
buy_price
¶
-
buy_symbol
¶
-
buy_type_str
¶
-
expect_direction
¶
-
fit_buy_order
(day_ind, factor_object)[源代码]¶ 根据买入交易日当当天数据以及买入因子,拟合计算买入订单 :param day_ind: 买入交易发生的时间索引,即对应self.kl_pd.key :param factor_object: ABuFactorBuyBases子类实例对象
-
fit_sell_order
(day_ind, factor_object)[源代码]¶ 根据卖出交易日当当天数据以及卖出因子,拟合计算卖出信息,完成订单 :param day_ind: 卖出交易发生的时间索引,即对应self.kl_pd.key :param factor_object: AbuFactorSellBase子类实例对象
-
keep_days
¶
-
ml_features
¶
-
order_deal
¶
-
sell_date
¶
-
sell_price
¶
-
sell_type
¶
-
sell_type_extra
¶
-
-
class
abupy.TradeBu.ABuOrder.
OrderMarket
(order)[源代码]¶ Bases:
abupy.MarketBu.ABuMarket.MarketMixin
根据AbuOrder对象,设置混入类MarketMixin中symbol_name
abupy.TradeBu.ABuTradeDrawer module¶
交易可视化模块
-
abupy.TradeBu.ABuTradeDrawer.
plot_bk_xd
(bk_summary, kl_pd_xd_mean, title=None)[源代码]¶ 根据有bk_summary属性的bk交易因子进行可视化,暂时未迁移完成
-
abupy.TradeBu.ABuTradeDrawer.
plot_capital_info
(capital_pd, init_cash=-1)[源代码]¶ 资金信息可视化 :param capital_pd: AbuCapital对象或者AbuCapital对象的capital_pd :param init_cash: 初始化cash,如果capital_pd为AbuCapital对象,即从capital_pd获取
abupy.TradeBu.ABuTradeExecute module¶
交易执行模块
-
abupy.TradeBu.ABuTradeExecute.
apply_action_to_capital
(capital, action_pd, kl_pd_manager)[源代码]¶ 多个金融时间序列对应的多个交易行为action_pd,在考虑资金类AbuCapital对象的情况下,对AbuCapital对象进行 资金时间序列更新,以及判定在有限资金的情况下,交易行为是否可以执行 :param capital: 资金类AbuCapital实例化对象 :param action_pd: 交易行为构成的pd.DataFrame对象 :param kl_pd_manager: 金融时间序列管理对象,AbuKLManager实例 :return:
-
abupy.TradeBu.ABuTradeExecute.
calc_simple_profit
(orders, kl_pd)[源代码]¶ 计算交易收益,simple的意思是不考虑手续费 :param orders: AbuOrder对象序列 :param kl_pd: 金融时间序列,pd.DataFrame对象 :return:
abupy.TradeBu.ABuTradeProxy module¶
交易执行代理模块
-
class
abupy.TradeBu.ABuTradeProxy.
AbuOrderPdProxy
(orders_pd, same_rule=<EOrderSameRule.ORDER_SAME_BSPD: 3>)[源代码]¶ Bases:
object
包装交易订单构成的pd.DataFrame对象,外部debug因子的交易结果,寻找交易策略的问题使用, 支持两个orders_pd的并集,交集,差集,类似set的操作,同时支持相等,不等,大于,小于 的比较操作,eg如下:
orders_pd1 = AbuOrderPdProxy(orders_pd1) with orders_pd1.proxy_work(orders_pd2) as (order1, order2):
a = order1 | order2 # 两个交易结果的并集 b = order1 & order2 # 两个交易结果的交集 c = order1 - order2 # 两个交易结果的差集(在order1中,但不在order2中) d = order2 - order1 # 两个交易结果的差集(在order2中,但不在order1中) eq = order1 == order2 # 两个交易结果是否相同 lg = order1 > order2 # order1唯一的交易数量是否大于order2 lt = order1 < order2 # order1唯一的交易数量是否小于order2
-
class
abupy.TradeBu.ABuTradeProxy.
EOrderSameRule
[源代码]¶ Bases:
enum.Enum
对order_pd中对order判断为是否相同使用的规则
-
ORDER_SAME_BD
= 0¶ order有相同的symbol, 买入日期,和卖出日期,即不考虑价格,只要日期相同就相同
-
ORDER_SAME_BDP
= 2¶ order有相同的symbol, 买入日期, 买入价格, 并且相同的卖出日期和价格才认为是相同,即买入卖出时刻都相同
-
ORDER_SAME_BSD
= 1¶ order有相同的symbol, 买入日期,相同的买入价格,即单子买入时刻都相同
-
ORDER_SAME_BSPD
= 3¶
-
-
abupy.TradeBu.ABuTradeProxy.
difference_in_2orders
(orders_pd, other_orders_pd, same_rule=<EOrderSameRule.ORDER_SAME_BSPD: 3>)[源代码]¶ 差集: 分析因子或者参数问题时使用,debug策略问题时筛选出两个orders_pd的不同交易, 注意返回的结果是存在orders_pd中的交易,但不在cmp_orders_pd中的交易,即结果 为差集:orders_pd - cmp_orders_pd或orders_pd.difference(cmp_orders_pd) :param orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param other_orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param same_rule: order判断为是否相同使用的规则, 默认EOrderSameRule.ORDER_SAME_BSPD
即:order有相同的symbol和买入日期和相同的卖出日期和价格才认为是相同返回: orders_pd - cmp_orders_pd
-
abupy.TradeBu.ABuTradeProxy.
find_unique_group_symbol
(order_pd)[源代码]¶ 按照’buy_date’, ‘symbol’分组后,只筛选组里的第一个same_group.iloc[0] :param order_pd: :return:
-
abupy.TradeBu.ABuTradeProxy.
find_unique_symbol
(order_pd, same_rule=<EOrderSameRule.ORDER_SAME_BSPD: 3>)[源代码]¶ order_pd中如果一个buy_date对应的一个symbol有多条交易记录,过滤掉, 注意如果在对应多条记录中保留一个,使用find_unique_group_symbol :param order_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param same_rule: order判断为是否相同使用的规则, 默认EOrderSameRule.ORDER_SAME_BSPD
即:order有相同的symbol和买入日期和相同的卖出日期和价格才认为是相同
-
abupy.TradeBu.ABuTradeProxy.
intersection_in_2orders
(orders_pd, other_orders_pd, same_rule=<EOrderSameRule.ORDER_SAME_BSPD: 3>)[源代码]¶ 交集: 分析因子或者参数问题时使用,debug策略问题时筛选出两个orders_pd中相同的交易, 即结果为交集:orders_pd & cmp_orders_pd或orders_pd.intersection(cmp_orders_pd) :param orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param other_orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param same_rule: order判断为是否相同使用的规则, 默认EOrderSameRule.ORDER_SAME_BSPD
即:order有相同的symbol和买入日期和相同的卖出日期和价格才认为是相同返回: orders_pd & cmp_orders_pd
-
abupy.TradeBu.ABuTradeProxy.
trade_summary
(orders, kl_pd, draw=False, show_info=True)[源代码]¶ 主要将AbuOrder对象序列转换为pd.DataFrame对象orders_pd,以及将 交易单子时间序列转换交易行为顺序序列,绘制每笔交易的细节交易图,以及 简单文字度量输出 :param orders: AbuOrder对象序列 :param kl_pd: 金融时间序列,pd.DataFrame对象 :param draw: 是否可视化交易细节图示 :param show_info: 是否输出交易文字信息
-
abupy.TradeBu.ABuTradeProxy.
union_in_2orders
(orders_pd, other_orders_pd)[源代码]¶ 并集:分析因子或者参数问题时使用,debug策略问题时筛选出两个orders_pd中所有不同的交易, 注意这里不认为在相同的交易日买入相同的股票,两笔交易就一样,这里只是两个orders_pd合并 后使用drop_duplicates做了去除完全一样的order,即结果为并集: orders_pd | cmp_orders_pd或orders_pd.union(cmp_orders_pd) :param orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :param other_orders_pd: 回测结果生成的交易订单构成的pd.DataFrame对象 :return: orders_pd | cmp_orders_pd
Module contents¶
-
class
abupy.TradeBu.
AbuBenchmark
(benchmark=None, start=None, end=None, n_folds=2, rs=True)[源代码]¶ Bases:
abupy.CoreBu.ABuBase.PickleStateMixin
基准类,混入PickleStateMixin,因为在abu.store_abu_result_tuple会进行对象本地序列化
-
class
abupy.TradeBu.
AbuCapital
(init_cash, benchmark, user_commission_dict=None)[源代码]¶ Bases:
abupy.CoreBu.ABuBase.PickleStateMixin
资金类
-
apply_action
(a_action, progress)[源代码]¶ 在回测结果生成的交易行为构成的pd.DataFrame对象上进行apply对应本方法,即 将交易行为根据资金情况进行处理,处理手续费以及时序资金对象capital_pd上的 数据更新 :param a_action: 每一个被迭代中的action,即每一个交易行为 :param progress: 进度条对象 :return: 是否成交deal bool
-
apply_init_kl
(action_pd, show_progress)[源代码]¶ 根据回测交易在时序资金对象capital_pd上新建对应的call,put列 :param action_pd: 回测交易行为对象,pd.DataFrame对象 :param show_progress: 外部设置是否需要显示进度条
-
apply_k_line
(a_k_day, kl_pd, buy_type_head)[源代码]¶ 在apply_kl中的do_apply_kl方法中时序资金对象capital进行apply的对应方法, 即迭代金融时间序列的每一个交易日,根据持仓量计算每一个交易日的市场价值 :param a_k_day: 每一个被迭代中的时间,即每一个交易日数据 :param kl_pd: 正在被apply迭代的金融时间序列本体,pd.DataFrame对象 :param buy_type_head: 代表交易类型,范围(_call,_put) :return:
-
apply_kl
(action_pd, kl_pd_manager, show_progress)[源代码]¶ apply_action之后对实际成交的交易分别迭代更新时序资金对象capital_pd上每一个交易日的实时价值 :param action_pd: 回测结果生成的交易行为构成的pd.DataFrame对象 :param kl_pd_manager: 金融时间序列管理对象,AbuKLManager实例 :param show_progress: 是否显示进度条
-
buy_stock
(a_order)[源代码]¶ 在apply_action中每笔交易进行处理,根据买单计算cost,在时序资金对象capital_pd上修改对应cash_blance, 以及更新对应symbol上的持仓量 :param a_order: 在apply_action中由action转换的AbuOrder对象 :return: 是否成交deal bool
-
-
class
abupy.TradeBu.
AbuKLManager
(benchmark, capital)[源代码]¶ Bases:
object
金融时间序列管理类
-
batch_get_pick_time_kl_pd
(choice_symbols, n_process=4)[源代码]¶ 统一批量获取择时金融时间序列获保存在内部的择时字典中,以多进程并行方式运行 :param choice_symbols: 支持迭代的symbol序列 :param n_process: 择时金融时间序列获取并行启动的进程数,默认16个,属于io操作多,所以没有考虑cpu数量 :return:
-
filter_pick_time_choice_symbols
(choice_symbols)[源代码]¶ 使用filter筛选出choice_symbols中的symbol对应的择时时间序列不在内部择时字典中的symbol序列 :param choice_symbols: 支持迭代的symbol序列 :return: 不在内部择时字典中的symbol序列
-
-
class
abupy.TradeBu.
AbuOrder
[源代码]¶ Bases:
object
交易订单类
-
buy_cnt
¶
-
buy_date
¶
-
buy_factor
¶
-
buy_pos
¶
-
buy_price
¶
-
buy_symbol
¶
-
buy_type_str
¶
-
expect_direction
¶
-
fit_buy_order
(day_ind, factor_object)[源代码]¶ 根据买入交易日当当天数据以及买入因子,拟合计算买入订单 :param day_ind: 买入交易发生的时间索引,即对应self.kl_pd.key :param factor_object: ABuFactorBuyBases子类实例对象
-
fit_sell_order
(day_ind, factor_object)[源代码]¶ 根据卖出交易日当当天数据以及卖出因子,拟合计算卖出信息,完成订单 :param day_ind: 卖出交易发生的时间索引,即对应self.kl_pd.key :param factor_object: AbuFactorSellBase子类实例对象
-
keep_days
¶
-
ml_features
¶
-
order_deal
¶
-
sell_date
¶
-
sell_price
¶
-
sell_type
¶
-
sell_type_extra
¶
-
-
class
abupy.TradeBu.
AbuOrderPdProxy
(orders_pd, same_rule=<EOrderSameRule.ORDER_SAME_BSPD: 3>)[源代码]¶ Bases:
object
包装交易订单构成的pd.DataFrame对象,外部debug因子的交易结果,寻找交易策略的问题使用, 支持两个orders_pd的并集,交集,差集,类似set的操作,同时支持相等,不等,大于,小于 的比较操作,eg如下:
orders_pd1 = AbuOrderPdProxy(orders_pd1) with orders_pd1.proxy_work(orders_pd2) as (order1, order2):
a = order1 | order2 # 两个交易结果的并集 b = order1 & order2 # 两个交易结果的交集 c = order1 - order2 # 两个交易结果的差集(在order1中,但不在order2中) d = order2 - order1 # 两个交易结果的差集(在order2中,但不在order1中) eq = order1 == order2 # 两个交易结果是否相同 lg = order1 > order2 # order1唯一的交易数量是否大于order2 lt = order1 < order2 # order1唯一的交易数量是否小于order2
-
class
abupy.TradeBu.
EOrderSameRule
[源代码]¶ Bases:
enum.Enum
对order_pd中对order判断为是否相同使用的规则
-
ORDER_SAME_BD
= 0¶
-
ORDER_SAME_BDP
= 2¶
-
ORDER_SAME_BSD
= 1¶
-
ORDER_SAME_BSPD
= 3¶
-
-
class
abupy.TradeBu.
AbuFeatureDegExtend
[源代码]¶ Bases:
abupy.TradeBu.ABuMLFeature.AbuFeatureBase
,abupy.TradeBu.ABuMLFeature.BuyFeatureMixin
,abupy.TradeBu.ABuMLFeature.SellFeatureMixin
示例添加新的视角来录制比赛,角度特征,支持买入,卖出
-
class
abupy.TradeBu.
AbuFeatureBase
[源代码]¶ Bases:
object
特征构造基类
-
calc_feature
(kl_pd, combine_kl_pd, day_ind, buy_feature)[源代码]¶ 子类主要需要实现的函数,根据买入或者卖出时的金融时间序列,以及交易日信息构造特征 :param kl_pd: 择时阶段金融时间序列 :param combine_kl_pd: 合并择时阶段之前1年的金融时间序列 :param day_ind: 交易发生的时间索引,即对应self.kl_pd.key :param buy_feature: 是否是买入特征构造(bool) :return: 构造特征的键值对字典
-
feature_prefix
(buy_feature, check=True)[源代码]¶ 根据buy_feature决定返回_feature_buy_prefix或者_feature_sell_prefix,目的是在calc_feature中构成唯一key :param buy_feature: 是否是买入特征构造(bool) :param check: 是否需要检测是否支持特征构建 :return:
-
get_feature_keys
(buy_feature)[源代码]¶ 子类主要需要实现的函数,定义feature的列名称 :param buy_feature: 是否是买入特征构造(bool) :return: 键值对字典中的key序列
-