首页 » 排名链接 » 股票公式设计说明文档-2/8(公式语句变量收盘价计算)

股票公式设计说明文档-2/8(公式语句变量收盘价计算)

admin 2024-10-31 17:54:15 0

扫一扫用手机浏览

文章目录 [+]

公式由一条或多条语句构成,每条语句以“;”(半角分号)结束。

一个公式源码中最多只能有16个绘图语句,并且每句结束后要加分号";"。

开盘价OPEN、收盘价CLOSE、最高价HIGH、最低价LOW等这些函数在公式中可简化为函数名的第一个字母。
因此在编公式时不要单独用这几个字母。

股票公式设计说明文档-2/8(公式语句变量收盘价计算) 排名链接
(图片来自网络侵删)
1、支持的数据类型:

公式里面支持常量和变量两种数据类型。

变量,指随时间变化的数据,如成交量VOL。

常量,指永远不变的数据。
如8。

例如,计算两天的平均成交量MA(VOL,2);MA函数要求的第一个参数为变量,第二个参数为常量。
但2可以用一个预先赋了值的参数代替,比如在公式编辑器里已经给A赋值为2,则可以MA(VOL,A);这样书写。

2、公式运算符:

算术计算符:+、-、、/,分别是对计算符两边的数值进行加减乘除计算。

逻辑运算符:>、<、<>、>=、<=、=、AND、OR,分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。
例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。

3、赋值语句:

A:=2,即指将2赋值给A。

4、赋值并画线语句:

A:2,即指将2赋值给A,并将A的值按选定的时间周期画成连续的指标线。

5、语句执行顺序:

有两个顺序,一个是从上向下的语句顺序,一个是时间顺序。
时间顺序优先。

⑴、语句顺序。
如:

A1:=MA(CLOSE,5);

A2:=MA(CLOSE,10);

先执行第一条,后执行第二条。

⑵、时间顺序,即先计算昨天的数据再计算今天的数据。
如上面这个例子,先执行第一天的A1,再执行第一天的A2,其次是第二天的A1和A2。
再比如:

A1:=IF(A2>CLOSE,CLOSE,A2);表示当A2大于CLOSE时,A1等于CLOSE,否则A1等于A2。

A2:=MA(CLOSE,10);

第一条语句引用了第二条的数据。
当在计算今天的A1时,其公式里用到的A2就是昨天的A2,而今天的A2其实还没计算出来。

6、迭代计算:

迭代,就是用上一周期的数值来计算本周期的数值。
比如指数平滑移动平均线EMA的计算,今天的均线等于昨天均线(N-1),加上今日收盘价2,最后再除以(N+1):

A1:=(A1(N-1)+CLOSE2)/(N+1);

上面提到语句的执行存在时间顺序,因此这条语句在计算今天的A1时,由于还没计算出来,所以赋值语句右边的A1值仍然是昨天的值。
这就形成了迭代。

如果是计算初始第一天,即股票上市第一天的值时,由于A1无值,一般初始默认为0。
也可用语句进行准确定义:

A1:=IF(BARPOS=0,CLOSE,(A1(N-1)+CLOSE2)/(N+1));其中函数BARPOS返回股票上市以来的天数。
当上市天数为0时,指定A1的值为收盘价。

7、初始数值及变量声明:

如:VARIABLE:P=1;表示给变量P赋初始值为1,即公式计算的第一天P的值是1。
这条语句只在计算第一天的值时使用,再比如:

VARIABLE:A1=0;

A2:=0;

A1:=A1+1;

A2:=A2+1;

第一天:A1值为1,A2值为1;

第二天:A1值为2,A2值为1;

第三天:A1值为3,A2值为1;

A2:=0语句每天计算时都会执行一次,导致A2始终都是1。
而VARIABLE:A1=0语句只在第一天执行,第二天之后就不再执行,A1:=A1+1语句右边的A1就是前一天的A1值。

8、IF分支语句:

⑴、IF(逻辑表达式,值1,值2);表示如果逻辑表达式成立,IF语句的值为“值1”,否则为“值2”,比如:

A1:=IF(CLOSE>OPEN,CLOSE,OPEN);表示A1等于收盘价和开盘价中的高者。

⑵、IF [逻辑表达式] THEN [语句],表示如果逻辑表达式成立,就执行THEN后面的语句,比如:

IF CLOSE>OPEN THEN P:=P+1;表示当收盘价大于开盘价时,P值加1,否则P值不变。

