网站大量收购独家精品文档,联系QQ:2885784924

分析家V5.0公式系统使用与提高.doc

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分析家V5.0公式系统使用与提高

PAGE  PAGE 43 分析家V5.0公式系统 分析家V5.0公式系统在兼容旧版本公式系统的基础上,引入了一些全新的概念,为书写、描述更为复杂的公式提供了强有力的工具。对于有一定公式编写基础的用户,可以学习以下内容,掌握分析家新公式系统的强大功能。 分析家新公式系统简介 你是否在编写公式的过程中有以下困惑: 书写很长的而且大量重复的公式 为怎样描述一个特殊的概念而伤透脑筋 希望增加公式系统的函数数量 希望了解计算过程中,中间结果的数值 希望自己编写函数 如果有,那么你就需要使用分析家V5.0公式系统了,新的公式系统全面兼容以前的公式系统,同时还给你带来许多革命性的特性。新公式系统的增加的主要内容有: 新增迭代、分支、循环等标准程序语言语法 强大的字符串和数组运算 内建调试器,方便公式查错 分析家新公式系统为用户提供??两个公式编辑器:一个是专业公式编辑器,通过公式管理器可以进入,它提供了公式编辑、编译、调试等多种功能,是一个功能强大的编辑器;另一个是标准编辑器,它与过去版本界面类似,通过除了公式管理器以外的位置均进入到这个标准编辑器,它短小精干,易于使用。 这些新增的内容有一定的难度,适合具有计算机编程知识的用户阅读。通过下面章节的学习,你将会逐步了解到这些新特性将给你带来的方便。 隐含在公式中的循环 计算的顺序 在公式系统中,每一个公式是按照语句顺序执行的,例如: V0:=MA(CLOSE,5); V1:=MA(CLOSE,10); 将首先执行5日均线的计算,然后再计算10日均线,但是我们忽略了一个问题,那就是其中还隐含了一个时间顺序的问题,也就是说先计算昨天的数值再计算今天的数值。这样,我们就有了两个顺序——语句顺序和时间顺序,我们到底以哪一个顺序为优先呢?答案是以时间顺序为优先,也就是说计算第一天的V0,第一天的V1,然后是第二天的V0,第二天的V1…。对于上面这个例子,由于前后语句之间不存在相互影响,所以到底哪个顺序优先并不影响结果,因此很多人都忽略了这个问题,认为因该首先计算完所有的V0,然后再计算V1。但是在看下面例子: V0:=IF(V1CLOSE,CLOSE,V1); V1:=MA(CLOSE,10); 前面的语句引用了后面的数据,这样V1昨天的计算结果就会影响到V0的计算,此时就必须以时间顺序为优先。 有了这个时间顺序优先,我们就可以解决过去前后数据互相引用、变量重新赋值、迭代计算等问题了。 因此我们应当按照这样的方式思考:我们用公式描述一天的情况,而不是描述一条曲线,整个公式又隐含着一个时间循环,当算完一天的数据后,又重新回到公式起点,计算第二天的数据,如此循环直到计算完所有的数据。需要注意的是,这个隐含循环中可能存在前面语句引用后面数据的问题,如上例中第一个语句中引用了V1变量,而V1变量需要到第二句才有赋值,所以此时它的数值是在上一轮循环中第二条语句所赋值的,也就是昨天的10日均线数值。这是不是有点太复杂了,但是我们将看到这种循环为我们带来的好处。 迭代计算 我么在分析中经常会用到迭代的概念,比如说指数平滑移动平均线EMA,今日均线等于昨日均线*(N-1)加上近日收盘价*2,然后再除以N+1。这样的问题还包括SMA、DMA等等。所谓迭代就是用上一周期的数值来计算本周期的数值。 过去由于公式系统不能直接支持迭代,所以只能用函数来实现这些迭代功能,而是用心公式系统后,迭代变得可以自己实现了,而且非常简单。以EMA为例: V1 := (V1*(N-1) + CLOSE*2) / (N+1); 就这么简单,直接按照其原理书写就可以了。我们来分析一下为什么可以这样写。赋值符号 := 左边的V1表示本周期的数值,而右边的V1由于还没有赋值,还保持着上一周期的数值,因此这个V1就还维持着上次计算的结果,也就是上周期的数值,此时它等同于REF(V1,1)。同样的,SMA可以表述为: V1 := (V1*(N-1) + CLOSE) / N; 需要注意的是,在本语句之后,由于V1已经被赋值,所以它的数值也就变成本周期的数值了。类似的例子还包括:若上周期V1值大于收盘价,则V1等于最高价,否则等于最低价: V1:= IF(V1CLOSE, HIGH, LOW); 前面的例子: V1 := (V1*(N-1)+CLOSE)/N; 我们可能会问,计算第一天的时候,V1的数值是多少。如无特殊说明,变量的初始数值等于0。显然在这个问题中这个设定是不正确的,因为V1等于0的话,计算结果就等于CLOSE/N,显然他不等于第一天的均值,因此我们需要这样说明: V1 :=IF(BARPOS=0,CLOSE, (V1*(N-1)+CLOSE)/N); 当计算第一天的时候,V1等于收盘价,随后等于指数平滑移动平均。 迭代这

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档