D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘}
E:=REF(A,1) AND C F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 规律就更明显了。 不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。 这只是简单的例子,用这两个函数,可以做出很多的有用的统计数据。 多数的交易系统的“胜率”,可以由此统计出来。 出个“难题”吧: 有个MA5金叉MA10作为买入条件,死叉为卖出条件的交易系统,试做一个副图公式,以每次买一股计算,统计出最后的交易结果(暂不考虑手续费)。买入卖出均以收盘价计算。 二、 函数: REF(X,N) 参数: X为数组,N为计算周期 返回: 返回数组 说明: 引用N周期前的X值。 示例: REF(CLOSE,1) 表示上一周期的收盘价,在日线上就是昨收 REF:REFERENCED,参考的、引用的。 N可以为变量,常用BARSLAST(X)等。 三、 函数: MA(X,N) 参数: X为数组,N为计算周期 返回: 返回数组 说明: 求X的N日移动平均值。 算法: (X1+X2+X3+...+Xn)/N 示例: MA(CLOSE,10),表示求10日均价 MA:MOVING AVERAGE,移动平均。 目前飞狐的MA(X,N)函数支持N为序列变量。 这个简单移动平均值,仅仅覆盖最近的N个周期,并且在每个周期中分配的权重是一模一样的,均为1/N。 移动平均线实质上是一种追踪趋势的工具,而且滞后于市场的变化。这些结果的原因,就是它的计算方法了。 从输出看,N所取周期越长,曲线就越平滑。 平滑和敏感是一对矛盾,请看: A:MA(C,5); B:MA(A,5); D:MA(B,5);{主图叠加} 输出线越来越平滑,但敏感性越来越差。 两条简单移动平均线的交叉,何时、何地所选的参数最优,可以参考飞狐中的“探索最佳参数”功能。 线性加权移动平均值的算法函数,飞狐并未提供。 以五天的线性加权移动平均的算法为例: 五天线性加权:(C*5+REF(C,1)*4+REF(C,2)*3+REF(C,3)*2+REF(C,4)*1)/(5+4+3+2+1); MA(C,5);{主图叠加} 由于算法的原因,线性加权移动平均线由于日子越近的权重越大,比简单移动平均线,跟随趋势要紧密一些,敏感一些。 从图上看,两者的交叉也是极为敏感的。 四、 函数: EMA(X,N) 参数: X为数组,N为计算周期 返回: 返回数组 说明: 求X的N日指数平滑移动平均。 算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。 示例: EMA(CLOSE,30) 表示求30日指数平滑均价 EMA中的E,可能是EXPONENT,指数、幂。 把算法写成这个样子:Y=2*X/(N+1)+(N-1)/(N+1)*Y',就可以看出,当前周期数组值所占的权重是2/(N+1),而上一周期Y值所占的权重是(N-1)/(N+1)。注意,这两个权重相加,结果为1:2/(N+1)+(N-1)/(N+1)=1。 由于一个很经典的指标指数平滑异同平均线MACD(1979年就发明出来了)里面,要用到EMA,才使EMA还在基本函数中占有一席之地。后面我们可以看到,用SMA也可以达到相同的算法。 N可以取到1,不过输出就没有加权的效果了。 五、 函数: SMA(X,N,M) 参数: X为数组,N为计算周期,M为权重 返回: 返回数组 说明: 求X的N日移动平均,M为权重。 算法: 若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。 示例: SMA(CLOSE,30,1) 表示求30日移动平均价 SMA中的S,不会是SIMPLE(简单)的意思吧?由于我们习惯称MA为简单移动平均线,所以称SMA为什么就大伤脑筋。 我的理解,SMA应该称为指数加权移动平均线。不对之处请方家指出。 把算法写成这个样子:Y=M/N*X+(N-M)/N*Y',就可以看出,当前周期数组值所占的权重是M/N,而上一周期Y值所占的权重是(N-M)/N。注意,这两个权重相加,结果为1:M/N+(N-M)/N=1。