量化炒股19常用炒股软件中编写公式时的常用函数介绍

本章将主要介绍一下我们在常用炒股软件(通达信为内核)中,编写公式或策略模型的时候一些常用的函数。

在前面的章节中我曾提到过,在公式编辑器中,点击“插入函数”,会弹出所有函数以及各自的说明。但是由于函数较多,所以本章专门挑一些经常用到的函数做一下介绍。

另外,大家如果遇到了一些困难,比如函数的使用或选取、编程理念实现等问题,如果您觉得可以公开的,请留言或私信给我,届时我可以写成文章供大家参考。

一、基本函数:

K线本身有5个基本函数,分别是:开盘价、收盘价、最高价、最低价、成交量(手数)。

开盘价:O或OPEN;

收盘价:C或CLOSE;

最高价:H或HIGH;

最低价:L或LOW;

成交量:V或VOL;

示例:变量A:=(O+C+H+L)/4;

示例解释:变量A等于开盘价、收盘价、最高价、最低价这四个价格加和再除以4取平均值。

二、引用函数:

1. BARSLAST(X)函数:

说明:这个函数经常可以用到,指的就是“上一次X成立时”距离当前的周期数(或K线个数)。

示例:变量A:= BARSLAST(C>O);

示例解释:上一次阳线到当前的K线数,如果当前本身就是阳线,则变量A=0;如果前一根是阳线(并且当前不是阳线),则变量A=1,以此类推。

2. COUNT(X,N)函数:

说明:统计N周期中满足X条件的周期数,若N<0则从第一个有效值开始。

示例:变量A:= COUNT(C>O,10);

示例解释:统计最近10个交易日内阳线的个数,如果总计有5根阳线,则变量A=5。

注意,函数中的N是包括当前K线的,比如:变量A:= COUNT(C>O,1),就等同于只判断当前K线是否是阳线。而如果写成:变量A:= COUNT(C>O,0),则是统计K线图中所有阳线的数量。

3. HHV(X,N)和LLV(X,N)函数:

说明:求N周期内X的最高值/最低值,如果N=0则从第一个有效值开始计算。

示例:变量A:=HHV(H,20); 变量B:=LLV(H,20);

示例解释:变量A的取值等于最近20根K线最高价的最大值;变量B的取值等于最近20根K线最低价的最小值。

注意,函数中的N是包括当前K线的,比如:变量A:=HHV(H,1),就等同于对当前K线的最高价进行取值。

4. HHVBARS(X,N)和LLVBARS (X,N)函数:

说明:求N周期内X最高值/最低值到当前K线的周期数,N=0表示从第一个有效值开始统计。

示例:变量A:= HHVBARS(H,20); 变量B:= LLVBARS(H,20);

示例解释:变量A的取值等于最近20根K线最高价最大的那根K线距离当前的K线数;变量B的取值等于最近20根K线最低价最小的那根K线距离当前的K线数;

注意,示例中如果当前K线的最高价就是最近20根K线的最大值,则变量A=0。

5. REF(X,N)函数:

说明:引用N周期前的X值,N可以是变量。

示例:变量A:=REF(C,10);

示例解释:变量A的取值等于往前数第10根K线的收盘价。

6. SUM(X,N)函数:

说明:统计N周期中满足X条件的K线数总和,N=0则从第一个有效值开始。

示例:变量A:=SUM(O=C,20);

示例解释:变量A的取值等于最近20根K线中十字线的K线个数。

注意,函数中的N是包括当前K线的,同COUNT函数。

7. MA(X,N)函数:

说明:对X值取N日的简单移动平均。具体算法=最近N日所有的X加和,再除以N。

示例:变量A:=MA(C,30);

示例解释:变量A的取值就是咱们常说的30日均线。

三、逻辑函数:

1. CROSS(A,B)函数:

说明:表示当A从下方向上穿过B时返回1,否则返回0。

示例:变量A:=CROSS(C,MA(C,30));

示例解释:如果当前K线满足收盘价上穿30日均线(即前一根K线的收盘价在30日线下方,而本根K线的收盘价在30日线的上方),则变量A=1,否则=0。

注意,本函数还有类似用法:买入:=CROSS(条件,0.1);

上面这个用法经常用于:如果连续的K线都满足“条件”,而我们只想在第一根满足“条件”的地方买入或显示买入信号,则这时可以采用上述写法。其中的“0.1”可以是0到1之间的任何值,指的就是“条件”由0变为1。

2. EVERY(X,N)函数:

说明:如果N个周期内连续满足X,则取值为1,否则为0。

示例:变量A:=EVERY(C>O,3);

示例解释:如果最近3根K线都是阳线,则变量A=1,否则=0。

注意,函数中的N包含当前K线。

3. NOT(X)函数:

说明:如果X成立则函数取值为0。

示例:变量A:=NOT(C>O);

