- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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等于收盘价,随后等于指数平滑移动平均。
迭代这
您可能关注的文档
最近下载
- 2024版肿瘤患者静脉血栓防治指南解读PPT课件.pptx VIP
- 《数字化供应链运营》课件——任务3、数字化供应链结构分析.pptx VIP
- 2018年高考浙江物理试题及详解.pdf
- 八年级劳动测试卷附答案.doc
- DL_T 5369-2021 电力建设工程工程量清单计算规范 火力发电工程--可检索可复制.pdf VIP
- 第18课《井冈翠竹》课件.pptx VIP
- 《数字化供应链运营》课件——任务1、设置供应链体系框架.pptx VIP
- 2025春小学数学北师大版(2024)一年级下册《算一算》教学设计.docx
- 2024版老旧小区改造给排水供暖设施更新施工合同.docx VIP
- 《数字化供应链运营》课件——任务1:规划物流运输网络.pptx VIP
文档评论(0)