分享

高手解析未来函数【一】

 天高云又淡 2014-10-15

高手解析未来函数【一】-----XMA

(2014-09-04 00:12:49)

您可以自己试着摸索她的算法。知道了算法,就彻底了解她了.

 

关于XMA函数的探讨

1.XMA只在通达信可用,其他股软可用下面代码的后两句代替XMA测试A:=XMA(H,N);B:=MA(H,N);REF(A,FLOOR(N/2));MA((H-FORCAST(H,CEILING(N/2))),N)+B;需要注意的是 FORCAST 是属于"未来"的3楼的把动态行情和财务数据都归于"未来",那就什么也别做了。

 


2.通达信公式系统的几个函数的解释MA:简单移动平均SMA:移动平均EMA(EXPMA):指数移动平均EXPMEMA:指数平滑移动平均MEMA:平滑移动平均DMA:动态移动平均XMA(X,M):偏移移动平均EMA同EXPMA一样的意思EMA(X,N)=SMA(X,N+1,2)SMA:返回累积平均用法:SMA(X,N,M):X的M日累积平均,M为权重,如Y=(X*M+Y'*(N-M))/NMA(X,N)=SMA(X,N,1)MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值DMA:求动态移动平均.用法:DMA(X,A),求X的动态移动平均.算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1.例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价XMA(X,M):X的M日偏移移动平均这种移动平均可能会用到未来数据,用到了当日以后M/2日的数据,只供内部保留测试使用

 

 


3.自己研究一下{关于 XMA}XMA(X,M):X的M日偏移移动平均这种移动平均可能会用到未来数据,用到了当日以后M/2日的数据,只供内部保留测试使用xma函数分析(通达信)A:XMA(C,N);B:=MA(C,N);X:REF(A,FLOOR(N/2));Y:MA((C-FORCAST(C,CEILING(N/2))),N)+B;你将看到 x 和 y 基本吻合,而 x 滞后 A FLOOR(N/2) 个周期飞狐可做如下模拟实现}input:k(0,0,3),n(6,1,9999);M:=IF(k=0,OPEN,IF(k=1,HIGH,IF(k=2,LOW,CLOSE)));XMA:REFX(MA((M-FORCAST(M,CEILING(N/2))),N)+MA(M,N),CEILING(N/2));普通MA:MA(C,N);

 


4.{指标名称----------观察偏移}M:20,NODRAW;{M的大小可在这里自由调}A0:=EMA((MA(HHV(H,2),2)+MA(LLV(L,2),2))/2,2);原形:MA(A0,M),COLOR00AAEE;偏移:XMA(A0,M),COLOR00FF00;DRAWTEXT(原形>REF(原形,1) AND REF(原形,1)REF(偏移,1) AND REF(偏移,1)REF(原形,2),原形,'◎'),COLOR00BBFF;DRAWTEXT(偏移REF(偏移,2),偏移,'◎'),COLOR99FF00;{先用这个原码看看图形,重点看绿★到黄★ 绿◎到黄◎的间隔周期与M的一半(M/2)的关系,再对比出现黄绿信号时的指标数值,你一定会有新的发现}

 

 


5.关于 XMAXMA(X,M):X的M日偏移移动平均这种移动平均可能会用到未来数据,用到了当日以后M/2日的数据,只供内部保留测试使用xma函数分析(通达信)A:XMA(C,N);B:=MA(C,N);X:REF(A,FLOOR(N/2));Y:MA((C-FORCAST(C,CEILING(N/2))),N)+B;你将看到 x 和 y 基本吻合,而 x 滞后 A FLOOR(N/2) 个周期飞狐可做如下模拟实现input:k(0,0,3),n(6,1,9999);M:=IF(k=0,OPEN,IF(k=1,HIGH,IF(k=2,LOW,CLOSE)));REFX(MA((M-FORCAST(M,CEILING(N/2))),N)+MA(M,N),CEILING(N/2));其他股软不易实现由于使用了未来数据,慎用!!!

 

 

6.先说说偶使用xma的基本理念供大家讨论:首先回顾一下xma(c,n)1、在n/2日以前部分,是移中均线(这段基于已经发生的历史数据,是真实可信的,以后也不会再变动)2、在n/2日以后部分,简单的取已知数据的平均值作为未来数据供计算使用。(例释:根据已经知道的40个交易日数据,xma预计下一个交易的收盘价是这40天的均价;根据已经知道的39个交易日数据,xma预计下2个交易的收盘价都是这39天的均价)(这段使用了部分未来数据,以后会变的)因此提出下面两条使用xma的基本原则1、以更合理的方法对未来进行预测n/2日以后,xma简单的取已知数据的平均值作为未来数据供计算使用,这实际上是随机走动理论的体现,否定了股市中存在趋势偶根据道琼斯理论按历史上数据变动的趋势对未来进行预测(顺便说一句,偶是道氏的粉丝^_^)2、严格区分已经发生的历史和对未来的预测偶目前的方法是将xma的输出截断,保留真实可靠的移中均线部分虽然偶认为趋势理论优于随机走动理论,但预测毕竟是预测不能等同于事实因此将两部分分段画图,中间留一个缺口,明确两者之间的边界

 

 

