分享

(一)公式编写入门(系列讲座)

 西域公主 2010-11-02

 论坛来了很多新会员。为了提高对公式编辑没有基础的朋友运用公式、自我修改公式,编写公式的能力,开办此讲座。
  本系列讲座适用于初学者。每周平均至少一个专题。
  本系列讲座侧重基础和实用性。
  本系列讲座的函数以飞狐为基础,同时尽量兼顾其他股软。
  欢迎大家针对已开展的专题进行探讨和交流。
  由于本人水平有限,错误之处请随时指正。

                   总目录
第一讲:认识公式编辑器----------第1页
第二讲:公式编写的基础函数--------第2页
第三讲:认识颜色符号或绘图函数------第5页 附件:《公式函数电子书》和《颜色调配器》
第四讲:源码的引入和修改---------第7页
第五讲:各种形态的描述----------第8页
第六讲:均线(选股)的基本形态------第9页
第七讲:在源码中提取选股公式-------第10页
第八讲:函数的综合运用----------第11页
第九讲:常用函数示例-----------第13页
第十讲:系统常用指标原理解析-------第13页
       全文完

第一讲:认识公式编辑器 
   公式编辑器是导入源码和进行编写指标的窗口。公式编辑器共分4种,分别是:
  1、技术指标公式编辑器;
  2、条件选股公式编辑器;
  3、交易系统公式编辑器;
  4、五彩K线公式编辑器。
  由于这几种编辑器的展开和使用大同小异。所以,本文仅以技术指标公式编辑器为例加以说明。
  由于目前各种股软的区别,不仅有些函数不通用,编辑器的打开方式也略有区别。本讲就是告诉大家如何展开公式编辑器。
  以下共分5个图片说明打开《公式编辑器》的方法:

第二讲:公式编写的基础函数

  打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。
  一、K线函数
  非常简单,大家都可能熟知。作为基础,还是说明一下。
  1、开盘价:OPEN 可简写为 O
  2、最高价:HIGH 可简写为  H
  3、最低价:LOW  可简写为  L
  4、收盘价:CLOSE 可简写为  C
  有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C<o; 收阳线则互为相反。
  那么长下影的光头阳线,即 T 形线呢?理解了原理,也很简单。一要以最高价收盘(否则有上影),二要开盘价大于最低价。所以有如下表示:C=H AND O>L;这里我们没有考虑下影的长度和 T 字上边一横(实体部分)的宽度。
  习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述 
  特别提示:编辑指标必须在英文状态下输入。其中运用的数学符号,包括加减乘除、分号,引号等(+ - * / ; "" ''><#)也必须在英文状态下输入。
    二、均线函数
  单根K线的形态是相当枯燥的。尤其在主图里。配合以均线等形式就会丰富多采,或者更利于我们从中发现规律和分析问题。这就需要均线函数来解决了。
最常见的:
  1、MA(X,N),求X的N周期简单移动平均值。
  算法:(X1+X2+X3+...+Xn)/N
  例如:MA(CLOSE,20),表示求20日均价。
  2、EMA(X,N),求X的N周期指数平滑移动平均。
  算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。
  例如:EMA(CLOSE,20),表示求20日指数平滑均价。
  3、SMA(X,N,M),求X的N周期移动平均,M为权重。
  算法: 若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。
  例如:SMA(CLOSE,20,1),表示求20日移动平均价。
  这三个均线函数在股软中是通用的。关于它们的区别,开始学习时不必深究。其实数值区别也不是很大。要均线真实反映每天的价格变化,用MA,适当圆滑些,用EMA 或SMA。
  三、常用连接函数
有了上述基本函数,可以表述出K线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。
大致有这么几个:
  1、AND 就是“和”的意思。如:A AND B;就是A和B两个条件要同时成立。
  2、OR “或”,“或者”的意思。如:A OR B;就是A和B两个条件有其中一个成立就行。
  3、IF 根据条件取不同的值。如:IF(X,A,B),若X不为0则返回A,否则返回B。实例:IF(C<O,L,H),表示收阴返回最低价,否则返回最高价。
  4、CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B。
  5、REF 向前引用。引用若干周期前的数据。例如:REF(CLOSE,1),表示昨收的收盘价。那么前天的最高价呢,就是:REF(H,2)。
  四、成交量 
  VOL 表示每天的成交量。因以后会经常用到,所以先交待给大家。
  上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。当然,记不住也不要紧,《公式编辑器》中全有。
  习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
听雪寻股
习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述?
c=h and c-o<0.05 and  o-l>(c-o)*2;

STICKLINE(c=h and c-o<0.05 and  o-l>(c-o)*2,o,c,8,1),COLORRED;
STICKLINE(c=h and c-o<0.05 and  o-l>(c-o)*2,o,l,1,0),COLORRED;

习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。

aa10:=ma(c,10);
aa20:=ma(c,20);
zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0);
av:=v>=ref(v,1)*2;
CROSS(aa10,aa20) and zf and  av
以上作业请老师批阅
大庆老杨老师批改如下

