打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
通达信公式(语法):赋值语句

这一篇我来讲一下通达信公式的句式。文中我也会频繁的回顾第一个公式“多头吞噬”,以其做一个例子(有可能是反面例子),同时也会用到KD指标这个公式。所以,如果第一次看我的这个系列文章,可以先看一下《通达信公式(概论):第一个公式》,同时了解一下KD指标。


01


前一篇说到句式是通达信公式的骨架,通达信公式有它固定的表达方式,比如我们的语言中有陈述句、疑问句、感叹句等等。而电脑不会有带感情的感叹句,也不会有模棱两可的疑问句,只有陈述句。
你要问现在不是有AI吗,说句话就可以选股了?朋友,通达信只是一个炒股软件,公式只是一个配套工具,AI、人工智能这些就不要想啦。外面呢,同花顺的i问股在这方面做的还可以,不过离智能还有一定的距离,只是减少了部分写代码的过程,而且不一定能满足大家的投资策略。
我实践总结下来,通达信公式的句式主要分为以下三种:赋值语句、输出语句、条件语句。
赋值语句是为了产生中间变量而存在,比如我们有个策略要用到收盘价除以开盘价(不是涨幅,涨幅是收盘价除以前一日收盘价),通达信没有直接结果,但可以用通达信公式系统基础函数O和C,进行计算得出。虽然计算出一个数据,但这个数据若没有输出(形成技术指标)或者应用在条件(条件选股、五彩K线、专家系统)中是没有意义的。
输出语句则在技术指标公式中应用较广,输出一个数据,比如近10个交易日收盘价的平均值,输出到K线图上就是我们看到的10日均线。
条件语句则在技术指标公式,条件选股公式、专家系统公式、五彩K线公式中均有应用,是句法中的核心。所以条件选股语句是本篇的重头戏,也是学好通达信公式必须能灵活应用的内容。

02


今天重点学习一下赋值语句。
赋值语句,顾名思义就是自己定义一个变量,并给这个变量赋予一个数值。大家可能会有疑问,就是通达信公式调用的数据既然已经是通达信公式的默认函数了,为什么还需要这个赋值语句呢?
上面简单说了一个案例,就是收盘价除以开盘价,大家想一想,有没有点眼熟。不错,我们在第一个公式:多头吞噬中用过,主要是给K线实体长度进行量化,用这个值减去1,再取绝对值,就可以得出这根K线的相对长度是几个点,比如大于5%我们就把他称做大阳线、大阴线,1%以下,就是小阳线、小阴线。
但是我们注意,这个指标是K线策略才会重点关注的指标,如果你用KD指标而不怎么看K线,那么大概率不会用到这个数据。换句话说,不同的策略可能会用到很多定制化的数据,如果针对每个策略的数据都做到函数中,通达信只能说:

虽然通达信做不到,但实际上这也没必要,比如上面的那个阳线长度就可以用通达信的基础函数(C和O)加工而成,对吧。
因此,我们想要通达信公式系统为我所用,极大可能需要通过基础数据加工属于自己的数据。

03


接下来我们来用KD指标的公式讲解一下赋值语句。下图是通达信中内置的KD指标函数,在公式管理器——技术指标中可以找他:

双击KD公式后就进入公式编辑器,看到KD指标的公式如下:
KD指标公式的第一句就是典型的赋值语句,我们可以看到赋值语句的标准格式是:
XXX:=XXX;
公式分为左右两个部分,并用“:=”连接起来:
“:=”前面是我们自定义的变量名,随便取,但为便于使用,最好选取变量中文名称的缩写,比如K线长度,我们可以取名KXCD,而KD指标是国外传来的,所以RSV用的是英文单词Raw Stochastic Value(未成熟随机值)的字母,后面的公式语句中就可以直接调用,比如K值就用到了RSV这个变量。
“:=”后面就是这个变量的计算公式,计算完成后将数值赋予变量名,这就是赋值公式的由来。
回到KD公式,公式中RSV是怎么计算的呢:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
我们来翻译一下:
首先看一下公式编辑器中的解释:
RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
还是很程序化的语言嘛!
接下来用人话翻译一下:由于N值一般用的是9,我就按9来翻译:未成熟随机值就是当前周期收盘价在9天内最高点和最低点的相对位置。因为K值,D值是对RSV均值平滑处理,所以KD指标的超买超卖精髓,实际上就是近期股价在9日中最高价和最低价之间的位置,离最低价近一点,就处于超卖状态,而离最高价近一点就处于超买状态。
再说简单点,KD指标就是跌多了就看多,涨多了就看空。

