怎么知道别人微信密码:炒股公式编写
来源:百度文库 编辑:偶看新闻 时间:2024/10/05 12:55:41
指标公式的编写
1)、简单的公式
例1 十日均线指标(MA)
均线指标是求股票收市价的移动平均线,编写公式的第一步,是到公式管理器提供的基本函数(即新建或修改公式中的“函数/公式”)中去查找需要的函数。
我们查到:函数CLOSE的功能是求当日收市价,函数MA(X,N)的功能是求X的N日移动平均线,所以10日均线指标的公式这样写: MA(CLOSE,10)。
您可以方便地在公式中引入加减乘除运算,请看下例。
例2 乖离率指标(BIAS)
乖离率指标是求收市价与移动平均价的差,这个公式这样写: CLOSE - MA(CLOSE,10)。
上面两个例子都是在一个图上只绘一条指标线,如果您想在同一个图上绘多条指标线,请看下例。
例3 同图绘制5日、10日、20日和60日均线
做起来非常简单,您只需用分号将各指标公式隔开就行了。公式这样写:
MA(CLOSE,5);
MA(CLOSE,10);
条件选股公式的编写
指标公式附加选股条件逻辑判断表达式,就组成了条件选股公式。
条件选股就是将满足条件的股票挑选出来,显然条件选股公式中要用到逻辑操作符和逻辑函数,返回值为“1”(条件满足)则选中该股,为“0”(条件不满足)则不选中。与指标公式相比,条件选股公式可以有若干个中间公式,最后总是以一个逻辑式收尾。
例1,MACD指标中,MACD线由下向上穿越0线为买入信号,由上向下穿越0线为卖出信号,我们要挑出当天适合买入的股票,可将条件选股公式写为:
参数名称 最小值 最大值缺省值
LONG 20 100 26
SHORT 5 19 12
MID 2 20 9
DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:= EMA(DIFF,MID);
MACD:=DIFF-DEA;
CROSS(MACD,0)
例2,条件选股公式中可以直接引用指标公式。如上例MACD条件选股公式中的大部分内容与MACD指标公式是相同的,系统支持在条件选股公式中直接引用现成的指标公式,这样可以大大地简化公式书写。但是这样做可能会大幅降低系统处理速度。MACD条件选股公式又可以这样写:
参数名称 最小值 最大值缺省值
LONG 20 100 26
SHORT 5 19 12
MID 2 20 9
CROSS("MACD.MACD"(LONG,SHORT,MID),0)
"MACD.MACD"表示引用MACD指标公式中的MACD指标线,考察它是否上穿0线。在"MACD.MACD"后紧跟公式所带的参数,参数名和参数个数都不能有错。
引用指标的格式
引用指标的标准格式为:“指标公式名.指标线名”(参数表)
在实际应用中,可以有以下几种变形:
* 如果指标名后不指定指标线,则系统自动引用该指标的最后一条指标线。MACD线恰好是MACD指标所绘指标线中的最后一条,因此可进一步简写为:
CROSS("MACD"(LONG,SHORT,MID),0)
* 如果将参数名都省去,写成:CROSS("MACD",0),则参数值不再可变,固定取缺省值26、12、9。
* 如果写成:CROSS("MACD"(30,10,6),0),则参数值固定为30、10、6。1
除条件选股公式外,交易系统公式也可以直接引用现成的指标公式。
如果对指标公式做了重要改动,例如增减了参数个数、修改了指标线名称,系统会提示用户对引用了该指标公式的条件选股公式、交易系统公式也作相应修改。否则相关联的条件选股公式、交易系统公式的执行结果将不可预料。
例3 KD随机指标中,K线向上穿越D线,且K线小于20为买入条件,因此KD条件选股公式这样写:
参数名称 最小值 最大值缺省值
N1 1 40 9
N2 2 10 3
N3 2 10 3
RSV:=(CLOSE-LLV(LOW,N1))/(HHV(HIGH,N1)-
LLV(LOW,N1))*100;
K: =MA(RSV,N2);
D: =MA(K,N3);
CROSS(K,D) AND K<20
例4,如果直接引用指标公式,KD条件选股公式可简写为:
参数名称 最小值 最大值缺省值
N1 1 40 9
N2 2 10 3
N3 2 10 3
CROSS("KD.K"(N1,N1,N3),"KD.D"(N1,N2,N3)) AND
"KD.K"(N1,N2,N3)<20
例5,我们要挑出连跌三天的股票,条件选股公式这样写: 例6,若引入中间变量,上例也可以这样写: 在做交易系统指示功能时,交易系统公式的一组参数取缺省值。 下面举例说明如何编写交易系统公式。 例1 以MACD指标为例,其交易系统公式这样写: 多头买入: CROSS(MACD,0); 测试步长在探索最佳参数/指标时用到,这二者在实际计算过程中,都要遍历参数组合。若步长为一,则遍历所有可能组合;若步长不为一,则会跳过一些组合。前者得到的结果更精确,但遍历范围大,耗时长;后者结果稍粗略,但遍历范围小,节省时间。 例2 以KD指标为例,其交易系统公式这样写: 参数名称 最小值 最大值缺省值 测试步长 RSV:=(CLOSE-LLV(LOW,N1))/(HHV(HIGH,N1)- 买入条件为K向上穿越D,并且K小于20。 交易系统公式中也可以直接引用现成的指标公式,这样公式的书写可以简化。但可能会降低系统处理速度。 例3 MACD交易系统公式 五彩K线公式与条件选股公式相类似。 例1 当RSI小于20时显示红色,RSI大于80时显示绿色。 "RSI.RSI1"<20,COLORRED; 公式中引用了RSI指标公式。 例2 早晨之星 早晨之星由三个交易日的K线组成: 我们用下面的公式来描述早晨之星: 第一个条件限制前天的K线为阴线,且收盘价与开盘价比较,跌幅在5%以上。 1)、可在每一公式后附加参数 分析系统可以在每一公式后附加一些外观参数,以设置、区分各指标。附加的参数可以是:绘图类型、绘图颜色、线风格、线宽度之一或四者的任一组合。如下例: MA5: MA(CLOSE,5),0,RGB(255,0,0),0,2; 绘图类型的取值: 绘图类型可以取以下系统函数或2的n次幂(n>=0),建议使用系统函数。 STICK:柱状线,从0到指标值间画垂直线; COLORSTICK:彩色柱状线,当值为正时显示红色,否则显示绿色; VOLSTICK:成交量柱状线,当股价上涨时显示红色空心柱,否则显示绿色空心柱; LINESTICK:同时画出柱状线和指标线; CROSSDOT:小叉线; CIRCLEDOT:小圆圈线; 绘图颜色的取值: 绘图颜色可以取以下系统函数或用RGB(R,G,B)函数表示。 COLORRED:红色; COLORGREEN:绿色; COLORBLUE:兰色; COLORBLACK:黑色; COLORWHITE:白色; COLORGRAY;灰色; COLORYELLOW:黄色; COLORCRAN:青色; COLORMAGENTA:品红色; COLORBROWN:棕色。 线风格的取值: 线风格取值为0——4,各参数表示的线形如下: 0 实线 1 虚线 2 点线 3 点划线 4 两点划线 2)、可引用指标公式、交易系统公式、条件选股公式 引用交易系统公式,可以写为: “SYSTEM.公式名称.交易类型”(参数表) 引用条件选股公式,可以写为:“EXPLORER.公式名称”(参数表) 3)、可跨周期引用公式 例2.“SYSTEM.MACD.ENTERLONG#MONTH” 4)、可引用任意股票的数据 也可以有“股票代码$fun.函数名称”或“股票休码$tech.指标名称”来引用已编译通过的指标。 5)、可引用扩展数据 引用扩展数据库中的数据的方法为: 6)、减号使用的特殊性 当公式中有变量或常量前加“-”号取反时,须加括号,如:(-2)*(DIFF-DEA)。 7)、公式中的注释 公式中的注释以标志。 例4 如何在图上区分多条指标线 例5 指标线的名字可以当函数名用 2)、较复杂的公式 在简单公式编写中所介绍的指标公式都是不带变量的,以下是一个带变量的指标公式的例子。对于带变量(又叫参数)的指标线,我们可以调整变量的值,并同步观察到指标线形状的变化。 例1,给指标公式加入变量 中间公式与一般的公式的区别在于:中间公式必须有一个名字,中间公式不使用冒号而是使用冒号等号":="来定义名字,如 MA10:=MA(CLOSE,10)就是一个中间公式,它仅供别的公式引用,不会在图上画出。 例2 加入中间公式 合理使用中间公式,不仅可以使计算速度加快,而且可以使公式更简洁易懂。 3)、公式举例 例1 MACD指数平滑异同移动平均线 DIFF: EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); 该公式绘制三条指标线,第一条名为DIFF,是收市价短期(SHORT)指数滑动平均与长期(LONG)指数滑动平均的差;第二条名为DEA,是DIFF的MID天指数滑动平均;第三条名为MACD,是DIFF与DEA的差。 例2 KD随机指标 参数名称 最小值 最大值缺省值 RSV:=(CLOSE-LLV(LOW,N1))/(HHV(HIGH,N1)- LLV(LOW,N1))*100; 该公式绘制K、D两条指标线。 例3 CR能量指标 参数名称 最小值 最大值缺省值 该公式中的头三个公式都是中间公式,实际上只绘一条指标线CR。 例4 OBV指标 M:=CLOSE-REF(CLOSE,1); M为今日收市价与昨日收市价之差,为正表示股价涨,为零表示平盘,为负表示股价跌。
CLOSE REF(CLOSE,1) REF(CLOSE,2)
DOWN:=REF(CLOSE,1)>CLOSE;
DOWN AND REF(DOWN,1) AND REF(DOWN,2)
交易系统公式编写
指标公式稍加变形,再附加一些额外买卖条件表达式,就可作为交易系统公式。
交易系统公式用于交易系统指示、探索最佳参数和探索最佳指标,这就要求它能准确描述买入和卖出信号,对于期货等还应能描述做空和做多信号。
和条件选股公式一样,交易系统公式也必须包含逻辑式,用于指示买入、卖出信号。指示买入信号的公式在买入条件窗中输入,指示卖出信号的公式在卖出条件窗中输入,二者一定要成对出现。若您只需要一个信号,可将另一个信号设成恒为“不成立”,例如 0>1。交易系统公式所包含的中间公式在中间公式输入窗中输入。
在探索最佳参数时,交易系统公式的一组参数从最小值到最大值遍历可能的组合,从中找出收益最大的一组参数值。收益采用中价计算,而且是考虑了手续费的。中价计算方法和手续费率可以在选项中设定。
在探索最佳指标时,系统针对某一只股票,测试到底哪一个交易系统公式最适合它,以及最佳收益如何。
在计算收益时,每次买入都假定使用全部资金买入,卖出时将全部股票卖出,收益率的计算是将每一次买卖的利润进行连乘,当连续出现相同的信号时,仅考虑第一个信号。
在交易系统公式中,还可以输入一些额外卖出条件,当这些条件之一满足时,强制卖出。
参数名称 最小值 最大值缺省值 测试步长
LONG 20 100 26 5
SHORT 1 30 12 2
MID 5 20 9 2
中间公式:
DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA:= EMA(DIFF,MID);
MACD:=DIFF-DEA;
多头卖出: CROSS(0,MACD);
买入条件为MACD由负变正;卖出条件反过来。
N1 1 40 9 1
N2 2 10 3 1
N3 2 10 3 1
LLV(LOW,N1))*100;
K: =MA(RSV,N2);
D: =MA(K,N3);
多头买入: CROSS(K,D) AND K<20
多头卖出: CROSS(D,K) AND K>80
卖出条件为D向上穿越K,并且K大于80。
参数名称 最小值 最大值缺省值 测试步长
LONG 20 100 26 5
SHORT 1 30 12 2
MID 5 20 9 2
多头买入: CROSS("MACD.MACD"(LONG,SHORT,MID),0);
多头卖出: CROSS(0, "MACD.MACD" (LONG,SHORT,MID));
五彩K线公式编写
"RSI.RSI1">80,COLORGREEN
早晨之星指示见底,后市看好。
第一日,在下跌市势中,出现一支身体修长的阴烛。
第二日,跳空下跌,蜡烛线身体长度缩短,形成星的主体部分,它可以是阴烛,也可以是阳烛。
第三日,出现一支阳烛,回升到第一支烛线的范围内。
REF(CLOSE,2)/REF(OPEN,2)<0.95 AND
REF(OPEN,1)< REF(CLOSE,2) AND
ABS(REF(OPEN,1)-REF(CLOSE,1))/REF(CLOSE,1)<0.03
AND CLOSE/OPEN >1.05 AND
CLOSE >REF(CLOSE,2),COLORRED
第二个条件限制昨天较前天跳空下跌。
第三个条件限制昨天开盘价与收盘价的差幅在3%以内。
第四个条件限制当天的K线为阳线,且收盘价与开盘价比较,升幅在5%以上。
第五个条件限制当天的收盘价高于前天的收盘价。
公式编写的灵活性与特殊性
MA10: MA(CLOSE,10),STICK,COLORGREEN,1,5;
MA20:MA(CLOSE,20);
MA60:MA(CLOSE,60)
引用指标公式,可以写成: “公式名称.指标线名称”(参数表)或“TECH.公式名称.指标线名称”
其中参数表中的参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。例如“TECH.MACD.DIFF”表示引用根据缺省参数计算的MACD指标中的DIFF指标线数值。
交易类型可以为ENTERLONG、EXITLONG、ENTERSHORT或者EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出。
例如"SYSTEM.MACD.ENTERLONG"表示引用MACD交易系统的多头买入条件。
例如“EXPLORER.MACD”表示引用MACD条件选股条件。
例1.“MACD#WEEK”(26,10,5)
表示引用MACD指标公式的最后一条指标线MACD的数值,在计算指标线值时,参数取(26,10,5),计算周期取周线。
表示引用MACD交易系统的多头买入信号,参数取缺省值,计算周期取月线。
注意:跨周期引用只能从较短周期引用较长周期,反方向的引用不允许。
可供引用的周期类型有:MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH等八种,分别表示1、5、15、30、60分钟线,以及日线、周线、月线。
可以在公式中引用其它任意股票的数据,方法为:“股票代码$数据名称”
数据名称可以是OPEN、HIGH、LOW、CLOSE、VOL、AMOUNT,分别表示包括开盘价、最高价、最低价、收盘价、成交量、成交额。
例如,“0001$CLOSE”表示引用深发展A的收盘价。
EXTDATA(N),指明引用第几组扩展数据
MA(CLOSE,20);
MA(CLOSE,60);
这个公式内部包含四个小公式,小公式间以分号隔开,我们称这种公式为组合公式。系统可同图绘制数条指标线。
可以为每一条指标线取一个名字,这样就可以在图上区分它们。具体方法是在指标公式前写上名称并加一个冒号:
MA5: MA(CLOSE,5);
MA10: MA(CLOSE,10);
MA20:MA(CLOSE,20);
MA60:MA(CLOSE,60)
当一条指标线有了名字以后,其后面的指标线就可以将该指标线作为一个函数来使用。请看下例。
求收市价的5日移动平均价的10日移动平均线,本应写为:
MA(MA(CLOSE,5),10)
如果给收市价5日移动平均线取个名字,我们又可以这样写:
MA5: MA(CLOSE,5);
MA(MA5,10)
与前者不同的是,后者同图绘出两条指标线.
每个公式中最多可以有100个变量,每个变量有最小值、最大值和缺省值,每个变量必须有自己的名字。
MTM动力指标是当日收市价减去几日前的收市价,设置一个变量N,其最小值、最大值、缺省值分别定为1日,50日,6日,指标公式写为 CLOSE-REF(CLOSE,N)。
在编写一套新指标公式时,我们可能需要多次引用同一个指标公式,且希望这个指标线不要绘出来,解决办法就是将这个指标公式设置为中间公式。
要求真实波幅,即在最高价与最低价的差、最高价与昨收的差、最低价与昨收的差中找到最大的,这里两处用到了昨收,可以将其设为中间公式,因此求真实波幅的公式写为:
LC := REF(CLOSE,1);
MAX(MAX(HIGH-LOW,ABS(HIGH-LC)),ABS(LOW-LC))
参数名称 最小值 最大值缺省值
LONG 20 100 26
SHORT 5 19 12
MID 2 20 9
DEA: EMA(DIFF,MID);
MACD: DIFF-DEA,COLORSTICK
该公式带三个参数:SHORT、LONG、MID。
COLORSTICK画线参数加入到MACD指标线中,表示MACD要画成柱状线,并用不同颜色区分上涨与下跌。
N1 1 40 9
N2 2 10 3
N3 2 10 3
K: MA(RSV,N2);
D: MA(K,N3)
RSV称未成熟随机值,为收盘价与N1天内最低价的差与N1内最高价与最低价的差的比,再乘系数100。
线K为RSV的N2天均线。
线D为线K的N3天均线。
N 1 100 26
MID:=(HIGH+LOW)/2;
UP:=MAX(HIGH-REF(MID,1),0);
DN:=MAX(REF(MID,1)-LOW,0);
CR: SUM(UP,N)/SUM(DN,N)*100;
MID为中价,即最高价与最低价的平均值。
UP为上升值,若今天最高价高于昨天中价,那么上升值为今天最高价与昨天中价的差,否则上升值为0。这本应写为UP:=IF(HIGH-REF(MID,1)>0,HIGH-REF(MID,1),0)进一步思考一下,我们可看出该式等价于UP:=MAX(HIGH-REF(MID,1),0)。
DN为下跌值,若昨天中价高于今天最低价,那么下跌值为昨天中价与今天最低价的差,否则下跌值为0。
CR为上升值的N日累加值与下跌值的N日累加值的比。
MV:= IF(M>0,VOL,IF(M<0,-VOL,0));
OBV:SUM(MV,0)
当股价上涨时,成交量记为正,下跌则成交量记为负,平盘记为0,用了两个IF来实现这个逻辑,后一个IF嵌套在前一个IF中。先看第一个IF,若M>0(股价涨),则MV等于VOL,否则转入第二个IF(此时可以肯定M<=0),若M<0(股价跌),则MV等于-VOL,否则(此时可肯定M=0,即平盘)MV等于0。
OBV为每日正负成交量的累加,注意累加天数为零,表示从上市第一天开始累加.