⑶、IF [逻辑表达式] THEN BEGIN [语句] END,表示如果逻辑表达式成立,就执行THEN后面的多条语句,比如:

IF CLOSE>OPEN THEN BEGIN

A1:=A1+1;

A2:=MA(CLOSE,10);

END

IF语句可以嵌套,嵌套时END与最近还没有配对的BEGIN进行配对,比如:

IF CLOSE>OPEN THEN BEGIN

A1:=A1+1;

IF CLOSE>10 THEN BEGIN

A1:=A1+1;

A2:=MA(CLOSE,10);

END

END

其中,第一个BEGIN与最后一个END配对,第二个BEGIN与第一个END配对。

⑷、IF [逻辑表达式] THEN [语句1] ELSE [语句2],表示如果逻辑表达式成立,就执行THEN后面的语句1,否则执行ELSE后面的语句2,比如:

IF CLOSE>OPEN THEN

A1:=A1+1;

ELSE

A2:=A2+1;

END

【示例】:计算上市以来上涨天数和下跌天数的比率

VARIABLE:UP=0,DN=0; {给变量赋初始值0。
}

IF CLOSE>REF(CLOSE,1) THEN {当收盘价大于前一天收盘价时,}

UP:=UP+1; {UP变量加1,}

ELSE IF CLOSE<REF(CLOSE,1) THEN {当收盘价小于前一天收盘价时,}

DN:=DN+1; {DN变量加1,}

R:IF(DN=0,0,UP/DN); {上涨天数除以下跌天数。
}

最后一条语句使用IF判断DN是否为0,用来保护结果不被0除。

【示例】:计算历史上阳线的平均涨幅和阴线的平均跌幅。

VARIABLE:UPR=0,UP=0,DNR=0,DN=0; {给变量赋初始值0。
}

R:=CLOSE/REF(CLOSE,1)-1; {计算前后两邻两天的涨跌幅。
}

IF CLOSE>OPEN THEN BEGIN {当收盘价大于开盘价时,即当日收阳线}

UPR:=UPR+R; {将计算出来的涨幅值累到进变量UPR}

UP:=UP+1; {变量UP加1,计算上涨天数}

END

ELSE

IF CLOSE<OPEN THEN BEGIN {当收盘价小于开盘价时,即当日收阴线}

DNR:=DNR+R; {将计算出来的跌幅值累到进变量DNR}

DN:=DN+1; {变量DN加1,计算下跌天数}

END

平均涨幅:IF(UP=0,0,100UPR/UP); {累积的涨幅除以上涨天数,得平均涨幅}

平均跌幅:IF(DN=0,0,100DNR/DN); {累积的跌幅除以下跌天数,得平均跌幅}

9、FOR循环:

FOR [变量]=[初值] TO [终值] DO [语句]

表示使用[变量]控制执行循环[语句],首先给变量赋[初值],判断变量是否小于或等于[终值],若满足条件则执行语句,同时[变量]值自动加1。
循环判断[变量]是否小于或等于[终值],并循环执行[语句],直到[变量]值大于[终值]即停止执行[语句],如:

FOR A=1 TO 100 DO R:=R+CLOSE; 表示将100天的收盘价相加。

FOR [变量]=[初值] DOWNTO [终值] DO [语句],表示变量从初值开始递减,如:

FOR A=100 DOWNTO 1 DO R:=R+CLOSE; 每次收盘价累加一次后A值递减1。

【示例】:计算最近多少天完成100%的换手。

HR:=0; {给变量HR赋初值0。
不用VARIABLE语句是因为此语句只执行一次,下面的语句都在循环体中执行。
}

FOR A=0 TO BARPOS-1 DO BEGIN {循环次数为股票上市天数}

IF HR<CAPITAL THEN BEGIN {成交量累计值小于流通盘时执行后面的语句}

HR:=HR+REF(VOL,A); {将A天前的成交量累加到变量HR}

IF HR>=CAPITAL {当成交量累计变量HR大于或等于流通盘时}

ND:=A+1; {变量A值加1即为换手率达到100%的天数}

BREAK; {终止循环语句,这条语句执行时整个FOR循环即刻终止}

END

END

【示例】:计算N日均线

SU:=0;

FOR A=0 TO N-1 DO

SU:=SU+REF(CLOSE,A);

SU/MIN(N,BARPOS);

本例中有两个技巧,其一,没有可以去避免向前循环超过上市日的问题,因为发生这样情况时SU的数值不会增加,也就是说SU等于上市到现在的总和;其二,如果当前位置小于N,则SU的数值表示上市到现在的总和而不是N日总合,所以平均价格应该为SU/BARPOS,因此使用了语句SU/MIN(N,BARPOS)。