竟然这么简单?
曾经多么神奇的KD指标,我们一拆开来,其实也没什么神秘的对不对,竟然这么简单。所以说,学好公式,能够破除很多神奇公式的迷信,让我们能够把握指标的本质,而不是被胡里花哨的包装所迷惑。(很多所谓量化投资策略,说开来也很简单,但是用Python语言这么一写,加点什么神经网络,机器学习的概念,看似高大上,实际可能追溯到根本就是涨多了卖,跌多了买而已)

04


看到这里,你可能会有点纳闷:不对啊,按照你的格式,你的这个多头吞噬公式里面哪里有赋值语句啊。
嗯,你观察得很仔细!
我上面说了,赋值语句实际上是一个中间语句,一个公式中可以没有赋值语句,比如在KD指标中,我们可以完全不用RSV这个中间变量,直接这么写,效果也是一样的。
这个时候,就要介绍一下多头吞噬这个反面案例了:
这么说吧,我刚开始学公式的时候,虽然我经常用到一些加工后的数据,但却没有使用赋值语句,就像之前多头吞噬的公式,一股脑写在一句公式当中。
看这个多头吞噬公式,虽然我写了三行,但实际上他是一个句子,只有一个分号。这一句话用三个AND连接了起来。
实际上他是这样的:
REF(C,1)<REF(O,1) AND REF(O,1)/REF(C,1)>1.005 AND C>O AND C>REF(O,1) AND O<REF(C,1) AND C/O>1.01;
这样写公式的结果就是,造成单句语句特别长,长的句子会有一个问题,就是万一里面出错了,通达信只提示这一句有问题,然后我就找啊找,找了半天,发现少了个括号!别笑,当你用带参数的函数比较多的时候,三四个括号叠加在一起时很常见,到时候数括号数的眼花,早期我就深受其害,更何况很多公式远比这个复杂。
所以,我们把K线实体长度写成一个变量试试:K线长度KXCD:=ABS(1-C/O)(1减去收盘价和开盘价的比值再取绝对值)。
于是多头吞噬公式变为:
在这个公式中,虽然篇幅似乎还多了,但是如果提示第二句有错误,我们就没必要再去看这个实体长度的描述有没有问题。而且有了这个实体长度的变量公式,以后只要我们还用到实体长度这个变量直接调用就可以了。
看到这儿,有没有朋友看出我们修改后的多头吞噬还有一点小问题呢?对了,就是每句最后不要忘了分号,KXCD赋值之后,没有点分号。
这下我们就真正完成了,如果你自己编写的公式句子比较多,特别是很多中间变量要写成赋值语句,那一定记住,不要忘了每句后面的分号。

05

最后总结一下赋值语句的要点:
(1)赋值语句是中间语句,一个公式中可以视其复杂程度,不用赋值语句。同时一句赋值语句,也无法是一个独立的公式,也就是说,只有赋值语句的公式是没有意义的;
(2)当我们主要使用一类指标时,比如K线,则有必要对一些本策略体系常用的中间变量(比如K线实体长度)用赋值语言进行标准化,方便后面我们其他的公式使用;
(3)使用赋值语句能够有效地降低单句语句的复杂程度,降低我们检查bug的难度。
  通达信公式(序):轻松打造量化系统
  通达信公式(概述):准备工作
  通达信公式(概述):公式管理器
  通达信公式(概述):第一个公式
  通达信公式(概述):核心模块一览
  通达信公式(语法):概述
  通达信公式(番外):巧用通达信 轻松避天雷
  通达信公式(番外):量化的理念起源—K线

友情提示

宽客吧为专注交易型指数基金(ETF)研究,重点围绕ETF产品,打造ETF一、二级市场资讯及投研平台,持续为投资者提供ETF及时资讯及投资策略,帮助大家在ETF投资过程中梳理科学投资理念,建立和完善投资策略,降低投研成本。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
无需编程,只要你有这个炒股软件,量化投资就是这么简单
技术指标怎么回事?学会通达信公式系统轻松看懂
教你公式入门
kd指标里连续3天大于80的选股公式
通达信买点100%指标公式-通达信公式-股旁网
追买进去准备翻翻指标公式[通达信公式]
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服