此句 zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0); 如下表述更简练些:zf:=c/ref(c,1)>0.03;
关于两个习题,听雪寻股都回答的非常好,完全正确。已加分鼓励。
其实,有时编写公式就这么简单。以上就可看做是两个选股公式。
此句 zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0); 如下表述更简练些:zf:=c/ref(c,1)>0.03;
单独提出此句,是告诉大家。编写公式和数学解题一样,有很多时候可能有多种方法,殊途同归。这也是有时对于同一求助问题,不同的人有不同的回复一样。
这个习题,运用了第二讲中的内容:1,涨幅,就是收盘价与昨天的收盘价之比。2,昨天的表示符号(向前引用函数)和其他运算符号。

网通用户
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
答:CROSS(MA(CLOSE,10),MA(CLOSE,20)) AND C/REF(CLOSE,1)>3/100 AND VOL/REF(VOL,1)=2

方方面面2008
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
答:CROSS(MA(CLOSE,10),MA(CLOSE,20)) AND C>0.03*REF(CLOSE,1) AND VOL>=2*VOLREF(VOL,1)

大庆老杨
基本正确。用一句话概括,精简。
需要指出的是最后一句:“成交量比昨天放大一倍”,这句话的表述。老兄用的是:VOL/REF(VOL,1)=2 ,应该是非常准确。但在实际应用中,却是行不通的。正好等于2倍是极难遇到的,所以编写公式变通的办法,或者说应该用的是:VOL/REF(VOL,1)>=2 ,更符合实际。
增加一个大于号,成为问题的关键所在。
提出这个问题,并非小题大作,应该看做以后编写时的注意事项。

第三讲:认识颜色符号或绘图函数

  我们所看到的指标是以线为基础的。不论是均线,K线,或在线与点之间的填充,又都离不开颜色。正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感。本讲就是告诉大家如何利用颜色或修改颜色。
  一、颜色函数
  (一)基本符号:COLOR
  所有显示颜色时,都必须用这个符号做为引导。但它本身并没有色彩,在它的后面还需加上具体的颜色,才能使用。
  举例:COLORBLACK;后面加上英文的黑色单词,在图中就会显示出黑色来了。
  (二)常用颜色:
颜 色   1:飞狐的:   2、大智慧2   3、大智慧  4、通达信    5、同花顺  6、通用符号  

红 色   COLORRED;      同前        同前      与飞狐基本相通   同 前
白 色   COLORWHITE;    同前         同前    一般不用修改    以下略-- 
黄  色       COLORYELLOW;    同前         同前   以下略--
黑 色   COLORBLACK;    同前
蓝 色   COLORBLUE;      同前        同前                   COLORFFFF00
棕 色   COLORBROWN;    同前      COLOR0055FF
青 色(淡蓝)COLORCYAN;     同前      COLORFFFF00                COLORF0F000
灰 色   COLORGRAY;     同前         同前
绿 色   COLORGREEN;     同前        同前                       COLOR00FF00
晶红色(粉)COLORMAGENTA;    同前       COLORff00ff                  COLORF00FF0

此外还有:金黄色COLOR008364 紫红COLOR000999 深黄色COLOR00CCCC 紫罗蓝COLORE66878 等等。

  (三)常见颜色问题。
  从上表中我们可以看出,大部分颜色符号是通用的。但在将源码粘贴时,因股软的不同,有时会出现《未定义的标识符》字样,很多时候就是颜色惹的祸。常见的是:
COLORCYAN   淡蓝色,大智慧不识别,需改成:COLORFF0000
COLORMAGENTA 晶红色,大智慧不识别,需改成:COLORF00FF0
  特别提示:找不到相对应的颜色函数怎么办?一是删除,让系统自动填加。二是更换数字或字母。
       实际上只要在COLOR后面加上0-9、A-F中的任意6个数字字母,就可组成不同的颜色。有兴趣的可试试
  (四)指标线粗细函数 LINETHICK 放在语句的后面,用 , 号隔开。例:LINETHICK2,后面的数值越大,线就越粗。
  特别提示:LINETHICK0 表示不画出指标线,但可在顶部显示数值。

  二、绘图函数
  1、DRAWICON 在图形上绘制小图标。这是最常用的绘图函数之一。
  用法:DRAWICON(条件,位置,图标)
  飞狐15种图标编码为1-15(1-3为小脸,4-5为上下箭头,6-7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。
  大智慧2的图标编码为14个。
  其他股软略少。
  这个函数通用。但同一数字编码,显示出的图形区别却非常大,形态也不一样。大家可通过变动数字编码自行调整。
  2、DRAWTEXT 在图形上显示文字。这也是最常用的绘图函数之一。
  用法:DRAWTEXT(条件,位置,文字),注意,文字必须用单引号 '' 引上才能输出。
  飞狐可用'\n'换行, 飞狐和大智慧2可用 ALIGN 0-3 定义对齐方式。
  3、STICKLINE 在图形上绘制柱线。
  用法:STICKLINE(条件,上位置,下位置,宽度,实体或空心)。
  此函数股软通用。宽度最大为10(一般K线的宽度为6)。 0 --画实心柱,  1 --画空心柱。
  4、PARTLINE 分段绘制指标线。
  飞狐用法:PARTLINE(条件,需要变色的线)。
  例如:PARTLINE(C>REF(C,1),C),colorred 表示收盘大于前收以红色绘制收盘价连线。
  大智慧2用法:PARTLINE(需要变色的线,条件1,条件1用的颜色,条件2,条件2用的颜色...),最多可以有10组条件。
  例如:PARTLINE(C,C>O,RGB(255,0,0),C<ORGB(0,255,0),1,RGB(0,0,255))表示画收盘价线,阳线时用红色,阴线时用绿色,平盘用蓝色。注意最后一个条件为1,表示前面都不满足时必然满足这个条件。
  特别提示:大智慧2同分析家一样,在绘制分段线时,用的不是正常的颜色函数,而是用RGB(255,0,0)来表达。以下是几种常用颜色:
洋红(255,0,255) 红色(255,0,0) 绿色(0,255,250) 黄色(255,255,0) 紫色(128,0,128) 
灰色(169,169,169) 天蓝(255,215,0)。
  同花顺和大智慧2一样,运用相同的函数。
  通达信的划分段线是用IF条件函数来实现的。
  例:IF(C>=O,A线,DRAWNULL),COLORRED,LINETHICK2;
  翻译过来是:当收盘价大于等于开盘价时,在A线上划红色,否则不划。指标线为2等粗。
  特别提示:DRAWNULL 是通达信的专用函数。意思是返回0。其他股软遇到此函数时,可直接用0替代。
   大智慧没有这项功能。一般用如下三种方式替代:
  第一种:用 DRAWTEXT 在图形上显示文字的方式。在文字栏用的文字是小圆圈。
  第二种:用 STICKLINE 在图形上绘制柱线的方式。但注意柱线必须要短。
  第三种:用 IF 条件函数的方式,适用于3条线以上。本文略去。
  5、FILLRGN 画区间彩带
  飞狐用法:FILLRGN(条件,线1,线2)
  例如:FILLRGN(MA1>MA2, MA1,MA2),colorred 表示MA1>MA2时以红色填充MA1和MA2之间的区域。
  大智慧2用法:FILLRGN(线1,线2,条件1,颜色1,条件2,颜色2...),填充条件1到条件2之间的区域,当条件1满足时,用颜色1,当条件2满足时,用颜色2,否则不填充,最多可以有10组条件。
  例如:FILLRGN(CLOSE,OPEN,CLOSE>OPEN,RGB(255,0,0),CLOSE<OPEN,RGB(0,255,0))表示填充开盘价和收盘价之间的区域,阳线时用红色,阴线时用绿色,平盘不绘制。
  其他三种股软好像都没有这项功能。
  为了实现这一效果,一般都是用划柱线的方式替代。注意的是,一般要将宽窄的数字加大,目的是让相邻的柱线合在一起显示出整体的效果。
例:STICKLINE(J<K,J,K,10,0),COLOR00FF00;即,当J小于K 时,在J与K之间填充柱线,宽度为最大粗值--10。  
  最常用的就这些。其他还有,大家打开公式编辑器慢慢研究吧。
  附:《公式函数电子书》、《颜色调配器》和《飞狐公式基础》
  感谢太冷友情提供。

沧桑宇宙2008
杨老师及各位老师:帮个忙写个公式,大智慧用的.

股票当日均价在60-120分钟内,呈水平运动,波动在一分钱内,同时现价也在均价的1.5%之内,

大庆老杨
除了一字涨停股外,还有这样的股票吗?
AA:=ABS(MA(C,20)-(H+L)/2)<0.02;
COUNT(H-L<=0.02 AND AA ,60)=60;
因没有均价线指标,所以用20分钟均线替代。在一分钟图中有效。

沧桑宇宙2008
是和一字涨停股,特别类似的.再请教杨老师二个问题.

我用的是大智慧.是不是把公式拷贝到自编的技术指标,然后保存.再后到智能选股里,选中这个公式,然后执行选股就行了?

另:这个公式是不是能把当日附合条件的股都选出来?不管后面的走势是跌还是涨?或者能把一字涨停的股也能选出来.比如600898,

大庆老杨
AA:EMA((C*2+H+L)/4,100);
bb:=COUNT(hhv(AA,30)-llv(AA,30)<aa*0.004 AND hhv(h,30)/AA<1.008 AND llv(l,30)/AA>0.0992,10)=10;
STICKLINE(bb,aa+0.01,aa-0.01,8,0),colorff0000;
在一分钟图中有效。问题是别的股中也不少。暂时无法排除。

大庆老杨
第四讲:源码的引入和修改
  (据本人所发《公式源码的引入方法》一文修改补充           
        (一)在各种股软中的引入方法 
  股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。下面再分别简要说明一下:
  一、大智慧

  1. 把要导入的公式(源码)考下来,方法是用左键先把源码变蓝,之后点右键,点复制;
  2. 进入大智慧------>特色功能------>自编指标------>常用------>技术指标------>新建,在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确认------>退出。
  3、在大智慧的底部显示栏中点击公式名称即可看到刚刚导入的公式。

  二、飞狐
  1、复制源码,方法同上。
  2、进入主界面,即K线图模式。
  用鼠标靠近左侧单击,出现管理面板------>双击技术指标------>用鼠标右键单击任何一个公式组的名称,比如“其它”------>点新建公式------>在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确定------>退出。
  3、找到新建的公式,双击即可使用。

  三、大智慧2

  特别提示:必须在联网的状态下才可操作
  有两种方式可以进入公式编辑页面。一是将鼠标靠近上部,点击《公式》―――《公式管理》―――双击《技术指标》―――单击指标组―――《新建》。
  另一种方式是,将鼠标靠近左边,在出现的对话框中双击《技术指标》―――右键单击选定的公式组―――《新建》。

  三、分析家
  复制公式原码到分析家界面―――点击上面的《公式》―――点击《公式管理》―――按公式归类把其点击变色―――点击《新建》。

  四、通达信
  将鼠标靠近左边,在出现的对话图标中选F(x)即《公式管理器》图标―――双击《技术指标公式》―――单击选定的指标组―――《新建》。

  五、同花顺
  将鼠标靠近上部―――点击《公式》图标,进入后的操作与其他股软基本一样。
  特别提示:必须在《描述》栏中加上文字或字母之类,否则无法通过。

              (二)公式引入时的注意事项和说明

  一、参数问题
  复制的源码中有参数的,例如:{N   100  15},有三种解决办法:
  1、手工将参数分别填加到参数表中。
  2、采取变通方式进行改动。{N   100  15}改动后为:N:=15;
  特别提示:注意用参数的大小处于中间的值来替换。这个中间值也是缺省值。另外:N后面必须加上等号,它的意思是不显示。
  3、对于INPUT:N(5), M(10,1,100,2);这类有申明参数函数的,飞狐,大智慧2和分析家可不用理它,系统会自动将参数填加到参数表中。这里的M(10,1,100,2)里面的2是步长,手工填加时可删去。

  二、粘贴源码时常见的问题和注意事项
  1、未定义的标识符
  多数是由参数引起的。还有就是有些源码中附带了公式名称或说明,这些公式源码以外的内容,如:名称,说明以及参数等等,凡在{ }以外的,均要删除,或者用{ }将其括上。
  2、条件选股类的公式,应加入到和“技术指标”并列的“条件选股”组中。
  3、是主图公式的,需在公式编辑区中点“主图叠加”。
  4、通达信的输出一般都限定在16条。多出的解决办法是:将没有必要输出的语句后面加上“等号”,或者删去。例:
  买点: STICKLINE(Var6>REF(Var6,1) AND Var6>0 ,Var6,Var8,10,0);
  DRAWICON(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-140,4);
  DRAWTEXT(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-40,'建议关注 '),COLORffffff;
  这三项分别是划柱线、显示小箭头和显示文字。留一个就行了。
  加“等号”的例子:
  Var2:MA(CLOSE,10);
  Var3:MA(CLOSE,20);
  Var4:MA(CLOSE,30);
  加上后:
  Var2:MA(CLOSE,10);
  Var3:=MA(CLOSE,20);
  Var4:MA(CLOSE,30);
  意思是保留了10日均线和30日均线的输出,将20日的隐去。
  特别提示:不论什么股软,当遇到线条过多过乱时,都可以采用这种办法使图形简练清晰。
  5、颜色符号及逗号问题
  例:仓:EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),,colormagenta;
  此句可能存在两个问题,一是后面有两个“逗号”,对于飞狐等通过,而对于大智慧2和分析家等,则是问题,必须删去一个。反之,一个没有也不行。二是后面的colormagenta,大智慧是不认识的。换成通用的:colorf00ff0就行了。
  6、是否输出与颜色标识问题
  例:仓:=EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),colormagenta,LINETHICK0;
  这个语句的特点是在前面有等号“ = ”,意思是不输出,但后面还有颜色修饰符和指标线粗细函数。有些股软对此是放行的,即:不输出。而大智慧2和分析家却不认,把它看成相互矛盾的病句。解决办法:将修饰符全部删去,或将前面的 = 号去掉,让语句输出。

