教你如何编写股票公式第一讲.docx
《教你如何编写股票公式第一讲.docx》由会员分享,可在线阅读,更多相关《教你如何编写股票公式第一讲.docx(24页珍藏版)》请在冰豆网上搜索。
教你如何编写股票公式第一讲
教你如何编写股票公式第一讲
加入日期:
2011-10-1020:
19:
44
第一讲:
认识公式编辑器
公式编辑器是导入源码和进行编写指标的窗口。
公式编辑器共分4种,分别是:
1、技术指标公式编辑器;
2、条件选股公式编辑器;
3、交易系统公式编辑器;
4、五彩K线公式编辑器。
由于这几种编辑器的展开和使用大同小异。
所以,本文仅以技术指标公式编辑器为例加以说明。
由于目前各种股软的区别,不仅有些函数不通用,编辑器的打开方式也略有区别。
本讲就是告诉大家如何展开公式编辑器。
以下共分5个图片说明打开《公式编辑器》的方法:
FNC是大智慧2和分析家格式,只有这两个股软能够导入。
导入的方法是:
打开公式编辑器,点击导入---找到存放此公式的文件夹---双击---在出现的列表中掸单击该公式---选导入。
特别提示:
必须先将公式存放在一个文件夹中,已有的,新建都可以。
否则编辑器无法找到该公式。
ALG是飞狐和金狐软件的格件格式,exp式,tnc是通达信软是大智慧internet版格式,hxf是同花顺格式,还有比较特殊的fml是多空阵线格式(与飞狐的自编公式文件后缀一样)。
源码如下:
第二讲:
公式编写的基础函数
打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。
其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。
为此,我们先熟悉一下构成这两种状态的基本函数。
一、K线函数
非常简单,大家都可能熟知。
作为基础,还是说明一下。
1、开盘价:
OPEN 可简写为 O
2、最高价:
HIGH 可简写为H
3、最低价smi49liesOW可简写为L
4、收盘价:
CLOSE 可简写为C
有了这4个函数,就可构成一根K线了。
比如:
收盘价小于开盘价,即阴线:
C那么长下影的光头阳线,即 T 形线呢理解了原理,也很简单。
一要以最高价收盘(否则有上影),二要开盘价大于最低价。
所以有如下表示:
C=HANDO>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(C4、CROSS 交叉函数。
CROSS(A,B),表示A从下方向上穿过B。
5、REF 向前引用。
引用若干周期前的数据。
例如:
REF(CLOSE,1),表示昨收的收盘价。
那么前天的最高价呢,就是:
REF(H,2)。
四、成交量
VOL 表示每天的成交量。
因以后会经常用到,所以先交待给大家。
上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。
当然,记不住也不要紧,《公式编辑器》中全有。
习题:
10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
第三讲:
教你如何编写股票公式
第三讲:
认识颜色符号或绘图函数
我们所看到的指标是以线为基础的。
不论是均线,K线,或在线与点之间的填充,又都离不开颜色。
正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感。
本讲就是告诉大家如何利用颜色或修改颜色。
一、颜色函数
(一)基本符号:
COLOR
所有显示颜色时,都必须用这个符号做为引导。
但它本身并没有色彩,在它的后面还需加上具体的颜色,才能使用。
举例:
COLORBLACK;后面加上英文的黑色单词,在图中就会显示出黑色来了。
(二)常用颜色:
颜色
飞狐的
大智慧2
大智慧
通达信
同花顺
通用
符号
红色
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 在图形上显示文字。
这也是最常用的绘图函数之一。
用法smi52liesRAWTEXT(条件,位置,文字),注意,文字必须用单引号引上才能输出。
飞狐可用换行, 飞狐和大智慧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注意最后一个条件为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其他三种股软好像都没有这项功能。
为了实现这一效果,一般都是用划柱线的方式替代。
注意的是,一般要将宽窄的数字加大,目的是让相邻的柱线合在一起显示出整体的效果。
例:
STICKLINE(J
第四讲:
源码的引入和修改
(一)在各种股软中的引入方法
股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。
下面再分别简要说明一下:
一、大智慧
1.把要导入的公式(源码)考下来,方法是用左键先把源码变蓝,之后点右键,点复制;
2.进入大智慧------>特色功能------>自编指标------>常用------>技术指标------>新建,在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确认------>退出。
3、在大智慧的底部显示栏中点击公式名称即可看到刚刚导入的公式。
二、飞狐
1、复制源码,方法同上。
2、进入主界面,即K线图模式。
用鼠标靠近左侧单击,出现管理面板------>双击技术指标------>用鼠标右键单击任何一个公式组的名称,比如“其它”------>点新建公式------>在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确定------>退出。
3、找到新建的公式,双击即可使用。
三、大智慧2
特别提示:
必须在联网的状态下才可操作
有两种方式可以进入公式编辑页面。
一是将鼠标靠近上部,点击《公式》―――《公式管理》―――双击《技术指标》―――单击指标组―――《新建》。
另一种方式是,将鼠标靠近左边,在出现的对话框中双击《技术指标》―――右键单击选定的公式组―――《新建》。
三、分析家
复制公式原码到分析家界面―――点击上面的《公式》―――点击《公式管理》―――按公式归类把其点击变色―――点击《新建》。
四、通达信
将鼠标靠近左边,在出现的对话图标中选F(x)即《公式管理器》图标―――双击《技术指标公式》―――单击选定的指标组―――《新建》。
五、同花顺
将鼠标靠近上部―――点击《公式》图标,进入后的操作与其他股软基本一样。
特别提示:
必须在《描述》栏中加上文字或字母之类,否则无法通过。
(二)公式引入时的注意事项和说明
一、参数问题
复制的源码中有参数的,例如:
{N110015},有三种解决办法:
1、手工将参数分别填加到参数表中。
2、采取变通方式进行改动。
{N110015}改动后为:
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)ANDVar6>0,Var6,Var8,10,0);
DRAWICON(FILTER(Var6>REF(Var6,1)ANDVar6>0,30),-140,4);
DRAWTEXT(FILTER(Var6>REF(Var6,1)ANDVar6>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和分析家却不认,把它看成相互矛盾的病句。
解决办法:
将修饰符全部删去,或将前面的 = 号去掉,让语句输出。
第五讲:
各种形态的描述
懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。
下面我们共同认识一下公式的基本语句。
这些基本语句,是编写公式和整理选股公式信号的基础,大家要熟知。
一、K线的基本形态
1、当天收阳:
CLOSE>OPEN;
2、当天收阴:
CLOSE<OPEN;
3、当天股价高开,言下之意开盘高于昨日收盘:
OPEN>REF(CLOSE,1);
4、当天股价低开:
OPEN<REF(CLOSE,1);
5、跳空高开:
OPEN>REF(HIGH,1);当日开盘在昨日最高价之上
6、跳空低开:
POEN<REF(LOW,1);
7、长阳:
C/O>或者(C-O)/O*100>5或者(C-O)/O> 意思是收盘价比开盘价上涨5%以上。
当然,用7%以上也可。
8、长阴:
C/O<; 注意:
同一语句可有多种表述,此为其一。
9、高开大阴:
O/REF(C,1)>ANDC/O<;今天开盘比昨天收盘高出4%和收盘价较开盘下降6%。
低开大阳与此正好相反。
10、标准十字星:
CLOSE=OPENANDHIGH<>LOW
更多见的是近似十字星。
例:
ABS(C-O)ANDC-L>;该语句用上了一个函数:
ABS,意思是求绝对值。
这样,该近似十字星即可能是阳星也可能是阴星。
再认识两个函数:
MAX(A,B)求A和B中的最大值。
MIN(A,B)求A和B中的较小值
有了这两个函数,近似十字星还可这样表述:
ABS(C-O)MAX(C,O)ANDL另外,该公式还可以用比例数编写。
11、长下影线:
也有收阴收阳之分。
以阳线长下影线为例:
C>OAND(O-L)>(C-O);此公式只表达了下影线比实体线长,并没有表达长度比例和有无上影线。
留个习题吧:
不限制阴阳线,上影小于5分钱,下影线是实体的两倍以上。
形态还有许多,有几十种,不一一例举了,大家举一反三,慢慢摸索吧。
二、条件选股的基本形态
1、阶段最高价:
HHV(H,N)意思是取得N天之内的最高价。
新函数:
HHV,最高值。
2、阶段最低价:
LLV(L,N)意思是取得N天之内的最低价。
新函数:
LLV,最低值。
3、阶段涨幅(C-REF(C,N))/REF(C,N)*100 N日收盘价的差值的百分比。
4、再创新高HIGH=HHV(HIGH,N)是指今日最高价是N日以来的最高价.。
再创新低:
略。
5、放量:
(1)今日比昨日的成交量放大了1倍:
VOL/REF(VOL,1)>2;
(2)今日的五日均量比前五天的五日均量放大了3倍:
AA:
=MA(VOL,5);
BB:
=REF(AA,5);
AA/BB>4;
(3)今天的成交量达到了整个流通盘的10%以上:
VOL/CAPITAL>10/100;
注意,10%的表达式是10/100,或者
6、缩量:
(1)今日比昨日的成交量缩小了1倍:
VOL/REF(VOL,1)<;
(2)今日的五日均量比前五天的五日均量缩小了一半:
AA:
=MA(VOL,1)<;
BB:
=REF(AA,5);
AA/BB<;
(3)今天的成交量不足整个流通盘的%:
VOL/CAPITAL<100;
7、放量上攻是指价格上扬,成交量剧增
C/REF(C,5)>ANDVOL>MA(VOL,5)*3;表示5日上涨20%和成交量超过5日均量的3倍。
8、持续放量:
COUNT(V>REF(V,1),N)=N; 实际上这种情况不是很多。
如果用3日均量,或5日均量则非常普遍。
即:
COUNT(MA(V,3)>REF(MA(V,3),1),N)=N;
9、阶段放量
N(1,100,10)M(1,100,5)
SUM(VOL,N1)/CAPITAL>=(N/100)M日内换手率大于百分之N
10、温和放量上攻
M(2,10,3)N(1,40,10)
UP:
=MAX(C,O)>REF(MAX(C,O),1);
A:
=VOL>REF(VOL,1);
COUNT(IF((UPANDA),1,0),N)=NANDC>O
AND(C-REF(MAX(C,OPEN),1))/REF(MAX(O,C),1)<=(3/100)
ANDVOL/CAPITAL<=(M/100)
连续N个周期放大并保持上涨势头当日换手率小于M%
11、突然放量
N(1,300,10)M(1,40,3)
VOL>REF(HHV(VOL,N),1)*M
成交量较前N周期的最大成交量增大M倍
12、上涨:
C/REF(C,1)>;今日涨幅达到了7%以上。
注意:
涨幅是指当天收盘价与昨天的收盘价之比。
13、下跌:
同上面的表达方式一样,将方向改变了而已。
14、十日均价继续上涨:
AA:
=MA(C,10);
BB:
=REF(AA,1);
AA>BB;
15、窄幅整理:
就是指近一段时期价格维持在一定幅度之内
(HHV(C,20)-LLV(C,20))/C<;即20日内价格振幅在8%以内波动。
16、连续N天收阳:
COUNT(C>O,N)=N;
特别提示:
新函数:
COUNT(X,N),统计满足条件的周期数。
若N=0则从第一个有效值开始。
例:
COUNT(C此句使用时必须加上条件,即收阴时怎么了方才有效。
如:
AAANDCOUNT(C这个函数经常用到,务请留意。
17、N日内阳线多于阴线:
COUNT(C>O,N)>N/2;
18、创历史新高:
C=HHV(C,0);
特别提示:
此公式本应为:
C=HHV(C,N); 当N等于0时,从第一天开始统计。
统计历史数据时,如果从头开始,都用0。
19、尾盘拉升
HOUR>14ANDMINUTE>56ANDCLOSE/REF(CLOSE,2)>=1+N/100
14:
56以后2分钟涨幅超过N%
20、突破长期盘整
N(10,60,30)M(5,50,30)
REF(((HHV(H,N)-LLV(L,N))/LLV(L,N)),1)<=(M/100)ANDC>=REF(HHV(H,N),1)ANDBARSCOUNT(C)>N
前N日在上下M%的幅度内整理,今日突破。
21、阶段强势股
N(700101,1341231,990519)M(700101,1341231,990913)
A:
=SUM(IF(DATE-N=0,INDEXC,0),0);
B:
=SUM(IF(DATE-M=0,INDEXC,0),0);
E:
=SUM(IF(DATE-N=0,C,0),0);
F:
=SUM(IF(D