【示例】:计算前十大股东占总股本的比例。

SU:=0;

FOR A=1 TO 10 DO

SU:=SU+PROFFIN(5002+(A-1)6,0);

比例:SU/PROFFIN(1001,0)100;

本循环中使用了一个技巧,因为用PROFFIN函数提取第一、第二、第三等股东持股量的代码是5002、5008、5014等,代码值间隔6,所以可以使用5002+(A-1)6来表示这些代码值。

10、WHILE循环:

WHILE [逻辑表达式] DO [语句],表示当[逻辑表达式]成立,则循环执行[语句]。
N+1)=0

【示例】:计算最近多少天完成100%的换手。

HR:=VOL; {成交量累加变量HR赋初值为当天的成交量}

ND:=1; {天数变量ND赋初值为1}

WHILE HR<CAPITAL AND

ND<BARPOS DO BEGIN {当成交量累计值小于流通盘,并且天数值小于股票上市天数时执行后面的语句}

HR:=HR+REF(VOL,ND); {将ND天前的成交量累加给变量HR}

ND:=ND+1; {天数变量递增1}

END

ND<BARPOS语句的作用是防止永久循环。
如果没有这条语句,当新股上市,股票所有成交量累计值都达不到流通盘的数量时,这段代码将没有停止机制,或永远运行下去。

上面的终止循环语句BREAK也可用于WHILE循环中。

11、循环嵌套:

循环中再套入循环,叫循环嵌套。

【示例】:寻找最近100天中收盘价相同的天数。

ND:=0;

FOR A=0 TO 99 DO BEGIN

FOR B=A+1 TO 99 DO BEGIN

IF REF(CLOSE,A)=REF(CLOSE,B) THEN

ND:=ND+1;

END

END

这段语句分为内外两个循环,外层循环使用A作为循环变量,从0到99循环,得到之前每一天的收盘价REF(CLOSE,A),而内层循环使用B作为循环变量,从A+1到99循环,表示从第A+1天前开始查找等于第A天数值的K线,若找到(条件REF(CLOSE,A)=REF(CLOSE,B)满足),则将ND加1。

嵌套后形成的循环次数不能太大,否则运行速度很慢。

12、字符串:

字符串常量,即是在公式中用单引号括起来的字符,这些字符可以在文字输出函数等地方直接使用。

字符串变量,其值为字符串的变量。
可以跟数值变量一样自由改变,可以赋值、运算、设初值等,如:

A:=’ABCD’;表示将字符串ABCD赋值给字符串变量A。

VARIABLE:A=’ABCD’;表示给字符串变量A赋初始值ABCD。
含义与上面提到的数值变量一样。

A:=STKNAME+’ ’+STKLABEL;表示将股票名称加上一个空格,再加上股票代码形成一个字符串赋值给变量A,对于四川长虹来说A的值为“四川长虹 600839”。

A:=STKNAME+’的收盘价为:’+CLOSE; 对于四川长虹来说A的值为“四川长虹的收盘价为:….”。
这其中的收盘价已经自动转换成字符串来做连接处理了。

A:=NUMTOSTR(CLOSE);这是用函数强制将数值转换成字符串。

A:=STRTONUM('12.5');这是用函数强制将字符串转换成数值。

STRCMP(‘ABC’,’abc’);表示比较两个字符串大小,由于abc大于ABC,因此返回-1。

13、数组:

数组,即一组带序号的变量,用于存放多个数据,通过序号来访问这些数据。
数组使用前必须先声明:

VARIABLE:A[20]=0;表示定义了一个数值型数组A,共有20个初始值都为0的元素。

VARIABLE:A[10]=’AX’;表示定义了一个字符型数组A,共有10个初始值都为AX的元素。

数组声明后就可以当成普通变量一样使用,但要带上序号,如A[2]、A[10]等。
数组不能引用过去的数值,比如REF(A[3],10)的结果还是A[3],即REF(A[3],10)的值等于A[3]。

14、专业财务数据:

专业财务数据函数用于在公式中提取股票财务报表中的数据,如每股收益,资本公积金等。
它们在函数中都有自己的代码,比如股份总数的代码为3001。

PFFIN(N,M)、PFSTR(N,M)用于提取专业财务数据值。
PFFIN提取出来的结果是数值型,PFSTR提取出来的结果是字符型。
N表示数据类型,比如3001股份总数,M表示财务报表期数,0表示最近一期,1表示前一期。

