1、怎样编写大智慧指标公式 怎样编写大智慧指标公式?hansong333 注:二年前曾经编写了 怎样编写大智慧指标公式?一文,随着时间的推移,原来 的内容有了变化,现在进行重新编写,并且加上了大智慧指标函数系统的内容,一并发在这里希望能和大 家交流,有不当之处希望能批评指正,谢谢! 怎样编写大智慧指标公式? 目前大多数证券分析软件都具有指标分析和条件选股的功能,但 只有用户可以自己编制算法公式的系统才是真正实用的,因为:许多软件的指标和选股功能是黑箱操作, 也就是说,其内部算法是不公开的。这样用户并不知道其指标和选股到底是如何运作的、可靠性有多高、 前提条件是什么,因而也难以决定是否采用指标或选股
2、的结果。这样的指标和选股只有宣传上的意义而没 有任何实际意义。许多软件的选股功能都不够强大和灵活。例如有些软件的条件选股功能只能让用户按照特定的模式进 行设定,适用面很窄。公式系统类似于一种编程语言, 用户可以数学公式的形式实现任何自己期望的技术指标和选股条件等。 可编制的公式可以完全公开算法,用户可以自行分析、评价和修改,做到心中有数。公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑 计算。为什么是数据组序列呢?因为每一个时间周期(即相邻两组数据间的时间间隔)都包含了一组原始 数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如
3、何对原始数据进行 处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指 示等形式显示出来。公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩 K 线公式。技术指标公式是最基本的公式,它用于指标图形的绘制。技术指标公式结合选股条件逻辑判断表达式,即得到条 件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统 指示。技术指标公式结合色彩逻辑判断表达式,即得到 K 线模式公式,用于描述特定的 K 线模式。公式的 编辑在公式编辑器中完成。公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可
4、以从 1 分钟到 1000 天间的 任意值,也可以是分笔成交数据,我们用鼠标把一个公式拖到某只证券的某个周期的图形分析窗口,则该 公式处理这个周期的原始数据 ,如开高低收量额,改变分析窗口显示的分析周期,则公式处理新的分析周期 的数据。公式系统对数据的运算是基于一系列函数,函数中除 ZIG 之字转向函数类和 BACKSET 函数外,其余 函数均满足时间不变性,即时间靠后的数据不对时间靠前的结果产生影响。公式设定步骤 1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有 9 个字符。请注 意,公式名称在同类公式中不能重复。2描述公式:用于简单描述该公式的含义,若输入,则在公式
5、列表中会显示这段文字 3注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按 “用法注释按钮可以查看公式注释。4.设计技术指标公式语句 :公式的形式由若干语句组成。 每个语句得到一个计算结果, 对于技术指标,就是一条指标线, 语句间用分号隔开。一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数 据做某种操作,如 CLOSE() 函数表示调用该分析周期的收盘价。函数由函数名称和参数组成,参数用函数 名后的括号括起来,每个函数调用的参数可以是变量或常量,变量是一个随着时间变化而变化的数据,例 如收盘价;常量是一个不随时间变化而变的数据。例如函数
6、REF(X,N)用于引用 N 周期前的 X值,X是一个变量,N 是一个常量, REF(close() ,1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的。 若没有参数则可以省去括号, 例如 CLOSE()函数没有参数, 所以写成 CLOSE 和 CLOSE() 都可以。函数计算得到的结果是一个变量。计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有 +、-、*、/ ,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有 、 、= 、1 的逻辑运算结果等于 1,12 的逻辑运算结果就等于 0。语句得到的计算结果连成线就是所谓的指标线,不同的语句
7、就得到不同的线,为了在指标图形中 互相区分,不同的线有不同的颜色,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语 句名写在语句的前面,用一个冒号将它与语句隔开。语句 “上日收盘价: REF(close,1) ”就表示该语句 REF(cl ose,1) 的名称为 “上日收盘价 ”。该语句后而的语句若需引用它,则写公式名即可,如 MA(上日收盘价 ,20) 意思是对上日收盘价求 20 日平均。5、设计中间语句: 一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出 来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间
8、 的冒号后加个等号,即 “:= ”即可。例如,语句 “上日收盘价: =REF(close,1) ”就表示该语句为中间语句。重 复使用的语句也可以定义成中间语句。6、设计其他公式语句: 其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果, 交易系统公式显示的是交易指示,五彩 K 线公式显示的是 K 线颜色。这些公式需要有一条或几条逻辑表达 式表示这些操作的语句,当语句返回 0 时表示不需要进行相应的操作,当返回非 0 时表示需要进行相应的 操作。其他的语句都应设定为中间语句。条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如 CLOSEREF(clos
9、e,1) 语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器 出现 “只能有一个输出结果 ”的警示。交易系统公式需要 1 4 条逻辑表达式语句, 分别为多头和空头的切入切出条件语句, 分别用 ENTERLONG, EXITLONG , ENTERSHORT, EXITSHORT 表示多头买入、多头卖出、空头切入、空头切 出条件,当这些语句返回非 0 时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑 器出现 “非交易信号变量只能用: =赋值”的警示。这四个条件中必须至少设定一个条件。五彩 K线公式可以有 1-6 条逻辑表达式语句,最多描述 6
10、 种不同的颜色。7、设计计算参数: 我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用 计算参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。比如,经常要修改 RE F(close,1 )中的第二个参数 1 ,这时可以把它设为一个计算参数 N,公式写成 REF(close,N ),到时调节 N 即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将 参数名定位 N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行
11、 修改。对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一 调整参数, 每次调整的增量就是测试步长。 例如最小值 1,最大值 30 ,步长 10 ,则系统将测试参数 1,11 , 21。最大测试步数为 10000 次。每个公式可以带有最多 16 个计算参数。8、其他语句: 有时我们想指定技术指标线的画法,这时我们可以在语句后加上线形描述符,描述该语句对应 的指标线画法。线形描述符包括STICK:柱状线;COLORSTICK:彩色柱状线,当语句结果为正时显示红色,否则显示绿色; VOLSTICK:成交量柱状线,股价上涨时显示红色空心柱,下跌时显示绿色实心柱; LI
12、NESTICK :同时画出柱状线和指标线;CROSSDOT:小叉线; CIRCLEDOT:小圆圈线; POINTDOT :小圆点线。五彩 K 线公式有用来描述显示 K 线颜色的语句,其实就是在语句后加上色彩描述符,之间用逗 号隔开,表示当该句返回非 0 时 K 线的颜色。色彩描述符有:COLORRED:红色;COLORGREEN:绿色;COLORBLUE:蓝色;COLORBLACK:黑色:COLORWHITE :白色;COLORYELLOW:黄色:COLORYELLOW:青色; COLORF0F000:晶红色; COLORBROWN:棕色。技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐
13、标线位置输入框中写入 -10; O;10,则显示该指标时出现 -10 ,0,10 三条坐标线。特殊数据引用(1)、指标数据引用 在编制公式过程中,有时需要使用另外一个指标的值,如果按照通常的做法,重新编制这个指标 就显得很麻烦,因此很有必要学习使用如何调用别的指标公式。调用其他指标的基本格式:”指标.指标线 ”参(数)A、指标与指标线之间用点 “ 分. ”开,一个指标不一定只有一条指标线,所以有必要在指标 后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。B、参数在表达式的末尾,必须用括号括起来,参数之间用 “号, ”分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指
14、标的默认参数设置(不过我在使用过程中发现,如不 写参数,测试就通不过)。C、整个表达式用引号引在其中,除参数以外。例如: ” MACD.DEF(”26,12,9 )表示计算 MACD指标的 DEA 指标线,计算参数为 26、 12、 9,” MACD” (26,12,9表)示该指标的最后一条指标线,并且 使用公式的默认参数。(2)、其他股票数据引用 使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对 比。A、引用大盘数据 引用大盘数据时使用下列函数: INDEXC 、INDEXV 等等。B、引用个股数据 引用个股数据时使用下列格式: ”股票代码 $数据 ”在以上
15、格式当中调用 CLOSE、VOL、AMOUNT 等等,例如,” Z000002$VOL表”示 000002 该股本 周期的成交量。同时大盘也可视为一只个股来引用,例如,上证 ”H000001$CLOS”E 表示为大盘本周期的收盘价,深市 ”Z399001$CLOS”E 同样表示为大盘本周期的收盘价。(3)、注意事项 在编公式中所运用的标点符号均是在英语状态下的符号。 在编制公式中,有要显示的句子和不显示的句子,要显示用 “:不”要显示用 “:= ”,一 个源码中最多只能有 16 个可显示的句子 ,并且每句结束后要加分号 “;。” 另外,开盘价、收盘价、最高价、最低价,在 公式中可用该函数的第一
16、个字母代替。因此在编公式时不要单独用这几个字母,请要注意。9、引用其他公式、周期或股票的数据 (注意:本点只作为参考,因大智慧未设有引用其它周期的数据功能) 可以在一个公式中引用其他公式、周期或股票的数据,具体做法如下。1)引用指标公式 /交易系统 / 条件选股公式 可以引用其他技术指标的指标线,写法是 公式名称 .指标线名称 ( 参数表 ),请注意,参数表中的 参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。例如: KDJ.K( 9,6,6),表示引用根据( 9,6,6)参数计算出 KDJ 指标中的 K 指标线数值。可以引用交易系统公式,写法为 SYSTEM.公式名
17、称 .交易类型 (参数表 ),交易类型包括 ENTERLO NG、EXITLONG、ENTERSHORT、EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出 条件。例如: SYSTEM.KDJ.ENTERLONG,表示引用根据缺省参数计算的 KDJ 交易系统的多头买入条件。可以引用条件选股公式,写法为 EXPLORER.公式名称 ( 参数表 ),例如: EXPLORER.KDJ,表示 引用根据缺省参数计算的 KDJ 买入条件选股条件。2)跨周期引用公式(大智慧不支持) 可以引用其他周期的数据, 写法为 公式名称 .指标线名称 #周期(参数表 ),跨周期引用只能从较短 周期引
18、用较长周期,反方向的引用不允许。例如 KDJ.K#WEEK(9 ,6,6),表示引用根据 (9 ,6,6)参数计 算周线周期的 KDJ 指标公式 K指标线的数值。其中周期包括 MIN1 ,MIN5 ,MIN15 ,MIN30 ,MIN60 , DAY, WEEK, MONTH ,分别表示 1、5、15、 30、 60 分钟线,以及日线、周线、月线。3)引用任意股票的数据 可以引用其它股票的数据,写法为: 股票代码 $数据名称 ,其中数据名称包括 OPEN、 HIGH 、 LOW、 CLOSE、 VOL、 AMOUNT,分别表示开盘价、最高价、最低价、收盘价、 成交量、成交额。公式编制 这里举一
19、些最简单的公式例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较 多。收盘价线 这是最简单的公式:CLOSE 均线的画法计算 N 日内收盘价的算术平均值,它是最常用的指标之一,公式为: MA(X,N) 表示 X 的 N 日平均。例如: MA1: MA (CLOSE, ) , coloryellow ; 表示为: 参数名 画一条 5 日收盘价的均线 设置该线为黄色 涨幅 涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价昨日收盘价)昨日收盘 价 *100% ,昨日收盘价的公式为: REF(CLOSE,1),因此涨幅的公式:(CLOSE-REF(CLOSE,1)/REF(CL
20、OSE,1)换手率 换手率指当期的成交量占流通股本的比例。公式:VOL/CAPITALVOL 为当期成交量, CAPITAL 为流通股本。创新高 创新高指当日最高价是最近一段时间的最高价。公式:HIGH=HHV(HIGH,N)其中的 HIGH 为当期最高价, HHV(X,N)是求 N周期内 X最高值。 因此该公式的含义是当日 最高价创日新高时返回值为,否则为。横盘整理 横盘整理指最近一段时期价格在一定幅度之内摆动。公式: (HHV(CLOSE,10)-LLV(CLOSE,10)/CLOSE=2 AND MONTHn/100; 这是 5 日均线增长比率,比率越大,其上长的斜率就越大 n 是参数,
21、 n% 是 5 日均线的增长比率,因此 n 定 5 以上可能其的斜率就越大,你可试试。)(对于时间限制的问题,我们就以 庄家进出 公式来作分析了解。Var1:=IF(YEAR=2034 AND MONTH=1,0,1); VAR1 赋值 :如果年份 =2034 AND 月 份=1, 返回 0,否则返回 1 点评:这个语句在配合其它语句使用的情况下可起到时间限制作用 VarC:=MA(SUM(IF(CLOSEREF(CLOSE,1),VOL,IF(CLOSE 昨收,返回成交量 (手),否则返回 (如果收盘价 =2034 和 月份=1 时,则 VAR1=0 ,这样以后计算 出来的结果全是 0 ,这
22、时该指标便毫无意义了,起到了时间限制的作用。 分界线:EMA(VarC,26)*Var1, LINETHICK2, COLORf0f000; 输出分界线 : VARC 的 26 日异同移动平均 *VAR1, LINETHICK2, COLORF0F000庄家线 1:色庄家线 2:EMA(VarC,1)*Var1,COLORRED; 输出庄家线 1:VARC的 1 日异同移动平均 *VAR1, 画红画黄色 庄家线 3:EMA(VarC,6)*Var1,COLORYELLOW;输出庄家线2: VARC的 6 日异同移动平均*VAR1,EMA(VarC,12)*Var1,COLOR00ff00 ;
23、输出庄家线3: VARC的 12 日异同移动平均*VAR1,COLOR00FF00 )颜色代码如:colorred 红 colormagenta (COLORf00ff0 )品红 coloryellow 黄 colorgray 灰 color ffff00 兰 colorblue 青 colorwhite 白 colorgreen 绿 colorbrown 棕 linethick0-7 指标线粗细 lin ethick 同时显示柱状线和指标线 circledot 空心园点 pointdot 小点 pointdot , linethick2 实心方点 c rossdotX 点状线 cmcledo
24、t0 点状线 stick 显示 colorstick 显示 linestick 显示 希望各位指标爱好 者自己动手进行配色修改,这样才会记得牢,学得透,不断探索,不断前进。一花开放不是春,万紫千红 春满园。走势形态特征指标:为了满足大家选股的需要,这里主要介绍股票走势特征、形态特征指标的编制。 走势形态特征指标编制的基础。( 1 )、放量、缩量(成交量函数为 VOL)A、放量a.今天成交量较昨天增加了 1 倍,表示如下:VOL/REF(VOL,1)2b.今天成交量较 10 个交易日平均成交量放大了 1 倍,表示如下:a:=ma(vol,10);Vol/a2或者直接用如下公式表示:vol/ma(
25、vol,10)2;c.今日的 5 日均量较 10 个交易日平均成交量放大了 1 倍,表示如下: a:=ma(vol,10); b:=ma(vol,5); b/a2;d.今日的成交量超过了整个流通盘的 5,表示如下:vol/capital0.05;其中 capital 代表流通盘B、缩量a.今日成交量较昨日减少了一半,表示如下: vol/ref(vol,1)0.5;b.今日成交量较 10 个交易日平均成交量减少一倍,表示如下: a:=ma(vol,10);vol/a2; 或者直接用如下公式表示: vol/ma(vol,10)2;c.今日的 5 日均量较 10 个交易日平均成交量减少 1 倍,表示
26、如下: a:=ma(vol,10); b:=ref(a,5); a/b2;d.今日的成交量低于了整个流通盘的 5,表示如下: vol/capitalref(close,1)1.05;5 日均价连续上涨,表示如下: a:=ma(close,5); b:=ref(a,1); b;下跌 今天的跌幅达到 5以上,表示如下: close/ref(close,1)0.95;5 日均价连续下跌,表示如下: a:=ma(close,5); b:=ref(a,1); aopen;阴线 closeref(close,1);低开 openref(high,1); 跳空低开( low 为最低价) open=n;注:n
27、 为指标参数,可在参数设定范围内设定参数范围。Hhv(x,n) ,求 n 周期内 x 最高值, n=0 则从第一个有效值开始;barscount(x), 将当前位置到 n 周期前的数值设为 1,若 x 非 0,则将当前位置到 n 周期前的数值设 为 1 。(2)、n 日内创新低 llv(low,n)=llv(low,0) and barscount(close)=n;注n为指标参数,可在参数设定范围内设定参数范围。 Llv(x,n) ,求n周期内 x最低值, n=0 则从第一个有效值开始; barscount(x) 第一个有效数据到当前的天数,例如, barscount(close) 以于日线数据取 得上市以来总交易日数。(3)、n 日内阴线多于阳线 count(openclose,n)/n0.5;注:n 为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如 等 ,达到确定阴线占全部 K 线个数的比例)。(4)、n 日内阳线多于阴线count(op
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1