1.MACD策略简述与评价标准
a) MACD原始策略解释与评价: 是指利用MACD指标的数值,主要是MACD值来决定股票的买入和卖出。
i. MACD指标计算依赖于用EMA_long_window,EMA_Short_window, DIFF_window 3个参数计算收盘价的移动平均。此策略的问题是3个指标的选择是开放的,没有针对所有股票都适用的一般标准。所以一般情况下难以判断到底哪种指标组合最适合所持有的股票。
ii. MACD原有的买卖指标为DEA和DIFF指标的交叉。 DIFF指标上穿DEA指标为金叉,是买入信号。DIFF指标下穿DEA为死叉,是卖出信号。这两种信号概念上正确,且明确易捕捉。但缺点是敏感度比较差,延迟较高。尤其是卖出信号,通常股价已经跌的很多了,移动平均才会出现死叉。
b) 进阶策略是指利用MACD的概念计算交易信号,但在两个方面做出改进:
i. MACD指标计算参数的选择: 穷举计算参数组合,并计算所有组合所能最终产生的利润。选择利润最高的组合作为该股票的MACD指标计算参数。
ii. 从两方面改进MACD原有的买卖信号:
1. 提高信号的识别率,由原有的金叉死叉信号,改为MACD值变化策略,即监视MACD的阶段极值和现值,一旦极值与现值的差达到阈值,即判断为买入或卖出信号,此策略比金叉死叉敏感很多。
2. 降低信号敏感性:为了防止上述策略过于敏感,导致交易信号过于频繁出现,设置信号有效性指标,以过滤变化微小的信号,降低交易频率。
3. 可看出,敏感度是双刃剑,敏感度高会对微小变化产生反应,降低对有效信号的判断标准。敏感度低会忽略一些有效信号,降低收益率。上述两种指标也需要循环测试,最终找到最优的组合。
c) 交易规则:
i. 交易的一些初始量的设定:
1. 初始参与资金量
2. 单次买入股数
3. 在持股上限:买入后的在持股数不得超过上限。可以通过在持股上限限制买入的次数,如设定上限在两倍单次买入数与三倍单次买入数之间,就只允许发生两次的连续买入。
ii. 交易方法的设定:分次买入,全部卖出。
1. 买入:在满足现值的条件下,买入单次买入股数。
a) 有足够的资金
b) 买入后的总在持股数<在持股上限
2. 卖出:一次卖出所有股票
3. 如此设定交易规则的目的是要最大化避免股价下跌带来的损失,尽量争取在股价进入下跌通道前,让股票都变为现金。
d) 策略评价标准我选择用总资产比率:最后一次交易后总资产与取第一个股价数据时的总资产的比率。
i. 参与策略的初始资金量会对这个比率有一定的影响,但由于我希望的是通过对比选择最佳策略,所以所有策略使用的初始资金量是一致的,因此对策略的选择没有影响。但如果希望考虑的是收益率,这个指标就还需要斟酌,尤其当与大盘指标进行比较的时候。
ii. 另外,还是觉得这个指标只关注的最终的目标,对于过程没有体现,应该让以下指标也参与到策略的优秀度评价里:
1. 资产比率曲线
a) 曲线是否平滑
b) 曲线的一阶导数是否一直为正,数值是多少(收益率是持续增加的),此项将作为下一步的策略判断依据,重点围绕。
2. 交易频率->指标的敏感度
3. 交易次数->交易费用
4. 平均收益率
5. 是否经常触及T+1策略的限制
2.股票的选择标准
a) 应选择股价有一定的波幅和波动频率的股票,应避免大盘蓝筹股,因为大盘股体量太大,一般情况下股价的波动都不明显,在MACD值有效性指标的过滤下,很难找到合适的交易指标以生成交易信号。
b) 应避免经常性出现剧烈波动的股票,如涨跌停,因为剧烈波动会导致指标的计算跟不上股价的变化,且即便计算出交易信号,也有可能因为超大量的买卖导致我们无法实现交易。
3.分析周期与样本量的选择
a) 股票的分析周期我选择的是30分钟数据,即从9:30(不包括)开始每30分钟计算一次open, high, low, close prices . 30分钟数据的选择处于两方面考虑。
i. 一是要让交易信号的计算的频率能跟上股价变化,选择30分钟数据,一个交易日会出现8个数据,其中可以参与计算的有7个,3:00 PM的数据产生信号后也无法实施。
ii. 二是避免计算过于频繁,因为国内股市有T+1的政策,如果计算过于频繁,会经常出现一天内先买后卖的情况,这种信号是无意义的。虽然可以通过处理计算第二个交易日一早的补卖信号,但是第二个交易日的MACD值已经变化,补卖信号和MACD信号计算策略是不一致的。
b) 样本数据量方面,我选择使用最近3个月的m30交易数据,大约550条记录左右。再远的历史数据可能不能正确代表目前的股价变化趋势。
4.MACD指标的选择
a) 在合理的范围内对EMA_long, EMA_short, 和DIF_window 的组合穷举,共穷举了3689种组合。
b) 注意事项:
i. EMA_long > EMA_short
ii. EMA_long != EMA_short
iii. 10< EMA_long < 50
iv. 3< EMA_short < 15
v. 3 < DIF < 9
5.MACD买入信号计算
买入信号分为3种:
a) 异号买入:异号买入也就是传统的MACD金叉,只是变为单纯的依靠MACD值计算,异号买入关注的是MACD >0 阶段的涨幅利益。当t-1时刻的MACD(t-1) <0,t时刻的MACD(t) >0 时, 即为异号, 视为有买入机会。但为了过滤MACD值过于微小的变化,为MACD值加了均值过滤器MACD_AVG(详见MACD信号有效性部分),规定只有MACD > MACD_AVG才是有效信号,释放买入信号,否则进入待考察模式。
b) 异号补买:当异号但是进入待考察模式时,我们判断,大多数情况下,如果股价确实进入上升通道,则t+1日的MACD值会高于t日MACD值,且上涨幅度大于一个阈值。所以,如果MACD(t+1) > MACD(t), 就释放买入信号,否则认为只是小幅震荡,放弃买入,为一定的比率以确定阈值(详见信号有效性)。
c) 激进买入:这是比异号买入激进的买入方式,目的是获取MACD <0 阶段的利益,存在一定的风险。当股价在下降通道时,如果MACD(t) > MACD(t-1), 则股价有可能从下降通道转入上升通道。为一定的比率以确定有多大概率转入上升通道(详见信号有效性)。激进买入是在MACD<0时的判断,要注意符号。
d) 异号买入是最基本的买入方式,在实现异号买入的基础上,实施异号补买和激进买入。异号买入和激进买入联合可能会在一个上升通道内连续释放两次买入信号,要在买入交易方法中有所调整,以支持连续买入的可能。
e) 买入信号释放后,系统将记录本上升通道内的MACD最大值,以用于计算卖出信号。
6.MACD卖出信号的计算
a) 卖出信号的计算方式彻底放弃的原配的死叉模式,因为死叉模式反应相对迟缓,在实际股价下跌到出现死叉的过程中,会随时大部分利润。
b) 收缩卖出: 收缩卖出的模式监控上升通道内的MACD_MAX最大值和t时刻的MACD(t)值,当 MACD(t) < MACD_MAX时, 即认为上升通道已经结束,可以释放卖出信号,确定阈值。
c) 卖出信号有可能会和股市的T+1策略冲突,需要进一步处理。
7.MACD信号有效性
信号有效性主要有四个部分:
a) MACD的均值MACD_AVG: 此处均值不是简单的MACD值的算术平均。
i. 因为MACD_AVG只在MACD>0时的买入阶段涉及,因此基本值的计算是MACD绝对值的算术平均。
ii. 利用绝对值的算术平均值过于死板,不具有调节的能力,因此为该值扩展一下定义。扩展为使得X%的数据都有效的值,X (0-100)。
iii. 即 X% MACD > MACD_AVG, 如此, 可根据X调节MACD_AVG的值,以过滤数据。
b) 用于异号补买,可调节为n倍的MACD(t)的值, 我认为比较合理。
c) 用于激进买入,其实际作用和一致,用于限定MACD(t)和MACD(t+1)的比值,只有比值大于某个特定值,才认为是进入上升通道,处理MACD值< 0时的情况。
d) 用于收缩卖出,和前两个变量一致,用于限定MACD(t)和MACD(t+1)的比率,只有小于某个特定值时,才认为是进入下将通道。
8. T+1策略对交易信号的影响与应对
a) T+1策略会导致当天的买入股票无法在当天卖出。 策略一旦遇到这种情况将标记一个t日的补卖信号。并在t+1天的第一个计算点10:00 AM重点关注,如果在tri 的补卖信号和t+1日第一个计算点之间没有其它的买入或卖出信号,就释放一个t+1日 10:00AM的卖出信号。以最大限度的避免损失。
b) t+1的处理会受到周末和节假日的影响,要加以留意。
9. 进一步的思考
下一步的想法是用机器学习的方法寻找最佳的策略:
i. 以多项式回归或人工神经网络为工具。
ii. 以总资产比率曲线的一阶导数持续最大化增加为目标。
iii. 以一阶导数> 0 为条件以限制平滑性。
iv. 以MACD策略为方法根据上述目标和限制设计拟合一个函数。
v. 以股价为输入
vi. 计算函数的各个参数,以确定最佳的买卖时机。