PFFINON(N,Y,MD)、PFSTRON(N,Y,MD)用于提取指定日期的财务数据。
PFFINON提取出来的结果是数值型,PFSTRON提取出来的结果是字符型。
N表示数据类型,比如3001股份总数,Y表示年,MD表示月日。
如PFFINON(1001,2012,0101)表示2012年1月1日的摊薄每股收益。

SETPFFIN(X)用于设定财务数据属性。
财务数据包括季报、中报、年报,使用此函数可以决定需要它们中的哪一些类型。
X是一个五位数,每一位表示不同含义,最高位表示是否调整中报季报数据(分别对一季报、中报、三季报的部分财务指标做乘以3、2、4/3的处理),次高位表示是否包含最新财务指标,最低三位数表示是否包含季报、中报和年报。
这些位置如果为1表示设置,为0表示不需要,如01111表示不对季报中报进行调整,数据包含全部的年报、中报和季报;00001表示只需要年报。
使用此函数后,其它专业财务数据函数将受到它的影响。

15、数据二:

在同一时刻对两个股票进行分析时,需要提取两个股票的同一类数据,比如提取两个股票的开盘价。
OPEN表示了一支股票的开盘价,那么另一支股票的开盘价就用DATA2.OPEN表述,这就是所谓的数据二。

DATA2.[数据],其中数据可以为CLOSE、OPEN、HIGH、LOW、VOLUME、AMOUNT。

一般应用于股票相关性分析,如RELATE(CLOSE,DATA2.CLOSE,60)表示计算两个股票的收盘价在最近60天的相似程序。
计算结果在-1到1之间。
若等于1表示完全相同,-1表示完全相反,0表示二者无关。

RELATE(CLOSE/REF(CLOSE,1),DATA2.CLOSE/REF(DATA2.CLOSE,1),60);表示每日涨跌的相似性。

16、数据引用:

一般情况使用REF(X,A),引用A周期前的X值。
如:REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收。
为方便使用,可改写成CLOSE[1]。
比如:

REF(MA(CLOSE,10),100)可以改写成MA(CLOSE,10)[100]。

17、坐标设定:

REFLINE:L1,L2,….LN;此公式用于绘制水平坐标线。
如:

REFLINE: 0, 20, 50, 80, 100;表示在值为0、20、50、80、100的位置绘制水平坐标线。

18、宏定义:

将大量重复、复杂语句用简单字符代替,就是宏定义。
#DEFINE X Y表示将Y定义为X,定义之后公式中的X都会被程序自动更换成Y来处理。
因此宏的定义要放在整个公式代码的最前面。
比如:

#DEFINE MMA MA(MA(CLOSE,10),10)

A:=MMA; {此语句在运行时会被程序自动转变成A:= MA(MA(CLOSE,10),10)来执行}

宏定义中可以带参数,在公式编译时将宏定义中的参数用实际参数来替代,比如:

#DEFINE MMA(x,y) MA(MA(CLOSE,x),y)

当在使用MMA时,就必须给x和y赋值,如MMA(10,20)在运行时会自动变更为MA(MA(CLOSE,10),20)。

如果需要被定义为宏的内容太长,可能会书写成多行格式,这时要在每行结尾处加上续行符“\”,以便将各行连接起来。
例如:

#DEFINE BBY(x) IF CLOSE>OPEN THEN BEGIN\

IF CLOSE>OPEN1.08 THEN\

BUY(2x);\

ELSE\

BUY(x);\

END

19、线形描述符:

用于表示如何绘制该语句描述的指标线。
描述符写在语句后面分号之前,用逗号将它与语句分隔开。
如A:2,COLORSTICK;该语句表示将A绘制成彩色柱状图。

STICK

柱状线

COLORSTICK

彩色柱状线,当值为正时显示红色,否则显示绿色

COLORRED

为线形赋色,RED为红色

COLORBLUE

为线形赋色,BLUE为蓝色

COLORYELLOW

为线形赋色,YELLOW为黄色

VOLSTICK

成交量柱状线,当股价上涨时显示红色空心柱,否则显示绿色实心柱。

LINESTICK

同时画出柱状线和指标线

LINETHICK

对线体的粗细作描述

CROSSDOT

小叉线

CIRCLEDOT

小圆圈线

POINTDOT

小圆点线

注1:COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR”,BB、GG、RR表示蓝色、绿色、红色的分量,每种颜色的取值范围为00到FF,采用了16进制。
如:MA5:MA(CLOSE,5),COLOR00FFFF;表示纯红色与纯绿色的混合色。