表衫飞杨
请问大智慧的DMI和钱龙的DMI为什么有区别啊.怎么调整大智慧的才能和钱龙一样的了.因为看钱龙习惯了,调整参数为7也还是有区别.应改怎么调整该公式.才能和钱龙一样的了?谢谢  请问大智慧的DMI和钱龙的DMI为什么有区别啊.怎么调整大智慧的才能和钱龙一样的了.因为看钱龙习惯了,调整参数为7也还是有区别.应改怎么调整该公式.才能和钱龙一样的了?谢谢
   这是飞狐的,你和另两个分别对照一下,看看源码是不是一样,如果一样,则是软件自身的问题:
TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SUM(IF(HD>0 AND HD>LD,HD,0),14);
DMM:= SUM(IF(LD>0 AND LD>HD,LD,0),14);
PDI: DMP*100/TR;
MDI: DMM*100/TR;
ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,6);
ADXR:(ADX+REF(ADX,6))/2

老师学炒股
作业二:
A1:=CROSS(MA(C,10),MA(C,20)); 
A2:=CLOSE>OPEN AND CLOSE/OPEN>1.03;
A3:=V>=REF(V,1);
A1 AND A2 AND A3;

请老师批阅!!
大家好好做作业,就是对大庆老杨老师的支持,这是一个学习贴;少灌水为宜!!!!

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多