示例解释:如果当前是阳线,则变量A=0,否则=1。

四、选择函数:

1. IF(X, A, B)函数:

说明:这个函数经常用到,指的是如果条件X满足则函数取值=A,如果X不满足,则函数取值=B。

示例:变量A:=IF(C>O, C, O);

示例解释:如果当前K线是阳线,则变量A=收盘价C;如果当前K线不是阳线(十字线或阴线),则变量A=开盘价O。

2. VALUEWHEN(X,Y)函数:

说明:指的是往前找第一个满足X条件的K线,在这根K线上对Y取值。

示例:变量A:= VALUEWHEN(C>O, H);

示例解释:往前找第一个阳线,变量A就等于这根K线的最高值H。如果当前K线就是阳线,则变量A就等于当前的H。

五、数学函数:

1. MAX(A,B)和MIN(A,B)函数:

说明:指的是对A和B取二者中的较大值/较小值。

示例:变量A:=MAX(O,C); 变量B:=MIN(O,C);

示例解释:变量A等于当前K线开盘价和收盘价中的较大值;变量B等于当前K线开盘价和收盘价中的较小值。

注意,这两个函数均可以嵌套使用,比如变量A:=MAX(N1,MAX(N2,MAX(N3,N4)));

上面的变量A就等于N1、N2、N3和N4的最大值。

2. BETWEEN(A,B,C)函数:

说明:指的是如果A处于B和C之间,则函数等于1,否则返回0

示例:变量A:= BETWEEN(C, MA(C,5), MA(C,10));

示例解释:如果收盘价介于5日线和10日线之间,则变量A=1,否则=0(即收盘价在两条均线之上或之下)。

六、绘图函数:

1. DRAWTEXT(COND,PRICE,TEXT)函数:

说明:当COND条件满足时,在K线的PRICE位置上书写文字TEXT。

示例:DRAWTEXT(踩顶条件, L, ‘三买’);

示例解释:如果当下K线满足“踩顶条件”,则在K线的最低值的地方写上文字“三买”。

注意,书写的文字需要用“单引号”符号。并且此函数直接使用,不需要在函数的前面加变量,比如如果写成:变量A:= DRAWTEXT(踩顶条件, L, ‘三买’);,则会造成不显示文字。

2. DRAWNUMBER(COND,PRICE,NUMBER)函数

说明:当COND条件满足时,在K线的PRICE位置上书写数字NUMBER。

示例:DRAWTEXT(踩顶条件, L, L);

示例解释:如果当下K线满足“踩顶条件”,则在K线的最低值的地方写上最低值的数值。

七、交易函数:

ENTERLONG: COND和EXITLONG: COND函数:

说明:如果满足COND条件则买入/卖出股票。

示例:ENTERLONG: 买入; EXITLONG: 卖出;

示例解释:如果当下K线满足“买入”条件则执行买入开仓,并且如果将模型加载到K线图上可以看见代表买入的向上的红色箭头。卖出同理。

八、编写模板:

由于大家平时可能会有多个想法或测试版本,所以为了节省时间,建议大家平时建立一个基本模板,之后的每次测试或修改开始时,都可以先复制模板中的内容。

比如我们可以根据第7章中介绍的步骤,建立一个模板:

{布林线定义}

MID:=MA(C,26);

TOP:= MID +2*STD(C,26);

BOTTOM:= MID -2*STD(C,26);

{MACD定义}

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIFF,9);

MACD:=2*(DIFF-DEA);

{5-10-20-30-60日线定义}

M1:=MA(C,5);

M2:=MA(C,10);

M3:=MA(C,20);

M4:=MA(C,30);

M5:=MA(C,60);

买入:=1;

卖出:=1;

ENTERLONG: 买入;

EXITLONG: 卖出;

说明:上面这个模板中,首先定义了常用的布林线、MACD、均线,并且将买入和卖出指令也提前写好,暂时都先赋值为1,那么我们每次只需写“买入”和“卖出”的条件即可。

大家可以根据自己的需求,将自己常用的指标等定义加入到自己的模板中。

九、总结:

上面就是一些常用函数的简单介绍,软件中还有很多其他函数,大家每个人的交易理念千差万别,常用的函数也会很不一样,有任何需要的时候可以到函数说明中寻找或者查询:

量化炒股19常用炒股软件中编写公式时的常用函数介绍

在上图的红圈处简单写下需要的功能关键字,可以看看是否有合适的函数。

当前软件的编写环境和函数可能对很多朋友来说有些陌生,但其实相对于其他编程环境或语言,这个编写难度已经是很小的了(其实也造成了一定的局限性,导致一些理念不容易实现)。主要靠的还是熟能生巧,大家多尝试多练习,用不了多久就可以熟练掌握。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/46580
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 6 月 21 日
下一篇 2024 年 6 月 21 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注