作者: 阿布
阿布量化版权所有 未经允许 禁止转载
abu量化系统github地址 (您的star是我的动力!)
量化系统一般分为回测模块、实盘模块。
- 回测模块:首先交易者编写实现一个交易策略,它基于一段历史的交易数据,根据交易策略进行模拟买入卖出,策略中可以涉及买入规则、卖出规则、选股规则、仓位控制及滑点策略等等,回测的目的是验证交易策略是否可行。
- 实盘模块:将回测通过的策略应用于每天的实时交易数据,根据策略发出买入信号、卖出信号,进行实际的买入、卖出操作。
回测模块最重要的组成部份是择时、选股:
- 择时(什么时候投资)
- 选股(投资什么股票)
只有在对的时间买入对的股票才能获利,就像下面张小娴的名言一样,可以把‘股票’ 代替 ‘人’完全合乎逻辑。
在对的时间,遇见对的人(股票),是一种幸福
在对的时间,遇见错的人(股票),是一种悲伤
在错的时间,遇见对的人(股票),是一声叹息
在错的时间,遇见错的人(股票),是一种无奈
本节首先讲解择时(什么时候投资), 后面的小节将讲解选股
1. 买入择时因子的编写
海龟交易法则是量化经典书籍中的经典作品,它里面介绍过一种趋势跟踪策略:N日趋势突破策略
趋势突破定义为当天收盘价格超过N天内的最高价或最低价,超过最高价格作为买入信号买入股票持有,超过最低价格作为卖出信号。
下面将用abupy来实现海龟交易法则作为一个买入因子的实现代码,向经典致敬:
class AbuFactorBuyBreak(AbuFactorBuyXD, BuyCallMixin):
"""示例继承AbuFactorBuyXD完成正向突破买入择时类, 混入BuyCallMixin,即向上突破触发买入event"""
def fit_day(self, today):
"""
针对每一个交易日拟合买入交易策略,寻找向上突破买入机会
:param today: 当前驱动的交易日金融时间序列数据
:return:
"""
# 今天的收盘价格达到xd天内最高价格则符合买入条件
if today.close == self.xd_kl.close.max():
# 生成买入订单, 由于使用了今天的收盘价格做为策略信号判断,所以信号发出后,只能明天买
return self.buy_tomorrow()
return None
上AbuFactorBuyBreak即是完成了海龟突破策略的代码实现:
- 买入因子需要继承AbuFactorBu