7.XMA到底是什么?揭开XMA的面纱!
XMA到底是什么?揭开XMA的面纱!我将XMA函数的面纱向大家揭开,但从上次我发出XMA函数源码求助帖至今,我仍然没有获得XMA函数的源码,如果有高手知道的可以交流。我上次因是新人不知道版规就为求助XMA函数源码、长时间挂贴、没获得最满意的解答擦掉求助帖而挨千钧老师的板子,在此向千钧老师再次道歉,现在知道版规了,不会再瞎擦了,请放心。            XMA到底是什么?揭开XMA的面纱!1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20.。。。。。。。。如果在10这个地方统计MA(C,5)=(6+7+8+9+10)/5;这是以10为终点,向前统计法;如果在10这个地方统计XMA(C,5)=(8+9+10+11+12)/5;这是以10为中点,从中间向前和向后统计法;如果在10这个地方统计MA(C,7)=(4+5+6+7+8+9+10)/7;这是以10为终点,向前统计法;如果在10这个地方统计XMA(C,7)=(7+8+9+10+11+12+13)/7;这是以10为中点,从中间向前和向后统计法;如果在10这个地方统计MA(C,9)=(2+3+4+5+6+7+8+9+10)/9;这是以10为终点,向前统计法;如果在10这个地方统计XMA(C,9)=(6+7+8+9+10+11+12+13+14)/9;这是以10为中点,从中间向前和向后统计法;假如今天就是10号收盘,前面的数据已经发生了,但是11号、12、13、14、15、16、17、18、19、20......没有发生,没有发生就没数据,但XMA如何给没发生的赋值数据呢?原理很简单:假如是XMA(C,7),以10号收盘来统计XMA(C,7),7、8、9、10数据已经有了,但11、12、13还没发生,数据没有,怎么办?就是这用7、8、9、10这4天的平均价赋值分别给11、12、13;然后全部求平均。如果是N天呢?N天后的没有发生的怎么赋值?那就用N天前的包括N天的((N+1)/2)天的平均价赋值;但是有一点,XMA还怪在这里:当今天10号已经过去,11号变成今天,昨天对11号没发生的赋值又会用今天的实际值来取代。用11号实际发生的数值取代昨天对今天的赋值;XMA(C,N)里的一般为奇数,当N设定为偶数时候,它怎么办呢?就是自动采用N+1法自动调整为奇数。

 

 

 

8.{指标名称----------观察偏移}M:20,NODRAW;{M的大小可在这里自由调}A0:=EMA((MA(HHV(H,2),2)+MA(LLV(L,2),2))/2,2);原形:MA(A0,M),COLOR00AAEE;偏移:XMA(A0,M),COLOR00FF00;DRAWTEXT(原形>REF(原形,1) AND REF(原形,1)REF(偏移,1) AND REF(偏移,1)REF(原形,2),原形,'◎'),COLOR00BBFF;DRAWTEXT(偏移REF(偏移,2),偏移,'◎'),COLOR99FF00;{先用这个原码看看图形,重点看绿★到黄★ 绿◎到黄◎的间隔周期与M的一半(M/2)的关系,再对比出现黄绿信号时的指标数值,你一定会有新的发现}------------声明:这可不是飞狐的哟

 

 


9.昨天XMA,感觉指示蛮准的,为了搞清编制原理,上网搜索一下,好像没人知道,经过一天的琢磨,终于破解:XMA(X,N)为INT(N/2)+i个X的均值,其中 i 由最后一交易日倒数到INT(N/2)+1, 即 1 到INT(N/2)+1,i 倒数至INT(N/2)+1后,XMA(X,N)值为2*INT(N/2)+1个X的均值。因此,倒数INT(N/2)+1个XMA值便是最终值(不再变化),而倒数1 到INT(N/2)个XMA终值受未来INT(N/2)-i+1个X的影响,由此看来XMA(X,N)是个未来函数,具有欺骗性。


       
补充说明:X的取值在 i >INT(N/2)后,以 i 为中心的2*INT(N/2)+1个数值;i <=INT(N/2),右侧被截断INT(N/2)-i+1个。谢谢指点!破解前没有搜索到该帖,现在补看一下。
不过,我还是要奉劝你一句:为人最好谦虚点,特别是想教训或怀疑别人的时候。
象你这样连我对XMA描述都看不懂,就怀疑我抄袭。等同于我怀疑你有智障一样无礼!尽管我怀疑你有智障有充分的理由。

 