注2:LINETHICK可以允许对线形的粗细进行自定义的描述,格式为LINETHICK+(0/7);参数的取值范围在0到7之间,LINETHICK0表示最细的线,LINETHICK7表示最粗的线。

20、软件中已有指标数据的引用:

基本格式为:“指标.指标线”(参数)

a、指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。

b、参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置(不过我在使用过程中发现,如不写参数,测试就通不过)。

c、整个表达式用引号引在其中,除参数以外。

例如:”MACD.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD”表示该指标的最后一条指标线,并且使用公式的默认参数。

交易系统公式的引用,写法为"SYSTEM.公式名称.交易类型"(参数表),交易类型包括ENTERLONG、EXITLONG、ENTERSHORT、EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出条件。
例如:"SYSTEM.KDJ.ENTERLONG",表示引用根据缺省参数计算的KDJ交易系统的多头买入条件。

条件选股公式的引用,写法为"EXPLORER.公式名称"(参数表),例如:"EXPLORER.KDJ",表示引用根据缺省参数计算的KDJ买入条件选股条件。

21、跨周期引用指标数据:

可以引用其他周期的数据,写法为"公式名称.指标线名称#周期"(参数表),跨周期引用只能从较短周期引用较长周期,反方向的引用不允许。
例如"KDJ.K#WEEK"(9,6,6),表示引用根据(9,6,6)参数计算周线周期的KDJ指标公式K指标线的数值。
其中周期包括MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,分别表示1、5、15、30、60分钟线,以及日线、周线、月线。

22、其它股票数据的引用:

使用如下的格式可以在当前的分析界面下引用大盘的数据或者其它个股的数据。

a、引用大盘数据使用函数INDEXC或INDEXV。

b、引用个股数据“股票代码$数据”。

如“SZ000002$VOL”;表示引用深圳市场万科A的成交量值。
“SH600000$VOL”;表示引用上海市场浦发银行的成交量值。
“000001$VOL”;表示引用上证指数成交量值。

二、简单公式编写说明1、提取K线上各类数据数值的常用函数:

最高价:HIGH,或HIGH(),可简写为H。

收盘价:CLOSE,或CLOSE(),可简写为C。

最低价:LOW,或LOW(),可简写为L。

开盘价:OPEN,或OPEN(),可简写为O。

成交量:VOL,或VOL(),可简写为V。

成交额:AMO

流通盘:CAPITAL

换手率:VOL/CAPITAL

2、两条线相交的公式表示:

描述两条线交叉的函数是:CROSS(X,Y)

例如:有两条均线,一条叫X,另一条叫Y。

CROSS(X,Y)表示X向上穿过了Y

CROSS(Y,X)表示Y向上穿过了X

3、历史上某天数据的公式表示:

使用函数REF(X,M),表示提取M天前X的值。

例如:REF(Close,5)表示5天前的收盘;

REF(Vol,10)表示10天前的成交量;

4、两个判断条件要同时满足:

X AND Y,使用and连接X和Y,表示要同时满足条件X和Y。

5、放量:

今日比昨日的成交量放大了1倍:VOL/REF(VOL,1)>2;

今日的五日均量比前五天的五日均量放大了3倍:

AA:=MA(VOL,5);

BB:=REF(AA,5);

AA/BB>4;

今天的成交量达到了整个流通盘的10%以上:VOL/CAPITAL>10/100;(注意,10%的表达式是10/100,或者0.1)

6、缩量:

今日比昨日的成交量缩小了1倍:VOL/REF(VOL,1)<0.5;

今日的五日均量比前五天的五日均量缩小了一半:

AA:=MA(VOL,1)<0.5;

BB:=REF(AA,5);

AA/BB<0.5;

今天的成交量不足整个流通盘的0.5%:VOL/CAPITAL<0.5/100;

7、上涨:

今日涨幅达到了7%以上:CLOSE /REF(CLOSE,1)>1.07;

十日均价继续下跌:

AA:=MA(CLOSE,10);

BB:=REF(AA,1);

AA>BB;

8、下跌:

今日跌幅达到了7%以上: REF(CLOSE,1)/CLOSE>1.07;

十日均价继续上涨:

AA:=MA(CLOSE,10);

BB:=REE(AA,1);

AA<BB;

9、收阳及收阴:

当天收阳:CLOSE>OPEN;

当天收阴:CLOSE<OPEN;

10、高开及低开:

高开,即当天开盘高于昨日收盘:OPEN>REF(CLOSE,1);

低开,即当天开盘低于昨日收盘:OPEN<REF(CLOSE,1);

11、跳空:

向上跳空,即当日开盘在昨日最高价之上:OPEN>REF(HIGH,1);

向下跳空,即当日开盘小于昨日的最高价:POEN<REF(LOW,1);

12、向上跳空后两日内未回补:

即这两天的最低价一直在两天前的最高价之上。

AA:=REF(LOW,1)>REF(HIGH,2);

BB:=LOW>REF(HIGH,2);

AA AND BB;

大部分常用的指标公式默认都已经存在于金融服务终端软件中。

二、指标公式编写示例

【示例】:绘制一条20日移动平均线。

移动平均线的意思是:多日收盘价相加求平均。
即:

20日平均线=(今天收盘价+昨天收盘价+.....--20天前的收盘价)/20;

1、求平均值使用函数MA(X,N),表示求X的N日移动平均值。

2、收盘价用CLOSE函数表示;

3、组合起来即为:M1:MA(CLOSE,20);

4、同理,如果画均量线则为:M1:MA(VOL,20);

5、如果只是计算出均值而不画线则为:M1:=MA(CLOSE,20);

6、给公式命名test,保存退出,如下图:

7、在K线图界面键盘输入“test”,即可调出以上自编的指标公式,如下图:

三、选股公式编写示例

条件选股公式中必须且只能有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。

【示例】:两条均线,一条5日线,一条20日线,查找5日线向上穿过20日线(金叉)的股票。

1、5日均线表达式为MA(CLOSE,5),20日均线表达式为MA(CLOSE,20);

2、判断交叉使用函数CROSS(A,B),表示当A从下向上穿过B时返回1,否则返回0;

3、CROSS(MA(CLOSE,5),MA(CLOSE,20)),表示5日均线与10日均线交金叉。

4、给这个公式取名test,以方便调用。
如下图:

5、从“工具”菜单中点击“量化选股”,加入test公式执行选股。
如下图:

四、交易公式编写示例

条件选股公式中必须有一条买卖指令函数,如buy;或sell;

【示例】:使用KDJ指标指示交易。
当K值由下向上穿过D值时买入,当D值由下向上穿过K值时卖出。

1、K:=kdj.k; 获取KDJ指标中的K值。

2、D:=kdj.d; 获取KDJ指标中的D值。

3、IF CROSS(K,D) THEN BUY; 当K值由下向上穿过D值时买入。

4、ELSE IF CROSS(D,K) THEN SELL; 当D值由下向上穿过K值时卖出。

如下图:

5、在K线图界面鼠标右键单击,在弹出菜单中选择交易指示功能,如下图:

6、在交易指示窗口中点击“新建”按钮,选择前面创建的test公式,如下图:

7、K线图上即标示出红(买)绿(卖)色小圆圈,标志买卖,如下图:

五、五彩K线编写示例

五彩K线公式可以有1-6条逻辑表达式语句,最多描述6种不同的颜色。

【示例】:标示出K线图中样式为十字星的K线。

1、CLOSE=OPEN AND HIGH<>close and low<>close,COLORRED; 收盘价与开盘价相等,并且最高和最低价于开收盘价不同。

2、在公式管理器中新建五彩K线公式,命名为test保存,如下图:

3、在K线图界面鼠标右键单击,在弹出菜单中选择交易指示菜单中的“选择五彩K线”功能。
在弹出窗口中选择上面创建的test公式,如下图:

3、K线图上将突出显示样式为十字星的K线柱,如下图:

六、条件预警指标编写示例

条件预警公式中必须且只能有一条逻辑表达式语句,用来表示预警条件是否成立。

【示例】:万科A的股价涨到10块预警卖出,跌到8块预警买入。

1、DYNAINFO(N),N=3-39,此函数用于返回实时动态行情。
N为7时返回最新股价。

2、((DYNAINFO(7) >= 10) ) or ((DYNAINFO(7) <= 8) );股价大于10或小于8时预警。

3、在公式管理器中编写以上代码,为公式命名为test,保存退出,如下图:

4、点击二期菜单“工具”里的“条件预警”功能。
选择新增条件,在设置窗口中选择以上编写的公式名称“test”,加入预监控的股票“万科A”,选择周期为“日线”,如下图:

5、确定后,回到条件预警窗口,选中以上设置的条件,点击“启动预警”按钮即可。
该窗口可关闭,在条件触发时会自动弹出。

标签:

相关文章