rule based mechanic trading简称"基于规则的机械交易系统"在西方很流行,起初是从商品期货交易员那里发展起来的,80年代到现在蓬勃发展,逐步应用到所有可交易的金融产品。一般对冲基金,投资银行交易部都有自己的几套经过统计检验有效的系统,rule被编程后,每天由计算机发出指令,操作成百上千个金融产品,人基本不用干涉,就等着在家数钱了。对感兴趣的同学,这个连接是个不错的起点:http://www.trader1688.com/bb/viewforum.php?f=16
rules不一定很复杂,简单的rule经常给出令人意想不到的结果。比如一个较早的著名rule就是:价格突破最近4周最高价就买入。这里给出2个用Excel就可以做的简单rule,基本原理是基于trailing stop(跟踪止损)。
跟踪止损,顾名思意,就是跟随股价移动的止损。以买入股票为例,10.0 $买入,初始止损位设在下面7%处,也就是9.3,以后随着股价的波动,把止损位不断抬高(股价显著上涨之后)或者保持不变(股价下跌,或者涨幅不显著),但止损位决不能下降。直到哪天股价跌破止损位,就清仓出局。
一般来说,跟踪止损策略适用的前提是股价走的趋势明显,走在上升趋势,或者下降趋势中。当趋势不明显的时候,比如振荡市,就会被反复振荡出局,不断被止损,造成损失。
股票技术分析里面的移动平均线,以及SAR指标,都是很著名也有效的trailing stop策略。
下面给出2个策略:
策略1:rule:以做多为例,股价日涨幅超过某个幅度,就抬高止损,抬高幅度为股价涨幅的一个倍数;否则止损保持不变。
见下图:蓝色序列是股票的收盘价格,红色序列是trailing stop(跟踪止损)。 初始的时候,按收盘价买入(buy entry,蓝色序列的最左边的点),止损点设在买入点下面6% 处 (E1中设定的可调参数, 红色序列的最左边的点)。价格只要不跌破trailing stop(红色线),就一直持有;价格涨幅大于4%(E3),就把trailing stop提升1.2倍(E4)的股价涨幅,继续持有。
当某天价格跌破红线trailing stop,就卖出,同时可以再进入空头部位(sell entry,放空)。Trailing stop放在价格的上面6%(E2)处。 只要股价低于红线trailing stop,就一直持有这个空头部位(position);价格跌幅大于4%(E3),就把trailing stop往下移动1.2倍(E4)的股价跌幅。
当股价涨上红线,就清掉这个空头部位(cover the short position),同时可以再进入多头部位(enter long position)。如此循环往复。
注解:图中A列是股价,B列是daily return(B3=A3/A2-1),C列是trailing stop。
C2=A2*$E$1
C3="=IF(A2>=C2,IF(A3>=C2,IF(B3>=$E$3,C2*(1+B3*$E$4),C2),A3*$E$2),IF(A3<C2,IF(-B3>=$E$3,C2*(1+B3*$E$4),C2),A3*$E$1)) "
C4直到最后就拷贝C3的公式。
E列是可调参数。
策略2:rule:进入赌场后,止损价设在股价近期的最高点下面的x%处。
这个策略比第一个更加实用和有效。因为原理更简单,假设(assumption)更少,没有太多的参数要优化和设置,所以极其稳健robust。而且也是个非常实用的风险控制工具:不管在哪一点买入后,只要严格按照给出的价格止损,损失一定是小于等于 x%的。
一般来说,正常的股价调整,不应该从近期的最高点掉落太多,太多就是趋势要反转了,或者是不能延续下去了。另外,每个人把自己的交易记录整理一下也会发现:损失金额超过一定额度的交易,90%以上都是来自于损失百分比超过x%(我做A股的经验是x%在7%-8%)的交易。因此凡是超过一定幅度的损失,都要及时割掉,壮士断臂才不会造成死亡。
B3="=IF(A2>=B2,IF(A3>=B2,MAX(B2*$E$1,A3)*$D$1,A3*$D$2),IF(A3<B2,MIN(B2*$E$2,A3)*$D$2, A3*$D$1))"
D1:买入点(或者近期最高点)以下x%处止损
D2:卖出点(或者近期最低点)以上y%处止损
E1=1/D1
E2=1/D2
一般初始止损x%没有太多争议。近期最高点以下x%的x选取,要考虑的因素:如上分析自己的交易记录、近期股价波动率的统计结果(比如个股波动超过5%是经常的,但是指数的波动大概就只有2%了)
编写公式要点:首先判断昨天是做多还是做空;其次判断今天股价是大于还是小于昨天的跟踪止损价,以决定是不是止损出局。最后根据今天的股价,和昨天的止损价,计算出今天的止损价。
更进一步的,还可以从图上红,蓝线的交叉穿越点,列出entry / exit price,来度量每一笔trade的profit / loss. 一般来说,相邻交叉点的水平间隔越大越好(交易不频繁),垂直距离越大越好(每笔交易获利丰厚)。比如交叉点(long/short signal) 可以用公式找出来:C3=1-SIGN((A3-B3)*(A2-B2)) (见下图中对SP500指数Oct2008-Mar2009交易的副图)
上面的主图是价格和跟踪止损构成的策略2。副图中的每根柱子都对应主图中的入场点,柱子长度表示入场的价格,做多(long entry)的脚下用小柱子区别出来。
上面这张图上,上面的副图表示每笔交易的profit/loss, 下面的副图是equity curve(股票市值曲线),并用同样的策略2对equity curve进行跟踪止损,也即从近期最高市值跌下来5%,就清仓出来休息几周,只做模拟交易。图上表明,初始投入1000,末期市值1400。
策略2.1:策略2中的x%还可以换成N倍的ATR(average true range,一种度量股价近期波动率local volatility的指标)。这样股价波动剧烈的时候止损就离的远些,平静的时候就离的近些。N也可以变化,比如刚入场的时候获利还不多,可以设N=4,随着股价升高,帐面盈利(paper profit, or open profit) 增加,就把N逐步缩小到1,从而锁定利润。 当然,增加了参数,就增加了灵活性,可是以牺牲robust为代价的,即在不同时间,不同市场下的最优参数很可能是不同的。我个人更喜欢robust。
有兴趣的同学可以从finance.yahoo下载美国,中国的股票日收盘数据,在Excel里面替换A列,调整E列中的参数,测试这些策略。
技术分析太复杂了,我现在还是用直觉的。
不复杂,你花个1,2小时深入了解1,2个指标就好了
google上搜资料搜到这里了,挺好的分析。没想到做trader的也有那么喜欢八卦娱乐的。
恩,很适合美股交易,但不知对A股适用否?因为投机>>投资