为了让你明白我关于XMA(X,N)的描述,再多说几句:
XMA(X,N)值观察点的位置对应于X序列倒数排序值i
1. 在i >INT(N/2)时,X序列中X(i)位于X(INT(N/2))左侧,如:
    ...、X(i)、...、X(INT(N/2))、...、X(3)、X(2)、X(1)
    在X(i)处显示的XMA(X,N),是以X(i)为中心的2*INT(N/2)+1个X均值
    此时XMA(X,N)的X均值数组为:
    X(i+INT(N/2))、...、X(i)...、X(i-INT(N/2)),即X(i)为中心、向左/右再连续各取INT(N/2)个X。
    由于i >INT(N/2),所以i-INT(N/2)>=1,只要最后交易日收盘后X(1)就不再变化,XMA(X,N)向右连续取INT(N/2)个X时就不存在不确定值,所以说序列倒数至INT(N/2)+1后对应的XMA值便是最终值(不再受未来数据影响),这时通达信的REF(XMA(X,N),INTPART(N/2))与MA(X,2*INTPART(N/2)+1)完全一致。

 

 

2. 在i <=INT(N/2)时,X序列中X(i)位于X(INT(N/2))右侧,如:
    ...、X(INT(N/2))、...、X(i)...、X(3)、X(2)、X(1)
   在X(i)处显示的XMA(X,N),不再是以X(i)为中心的2*INT(N/2)+1个X均值,而是X(i)、向左连续取INT(N/2)个X、向右只能取到i-1个X,由这INT(N/2)+i个X的均值得到此处的XMA(X,N),即此时XMA(X,N)的X均值数组为:
    X(i+INT(N/2))、...、X(INT(N/2))、...、X(i)...、X(1)。
   相比X均值数组的饱和个数2*INT(N/2)+1,此时数组被截断2*INT(N/2)+1-(INT(N/2)+i)=INT(N/2)-i+1个X。
   在未来不断增添的最后一交易日过程中,目前观察点在X序列将重新排序,同一交易日所对应的序列位置将左移,即i 值会增大,该交易日的XMA(X,N) 均值数组扩大(直至i >INT(N/2)后均值数组饱和为止),数值被不断修正、发生漂移,此时的XMA(X,N)最终值受未来INT(N/2)-i+1个X的影响。

 

 

MA和XMA的一部分算法一样。比如:


MA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N


XMA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N


这两个函数的这个值算法相同。不同的是这个值放到什么位置上。

 


MA是把这个值放到计算当天。而XMA把这个值放到向前数第(N+1)/2的位置上。所以从这个角度看,XMA更符合平均值的计算原理,把平均值赋给中间数才是合理的。MA虽然使数值固定不变,但对原理来讲并不合理。

 


因为XMA把数值赋给中间位置的数,所以就存在一个问题,就是所有在中间数值{(N+1)/2}这个位置以前的数都是固定不变的了,那么就出现一个问题,在中间数值{(N+1)/2}这个位置以后的{(N-1)/2}位的数值怎么给定?这些位置数值的算法是什么样的那?

 


我们这里举个容易判断的例子。给定N值=5。


那么(5+1)/2=3,3位和其之前的数都固定了,只有本位数和{(N-1)/2}位数没有固定,这两个数值怎么给出那?


当日本位MA(C,N)的数值=[当日起向前((N+1)/2)位的数值之和]/(N+1)/2。


当日向前M日位置的数值:


=[当日起向前((N+1)/2+M)位的数值之和]/[(N+1)/2+M]。


一直到((N+1)/2+M)+1=N为止。


期间位数为偶数时等同加一位,例如N=2相当于N=3来处理。

 

 

 

XMA(C,N)嵌套循环,其中N值取的小一些,这样,如果循环的次数越多,对以前的数值影响长度就越大,但数值变化幅度减小,对近期的数值变化幅度也减小,这样的好处是使越接近现在的数值变化的范围可以小一些,减少近期失真或过度漂移的现象,不利的地方是使整条均线数值的大部分成为动态值,只不过动态范围很小。

 


如果XMA(C,N)不使用嵌套循环,N值取的过小,均线不平滑。N值取得大一些,近期N的后半期数值变化(漂移)幅度会比嵌套循环的幅度大一些,也就是说接近近期的数值漂移会比嵌套的严重些,但优点是在N/2之前的数值全部固定不变,不会有任何漂移了。


 

下面是我为了分析做的图表,从图表中可以看出,(这里我做的是一个3天23层循环套XMA的原理)循环的层数等于向前影响的天数,就是说一个3天23层的XMA循环套的均线值从收盘当日起向前23天都是变化的,而且随着嵌套层的增加,这种向前的影响不断增加,但幅度不断减小。因为层数越多其中参与计算的固定下来的数值越多,第一天没有固定值,第二天有两个固定值,第三天有三个,不断增加。我们假设一下,如果这种嵌套接近无穷,那么可以认为这条均线每天都变化,是整体变化,就是说当天的收盘数值将影响到上市前3天的均线数值,哈哈,这个未来影响满大的,不过幅度会很小很小,因为他平均了上市以来的所有波动,因为时间漫长,摊到每一天上就很小了很小了。

 

如果有时间,我想用编程语言模拟进行一次计算,看看影响到底是什么样子的。

 


高手解析未来函数【一】-----XMA


【东方昱晓】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多