python hist函数_python量化交易策略入门(一):MACD的威力
最近刚开始学习量化交易,在聚宽网上看了几篇教程,对操作流程有了大致的了解,接下来打算好好研究一下交易策略。据大奖章基金的Simons透露,他那个每年收益率20%以上的系统,一点都不费解(complicated),但是非常复杂(complex)。我的理解是,一个好的量化交易系统,不一定要用到高深的算法和技术,但是必须包含很多种简单的算法和技术。换句话说,你得从最基础的算法开始,一个模块一个模块地加上
最近刚开始学习量化交易,在聚宽网上看了几篇教程,对操作流程有了大致的了解,接下来打算好好研究一下交易策略。
据大奖章基金的Simons透露,他那个每年收益率20%以上的系统,一点都不费解(complicated),但是非常复杂(complex)。
我的理解是,一个好的量化交易系统,不一定要用到高深的算法和技术,但是必须包含很多种简单的算法和技术。
换句话说,你得从最基础的算法开始,一个模块一个模块地加上去,选股、择时、风控、资金管理,每个方向都要综合考虑好几种不同的指标,才能打造出一个不费解但很复杂(not complicated but complex)的交易系统。
爱因斯坦说过,上帝只做加法。
也许基于人工智能(AI)的交易系统构造起来不用这么麻烦,这个以后有空再研究。
眼下先从择时技术开始,先看看最简单的MACD,也就是双均线策略。
MACD指标
MACD系列指标由三个指标沟构成,分别是DIF,DEA和HIST。
- DIF是12日指数移动平均线(EMA12,又称快线)与26日指数移动平均线(EMA26,又称慢线)的背离程度: $$DIF=EMA(12)−EMA(26)$$
- DEA是DIF的9日指数移动平均线: $$DEA=EMA(DIF,9)$$
- HIST是DIF与DEA的差值乘以2: $$HIST=(DIF−DEA)×2$$
HIST又称MACD柱,是MACD系列指标中最重要的一个,有些人只根据它来决定是否买入卖出,但我查询了一番文献,还进行了一系列的试错,发现还是综合考虑另外两个指标更好。
废话不多说了,上代码。
Python代码
第一步:导入各种库
import
第二步:下载数据
# 下载2015-2018年的沪深300指数,频率为每天,只要收盘价
这4年间,沪深300指数的走势还是很典型的:2015年暴涨暴跌,2016-2017两年间温和上涨,2018年快速下跌。
第三步:计算指标
# 用talib库中的相应函数计算MACD指标
第四步:生成交易信号
这里只考虑做多,不考虑做空的情况。
为了方便比较,我尝试了集中不同的策略。
# sig1只考虑HIST指标,HIST转正时开仓买入,转负时清仓
接下来,我们来直观地比较一下这三个交易信号。
plt
看起来策略1最激进,策略2最保守。后者完美地避开了15年和18年的两段暴跌,期间一次买入指令也没有发出过,但在16-17年的缓慢回升中,参与度似有不足。
第五步:模拟交易
简单起见,这里不考虑手续费。
以策略2为例,作图比较该策略和“买入-持有”策略的表现。
# sig2滞后一期、去除空值、转换成整数
由此可见,策略2在股市暴涨暴跌期间表现出色,它几乎完整地抓住了15年上半年的暴涨,却完美地避开了15年下半年和18年的暴跌。但是,在股市温和上涨的16、17年,该策略的表现却落后于大盘。
总而言之,该策略简单归简单,表现却不俗,在大盘下跌近20%的4年中,实现了近60%的收益,目测最大回测不超过10%。
当然,这款策略还有改进的余地,比如说,如果把交易频率调低,也许表现会更好。
接下来,我打算寻找:
1. 一个更加适应温和上涨行情的策略;
2. 一个能有效区分暴涨暴跌行情和温和涨跌行情的指标。
请大家积极发言献策!
更多推荐


所有评论(0)