发表于 2019-04-26 18:00:34 股吧网页版
大智慧、FXJ、TDX、飞狐公式编辑教程大全(三)(

?


分类一、怎样编写大智慧指标公式?
也可参阅《如何编制大智慧指标(易学易懂)》

目前大多数证券分析软件都具有指标分析和条件选股的功能,但只有用户可以自己编制算法公式的系统才是真正实用的,因为:

  许多软件的指标和选股功能是黑箱操作,也就是说,其内部算法是不公开的。这样用户并不知道其指标和选股到底是如何运作的、可靠性有多高、前提条件是什么,因而也难以决定是否采用指标或选股的结果。这样的指标和选股只有宣传上的意义而没有任何实际意义。

  许多软件的选股功能都不够强大和灵活。例如有些软件的条件选股功能只能让用户按照特定的模式进行设定,适用面很窄。

  公式系统类似于一种编程语言,用户可以数学公式的形式实现任何自己期望的技术指标和选股条件等。可编制的公式可以完全公开算法,用户可以自行分析、评价和修改,做到心中有数。

? ? 公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算。为什么是数据组序列呢?因为每一个时间周期(即相邻两组数据间的时间间隔)都包含了一组原始数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如何对原始数据进行处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指示等形式显示出来。

  公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩K线公式。技术指标公式是最基本的公式,它用于指标图形的绘制。技术指标公式结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。

 公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,我们用鼠标把一个公式拖到某只证券的某个周期的图形分析窗口,则该公式处理这个周期的原始数据,如开高低收量额,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。

  公式系统对数据的运算是基于一系列函数,函数中除ZIG之字转向函数类和BACKSET函数外,其余函数均满足时间不变性,即时间靠后的数据不对时间靠前的结果产生影响。

公式设定步骤

  1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复。

  2.描述公式:用于简单描述该公式的含义,若输入,则在公式列表中会显示这段文帧?br>
  3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按“用法注释”按钮可以查看公式注释。


4. 设计技术指标公式语句:

??公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号隔开。

??一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,如CLOSE()函数表示调用该分析周期的收盘价。函数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量,变量是一个随着时间变化而变化的数据,例如收盘价;常量是一个不随时间变化而变的数据。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。函数计算得到的结果是一个变量。

??计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有 、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>、<、<>、>=、<=、=、AND、OR,分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。

??语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜色,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号将它与语句隔开。语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。

5、设计中间语句:

  一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的冒号后加个等号,即“:=”即可。例如,语句“上日收盘价:=REF(close,1)”就表示该语句为中间语句。重复使用的语句也可以定义成中间语句。


6、设计其他公式语句:

??其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示,五彩K线公式显示的是K线颜色。这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。其他的语句都应设定为中间语句。

??条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。

??交易系统公式需要1-4条逻辑表达式语句,分别为多头和空头的切入切出条件语句,分别用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多头买入、多头卖出、空头切入、空头切出条件,当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。这四个条件中必须至少设定一个条件。

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

7、设计计算参数:
??我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用计算参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。比如,经常要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改。对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整的增量就是测试步长。例如最小值1,最大值30,步长10,则系统将测试参数1,11,21。最大测试步数为10000次。每个公式可以带有最多16个计算参数。

8、其他语句:

  有时我们想指定技术指标线的画法,这时我们可以在语句后加上线形描述符,描述该语句对应的指标线画法。线形描述符包括STICK:柱状线;COLORSTICK:彩色柱状线,当语句结果为正时显示红色,否则显示绿色;VOLSTICK:成交量柱状线,股价上涨时显示红色空心柱,下跌时显示绿色实心柱;LINESTICK:同时画出柱状线和指标线;CROSSDOT:小叉线;CIRCLEDOT:小圆圈线;POINTDOT:小圆点线。

??五彩K线公式有用来描述显示K线颜色的语句,其实就是在语句后加上色彩描述符,之间用逗号隔开,表示当该句返回非0时K线的颜色。色彩描述符有:COLORRED:红色;COLORGREEN:绿色;COLORBLUE:蓝色;COLORBLACK:黑色:COLORWHITE:白色;COLORYELLOW:黄色:COLORYELLOW:青色;COLORF0F000:晶红色;COLORBROWN:棕色。

  技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐标线位置输入框中写入-10;O;10,则显示该指标时出现-10,0,10三条坐标线。

特殊数据引用
(1)、指标数据引用
   在编制公式过程中,有时需要使用另外一个指标的值,如果按照通常的做法,重新编制这个指标就显得很麻烦,因此很有必要学习使用如何调用别的指标公式。
   调用其他指标的基本格式:”指标.指标线”(参数)
A、指标与指标线之间用点“.”分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。
B、参数在表达式的末尾,必须用括号括起来,参数之间用“,”号分开,通过参数设置可选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置(不过我在使用过程中发现,如不写参数,测试就通不过)。
C、整个表达式用引号引在其中,除参数以外。
例如:”MACD.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,”MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,”MACD”表示该指标的最后一条指标线,并且使用公式的默认参数。
(2)、其他股票数据引用
   使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对比。
A、引用大盘数据
引用大盘数据时使用下列函数:INDEXC、INDEXV等等。
B、引用个股数据
引用个股数据时使用下列格式:”股票代码$数据”,在以上格式当中调用CLOSE、VOL、AMOUNT等等,例如,”Z000002$VOL”表示000002该股本周期的成交量。同时大盘也可视为一只个股来引用,例如,上证”H000001$CLOSE”表示为大盘本周期的收盘价,深市”Z399001$CLOSE”同样表法大盘本周期的收盘价。
(3)、注意事项
   在编公式中所运用的标点符号均是在英语状态下的符号。
   在编制公式中,有要显示的句子和不显示的句子,要显示用“:”不要显示用“:=”,
一个源码中最多只能有16个可显示的句子,并且每句结束后要加分号“;”。
? ? 另外,开盘价、收盘价、最高价、最低价,在公式中可用该函数的第一个字母代替。因此在编公式时不要单独用这几个字母,请要注意。

9、引用其他公式、周期或股票的数据: (注意:本点只作为参考,因大智慧未设有引用其它周期的数据功能)

??可以在一个公式中引用其他公式、周期或股票的数据,具体做法如下。

1)引用指标公式/交易系统/条件选股公式
  可以引用其他技术指标的指标线,写法是"公式名称.指标线名称"(参数表),请注意,参数表中的参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。例如:"KDJ.K(9,6,6)",表示引用根据(9,6,6)参数计算出KDJ指标中的K指标线数值。

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

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

2)跨周期引用公式(大智慧不支持)
  可以引用其他周期的数据,写法为"公式名称.指标线名称#周期"(参数表),跨周期引用只能从较短周期引用较长周期,反方向的引用不允许。例如"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,分别表示开盘价、最高价、最低价、收盘价、成交量、成交额。

公式编制

 这里举一些最简单的公式例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。
收盘价线
  这是最简单的公式:
    CLOSE
均线的画法
  计算N日内收盘价的算术平均值,它是最常用的指标之一,公式为:MA(X,N)表示X的N日平均。
   例如:
? ?? ?? ?? ?MA1:? ???MA (CLOSE,5)? ?,? ?coloryellow ;
??表示为:? ?参数名? ?画一条5日收盘价的均线? ???设置该线为黄色


涨幅
  涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%,  昨日收盘价的公式为:REF(CLOSE,1),因此涨幅的公式:
    (CLOSE-REF(CLOSE,1))/REF(CLOSE,1)

换手率
  换手率指当期的成交量占流通股本的比例。
  公式:
    VOL/CAPITAL
??VOL为当期成交量,CAPITAL为流通股本。
?
创新高
  创新高指当日最高价是最近一段时间的最高价:
    HIGH=HHV(HIGH,N)
  其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。

横盘整理
  横盘整理指最近一段时期价格在一定幅度之内摆动:
    (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE <0.05
  其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。


区间统计
??例如,要取得2002年2月1日到2002年12月30日间的最低价。思考一下,一段时间的最低价必然是该段时间内每个分析周期的最低价中最小的那个。所以我们要引用的数据是该段时间各分析周期的最低价,而不需要用到开盘价、收盘价或最高价;还要将不需要的数据,即区间外的数据设为0。语句为:
    LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH <=12,LOW,0)
  该语句用一个条件函数来判断时间是否处于规定区间,若是则返回最低价,否则返回0。
  我们再用LLV函数,就可求得该段时间最低的最低价:
    LLV(LL,0)

技术指标公式

技术指标公式用于绘制技术指标线。以KDJ指标为例,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。

  参数名称:最小值,最大值,缺省值
   N:? ?? ?? ?1? ???10O? ?? ? 9
  M1:? ?? ? 2? ?? ? 40? ?? ? 3
  M2:? ?? ? 2? ?? ? 40? ?? ? 3

    RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
    K:SMA(RSV,M1,1);
    D:SMA(K,M2,1);
? ? J:3*K-2*D

  该公式绘制K、D、J两条指标线。RSV行是一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。K线为RSV的M1天移动平均线,D线为线K的M2天移动平均线,J线为K线与J线的差值。

(以下是引用‘wjwjc’版主对计算‘5日均线上升角度’的实例讲解

aa:=ma(c,5);{这是5日均线}
bb:=ref(ma(c,5),1);{这是昨日5日均线}
cc:(aa-bb)/bb>n/100;{这是5日均线增长比率,比率越大,其上长的斜率就越大}
n是参数,n%是5日均线的增长比率,因此n定5以上可能其的斜率就越大,你可试试。)

(对于时间限制的问题,我们就以‘庄家进出’公式来作分析了解。

Var1:=IF(YEAR>=2034 AND MONTH>=1,0,1);
{VAR1赋值:如果年份>=2034 AND 月份>=1,返回0,否则返回1}
{点评:这个语句在配合其它语句使用的情况下可起到时间限制作用}

VarC:=MA(SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE{VARC赋值:如果收盘价>昨收,返回成交量(手),否则返回(如果收盘价<昨收,返回0-成交量(手),否则返回0)的历史累和 /25000的2日简单移动平均*VAR1}
{点评:在这句用到了VAR1,当VAR1符合条件即:年份>=2034 和月份>=1时,则VAR1=0,这样以后计算出来的结果全是0,这时该指标便毫无意义了,起到了时间限制的作用。}

分界线: EMA(VarC,26)*Var1, LINETHICK2, COLORf0f000;
{输出分界线: VARC的26日异同移动平均*VAR1, LINETHICK2, COLORF0F000}

庄家线1: EMA(VarC,1)*Var1, COLORRED;
{输出庄家线1: VARC的1日异同移动平均*VAR1, 画红色}

庄家线2: EMA(VarC,6)*Var1, COLORYELLOW;
{输出庄家线2: VARC的6日异同移动平均*VAR1, 画黄色}

庄家线3: EMA(VarC,12)*Var1, COLOR00ff00 ;
{输出庄家线3: VARC的12日异同移动平均*VAR1, COLOR00FF00 })

颜色代码
如:colorred{红}
colormagenta(COLORf00ff0){品红}? ?coloryellow{黄}? ?colorgray{灰} colorffff00{兰} colorblue{青}? ?colorwhite{白}? ?colorgreen{绿}? ?colorbrown{棕}
linethick{0--7指标线粗细} linethick{同时显示柱状线和指标线}
circledot{空心园点}? ?pointdot{小点}? ?pointdot,linethick2{实心方点}
crossdot{X点状线}? ?cmcledot{0点状线}? ?stick{显示} colorstick{显示}
linestick{显示} 希望各位指标爱好者自己动手进行配色修改,这样才会记得
牢,学得透,不断探索,不断前进。一花开放不是春,万紫千红春满园。
走势形态特征指标:为了满足大家选股的需要,这里主要介绍股票走势特征、形态特征指标的编制。
走势形态特征指标编制的基础。
(1)、放量、缩量(成交量函数为VOL)
A、放量
??a.今天成交量较昨天增加了1倍,表示如下:
   VOL/REF(VOL,1)>2
??b.今天成交量较10个交易日平均成交量放大了1倍,表示如下:
a:=ma(vol,10);
Vol/a>2
??或者直接用如下公式表示:
vol/ma(vol,10)>2;
??c.今日的5日均量较10个交易日平均成交量放大了1倍,表示如下:
   a:=ma(vol,10);
??b:=ma(vol,5);
??b/a>2;
??d.今日的成交量超过了整个流通盘的5%,表示如下:
   vol/capital>0.05;其中capital代表流通盘。
B、缩量
  a.今日成交量较昨日减少了一半,表示如下:
??vol/ref(vol,1) <0.5;
??b.今日成交量较10个交易日平均成交量减少一倍,表示如下:
   a:=ma(vol,10);
??vol/a <2;
??或者直接用如下公式表示:
   vol/ma(vol,10) <2;
??c.今日的5日均量较10个交易日平均成交量减少1倍,表示如下:
??a:=ma(vol,10);
??b:=ref(a,5);
??a/b <2;
??d.今日的成交量低于了整个流通盘的5%,表示如下:
??vol/capital <0.05;
(2)、上涨、下跌
上涨
今天的涨幅达到5%以上,表示如下:
close>ref(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);
a (3)、K线的描述
阳线
close>open;
阴线
close 高开
open>ref(close,1);
低开
open 跳空高开(high为最高价)
open>ref(high,1);
跳空低开(low为最低价)
open 走势特征选股公式的编制
(1)、n日内创新高
   hhv(high,n)=hhv(high,0) and barscount(c)>=n;
注:n为指标参数,可在参数设定范围内设定参数范围。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(open>close,n)/n <0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阴线占全部K线个数的比例)。
(4)、n日内阳线多于阴线
   count(open0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阳线占全部K线个数的比例)。

(5)、n日内上涨多于下跌(第二天开盘高于前一天收盘)
? ? count(c>ref(c,1),n)/n>0.5;

注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定其中比例)。
(6)、n日内上涨少于下跌(第二天开盘低于前一天收盘)
   count(c>ref(c,1),n)/n <0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定其中比例)。
(7)、连续n日收阳线
   up:=close>open;
? ? count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。n为指标参数,可在参数设定范围内设定参数范围。
(8)、连续n日内收阴线
   up:=close ? ? count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(9)、连续n天上涨
   count(close>ref(close,1),n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(10)、连续n天下跌
   count(c 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(11)、首次创新高
   barssince(c>hhv(if(barscount(c)=1,high,0),0)) 1=1;
注:barscount(x),若x非0,则将当前位置到n周期前的数值设为1。
(12)、创历史新高
   hhv(close,0)=close;
注:hhv(x,n),求n周期内x最高值,n=0则从第一个有效值开始。
(13)、创历史新低
   llv(close,0)=close;
注:llv(x,n),求n周期内x最小值,n=0则从第一个有效值开始。
(14)、单日放量
   a:=ref(ma(vol,5),1);
? ? vol/a>n and vol/capital*100>m;
注:n为指标参数,代表今日成交量和前一日的5日均量的比值,可在参数设定范围内设定参数范围。
(15)、阶段缩量
   sum(vol,n1)/capital <=n2;
注:n1为要统计的阶段时间,n2为缩量比例,可在参数设定范围内设定参数范围。
(16)、阶段放量
   sum(vol,n1)/capital>=n2;
注:n1为要统计的阶段时间,n2为y放量比例,可在参数设定范围内设定参数范围。
(17)、持续放量
   a:=vol>ref(vol,1);
? ? count(a,n)=n;
注:其中条件a的含义为成交量较上一交易日放大,n为要统计的阶段时间,可在参数设定范围内设定参数范围。
(18)、持续缩量
   a:=vol ? ? count(a,n)=n;
注:其中条件a的含义为成交量较上一交易日缩小,n为要统计的阶段时间,可在参数设定范围内设定参数范围。
(19)、间隔放量
   a:=ma(vol,5);
? ? barscount(c)>=n and hhv(a,n)n2*a,n)>n3;
注:a.barscount(x)第一个有效数据到当前的天数。Barscount(c)对于日线数据取得上市以来总交易日数。
b.完整含义:n日内五日均量的最大值小于最小值的n1倍,成交量大于等于五日均量的n2倍的情况发生的次数多于n3次。
(20)、放量上攻
? ? a:=(c-ref(c,1))/ref(c,1)>=(n/100);
? ? sum(vol,n1)/capital>=(n2/100) and count(vol>ref(vol,1),n3 )=n3 and count(a,n3)=n3;
完整含义:每日股价涨幅均大于n%,n1日内累计换手率大于n2%,并且成交量连续在n3日内放大。
(21)、温和放量上攻
   股价小幅上扬
? ? a1:=close/ref(close,1);
? ? a2:=a1>1 and a1 <1.03;
? ? 成交量小幅上扬
   b1:=vol/ref(vol,1);
? ? b2:=b1>1 and b1 <2;
? ? c1:=ma(vol,n)/capital <0.05;
? ? count(a2 and b2,n)/n>0.6 and c1;
? ? 完整公式为:
   a1:=close/ref(close,1);
? ? a2:=a1>1 and a1 <1.03;
? ? b1:=vol/ref(vol,1);
? ? b2:=b1>1 and b1 <2;
? ? c1:=ma(vol,n)/capital <0.05;
? ? count(a2 and b2,n)/n>0.6 and c1;
注:公式分为股价小幅上扬和成交量小幅上扬两个部分,请在指标编写时注意其结构。
(22)、突然放量
   vol>ref(hhv(vol,n),1*m;
注:当前成交量高于n个周期中最大成交量的m倍。
(23)、平台整理
   count(close,0)>n and (hhv(close,n)-llv(close,n))/llv(close,n) <=(n1 /100);
注:count(close,0)>n为平台整理n个周期的设定。(hhv(close,n)-llv(close,n))/llv(close,n) <=(n1 /100)为平台整理幅度n1%的设定。
(24)、突破长期盘整
? ? ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)<=(n1 /100) and c>=ref(hhv(h,n),1) and barscount(c)>n;
注:前n日在上下n1%的幅度内整理:ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1) <=(n1 /100);
今日突破:c>=ref(hhv(h,n),1)。
(25)、阶段强势股
   a:=sum(if(date-n=0,indexc,0),0);
? ? b:=sum(if(date-n1=0,indexc,0)0);
? ? e:=sum(if(date-n=0,c,0),0);
? ? f:=sum(if(date-n1=0,c,0),0);
? ? ((f-e)/e)>((b-a)/a);
注:该公式求的是n日-n1日之间涨幅高于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。
(26)、阶段弱势股
   a:=sum(if(date=n,indexc,0),0);
? ? b:=sum(if(date=n1,indexc,0)0);
? ? e:=sum(if(date=n,c,0),0);
? ? f:=sum(if(date=n1,c,0),0);
? ? ((f-e)/e)<((b-a) /a);
注:该公式求的是n日-n1日之间涨幅低于大盘的股票。n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。
(27)、大盘同步
   count((c>o and indexc>indexo) or (cm/100;
注:含义为n周期中与大盘走势相同(同收阴线或同收阳线)的例超过m%。此处的o不是数字的零,而是开盘价open的首写字母o。
(28)、n日内强势股
? ? a:=(c-ref(o,n))/ref(o,n);
? ? b:=(indexc-ref(indexo,n))/ref(indexo,n);
? ? a>b and a/b>=m;
注:n日内个股涨幅大于等于大盘涨幅的m倍。
形态特征选股公式的编制
(1)、均线多头排列
   a1:=ma(c,n1);
? ? a2:=ma(c,n2);
? ? a3:=ma(c,n3);
? ? a4:=ma(c,n4);
? ? count(a1>a2 and a2>a3 and a3>a4,3)=3 and isup;
注:n1、n2、n3、n4j日均线呈多头排列,isup也可以用close>open表示。
(2)、均线空头排列
   a1:=ma(c,n1);
? ? a2:=ma(c,n2);
? ? a3:=ma(c,n3);
? ? a4:=ma(c,n4);
? ? count(a1 注:n1、n2、n3、n4j日均线呈空头排列,isup也可以用close (3)、早晨之星
   ref(close,2)/ref(open,2<0.95 and ref(open,1)1.05 and close>ref(close,2);
注:早晨之星,这种形态和叫法自然是后市向好,为买进信号。早晨之星由三根K线组成,其顺序是:
   第一天在下跌过程中已形成一根阴线:
   ref(close,2)/ref(open,2 <0.95
? ? 第二天呈裂口下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线均不重要。
   ref(open,1)    关键是第三根K线必须是阳线,且其长度至少要升至第一根阴线实体(如果能够“包容”第一根阴线则最好不过了)
   close/open>1.05 and close>ref(close,2)

(4)、强势整理
? ? a1:=abs(close-open)/open <0.015;
? ? a2:=count(a,m)=m;
? ? a3:=ref(o,m)1 n/100;
? ? a2 and a3;
注:一根实体超过n的长阳,后面跟m个K线实体不超过1.5%的K线。
(5)、高开大阴线
   open>close and open/ref(c,1)>=1 m/100 and close/open<=1-n /100;
注:跳空高开m%,当日股价较开盘价跌幅大于n。股价经过一段持续攀升之后,某一日突然跳高开盘:
   open/ref(c,1)>=1 m/100
   后股价一路下行,尾市以接近最低点收市:
   close/open<=1-n /100
   此信号出现,往往意味着股价已形成短期头部,应注意回避风险。
(6)、低开大阳线
   open=1 n/100;
注:跳空低开m%,当日股价较开盘价涨幅大于n,其他描述请参见(5)。
(7)、黄昏之星
   ref(close,2)/ref(open,2)>1.03 and ref(open,1)>ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1) <0.02 and close/open<0.97 and close注:黄昏之星表示股价回落,是卖出信号,应伺机抛货。幕星同样由三根K线组成,其形态和晨星正好相反:
   第一天股价继续上升,拉出一根阳线:
   ref(close,2)/ref(open,2)>1.03
   第二天波动较小,形成一根小阳线或小阴线,构成星的主体部分:
   ref(open,1)>ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1) <0.02
   第三天形成一根包容第二天并延伸至第一天阳线实体:
   close/open <0.97 and close(8)、跳空缺口
   highref(high,1);
注:从内容上看,分别是向下跳空缺口和向上跳空缺口。
(9)、均线金叉
   a;=ma(c,5);
? ? b:=ma(c,10);
? ? cross(a,b);
注:前二句是5、10日均线,cross是交叉函数,cross(a,b)表示5日均线与10日均线金叉。
(10)、均线死叉
   a;=ma(c,5);
? ? b:=ma(c,10);
? ? cross(b,a);
注:前二句是5、10日均线,cross是交叉函数,cross(b,a)表示5日均线与10日均线死叉。
(11)、均线粘合
? ? ma1:=ma(c,5);
? ? ma2:=ma(c,10),
? ? ma3:=ma(c,20);
   p1:=abs(ma1-ma2) abs(ma2-ma3);
? ? p1/cref(ma1,1) and ma2>ref(ma2,1);
注:前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率m%(一般该比率为2%以下,同时前二均线今日比昨日上翘。

五彩K线与交易系统指标的编制方法
一、 五彩K线
1、 五彩K线简介
简单地说五彩K线,就是对于我们事先描述好的K线形态,大智慧将自动地给我们找出来,同时对满足条件的K线形态赋于颜色,以区别于其他的K线。
依据K 线的形态,我们将五彩K线分为“上涨”、“下跌”、“反转”三大类。
2、 五彩K线编辑时常用的函数
(1)、BACKSET(X,N)
? ? 五彩K线就是对满足条件的K线形态赋于颜色,在这里,我们就需要赋值函数BACKSET赋予满足条件的K线时段以不同的颜色,区分不满足条件的其它时段的K线。
   函数BACKSET(X,N)中,X是由逻辑判断语句组合的一个综合条件,N为你意欲赋予颜色的时间长度,该时间长度的取值法为“从当前周期开始向前到N个当前周期”。
 (2)、更改颜色
   如果不进行任何的颜色设定,系统将以黄色显示五彩K线,目前我们在每个指标中以红色显示五彩K线。如果要更改颜色,只需要瘵指标中“COLORRED”改为其他颜色即可。
3、 五彩K线的编制方法
五彩K 线的编制并没有和前面介绍的其他公式有很大的区别,一般的公式编辑是作
为特定的指标来显示,五彩K线将满足条件的连续K线形态赋予颜色,区别于其它的K线,则是把满足设定条件的个股以其们的颜色标明。
(1) 阳包阴五彩K线的编制
这里的阳包阴就是说某一天的阳线将前一天的阴线全部包容起来,使得在K线组
合上出现前小后大的形态。该动态表明前日所有价位买进而未出局者都能获利,从而大鼓舞了人气,为此后的持续上升奠定了基础,是典型的底部信号。
原理:某一天的阳线将前一天的阴线全部包容起来。
五彩K 线的编辑:
REF(OPEN,1)>REF(CLOSE,1) 上一交易日收阴线。
CLOSE>REF(OPEN,1)? ?? ? 收盘价高于上一交易日开盘价。
OPEN HIGH>REF(HIGH,1)? ?? ? 最高价高于上一交易日最高价。
LOW CLOSE>OPEN? ?? ?? ???收阳线
? ?? ?(CLOSE-OPEN)>(EMA((HIGH-LOW),N))
? ?? ?? ?? ?? ?? ?? ?? ???为了避免小阴小阳的“阳包阴”,我们设定幅
                    度超过市场N个交易日内平均涨幅。
     COLORRED? ?? ?? ?? ? 五彩K线颜色为红色。
    那么,整体的公式为:
     BACKSET(我们假定的条件,2),COLORRED;
? ? 即:
    BACKSET (REF(OPEN,1)>REF(CLOSE,1) AND CLOSE>REF(OPEN,1) AND OPENREF(HIGH,1) AND LOWOPEN AND (CLOSE-OPEN)>(EMA((HIGH-LOW),N)),2),COLORRED;
 (2)、三只乌鸦五彩K线的编制方法
    在股价顶部,庄家已获利丰厚,准备出逃时会连续拉出二根、三根或三根以上的小阴线,且每日的K线均低于上一日的收盘价。这促顶部特征不一定要伴随着大的成交量,因此具有较大的欺骗性。
    原理:
1、 连续三支阴线;
2、 每日收盘价均向下跌;
3、 收盘价接近每日的最低价位;
4、 每日的开盘价都下跌。
    五彩K 线的编辑:
      REF(CLOSE,2)       REF(CLOSE,1) ? ?? ???CLOSE       REF(CLOSE,1) ? ?? ?? ?? ?? ?? ?? ?? ???每日收盘价都向下跌。
      REF(OPEN,1) ? ?? ?? ?? ?? ?? ?? ?? ???每日开盘价都向下跌。
      REF(C,3)/REF(O,3)>=1.02? ???第一根阴线跌幅超过2%。
      COLORRED? ?? ?? ?? ? 五彩K线颜色为红色。
    那么,整体的公式为:
      BACKSET(我们假定的条件,3),COLORED
? ? 即:BACKSET(REF(CLOSE,2)=1.02,3),COLORRED;
? ? 注:
      三只乌鸦形态发生在上升趋势中,三只乌鸦出现前必须有一段明显的上升趋势,无论这段上升趋势是长或短,在此之后出现该形态才较为有效。三只乌鸦形态如果出现在前期的形态压力位附近,则其反转的可靠性进一步增强。对行情的研判更具意义。在一段上升行情的关健位置在历史高价位区域,且是重要的支撑阻挡位时,出现三只乌鸦形态,则其意义显得重要,在很大的程度上趋势将反转下跌。
 (3)、红三兵五彩K线的编制
    在本形态中,相继出现的3根阳线K线组成,它们的收市价一个比一个高(并且每根K线的收市价均接近当日的最高价),表示多头势力的加强。如果这样的3根阳线K线出现在一贯相对稳定的价格阶段之后,而且处于一个低价区,则预示着市场将进一步坚挺。
    五彩K线编辑:
      REF(CLOSE,2)>REF(OPEN,2)? ?第一根K线收阳。
      REF(CLOSE,1)>REF(OPEN,1)? ?第二根K线收阳。
      CLOSE>OPEN? ?? ?? ???第三根K线收阳。
      (CLOSE-OPEN)>=REF((CLOSE-OPEN),1)
? ?? ?? ?? ?? ?? ?? ?? ???第三根阳线实体大于第二根阳线实体。
      REF((CLOSE-OPEN),1)>=REF((CLOSE-OPEN),2)
? ?? ?? ?? ?? ?? ?? ?? ???第二根阳线实体大于第一根阳线实体。
      OPEN>REF(OPEN,1)? ?? ? 第三根阳线开盘高于第二根阳线开盘。
      REF(OPEN,1)>REF(OPEN,2)? ?第二根阳线开盘高于第一根阳线开盘。
      COLORRED? ?? ?? ?? ? 标明为红色。
    那么,整体的公式为:
      BACKSET(我们假定的条件,3),COLORED;
? ? 即:
      BACKSET(REF(CLOSE,2)>REF(OPEN,2) AND REF(CLOSE,1)>REF(OPEN,1) AND CLOSE>OPEN AND (CLOSE-OPEN)>=REF((CLOSE-OPEN),1) AND REF((CLOSE-OPEN),1)>=REF((CLOSE-OPEN),2) AND OPEN>REF(OPEN,1) AND REF(OPEN,1)>REF(OPEN,2),3),COLORRED;
? ? 注:
      如果红三兵出现在V型底、W底的附近,则构成了底部反转形态的确认信号;红三兵形态发生在下降趋势中,红三兵出现前必须有一段明显的下降趋势,无论这段下降趋势是长或短,在此之后出现该形态更为有效;红三兵形态如果出现在底部,是一种底部反转信号,此时买进;红三兵形态如果出现在高位,则是一种较为危险的顶部反转信号,此时不宜买进。
      阳线三兵形态有三种类似的构成,表现为一个逐渐而稳定的上升过程,其中每根阳线K线的开市价都处于前一天的阳线实体之内,或者处在其附近的位置上;每一根阳线K线的收市价都应当位于当日的最高点或接近当日的最高点,如果其中第二根和第三根K线,或者仅仅是第三根K线,表现出上涨势头减弱的迹象,就构成了一个前方受阻(阳线三兵)形态。在前方受阻形态中,作为上涨势头减弱的具体表现,既可能是其中的阳线实体一个比一个小,也可能是后两根阳线K线具有相当较长的上影线,如果在后两根K线中,前一个为长长的阳线实体,并且向上创出了新高,后一根只是一个小的阳线K线,那么就构成了一个(阳线三兵)停顿形态。有时候,这种形态也称为(阳线三兵)深思形态。

二、 交易系统
    交易系统是大智慧在条件选股功能上的一个大的延伸,旨在建立一套完整的交易规则体系,系统可以通过此平台对我们的买入、卖出等操作发出明确的买卖信号指示。
1、 编辑交易系统公式
进入大智慧“公式编辑器”
(1) 、点击“交易系统”选项,选择“新建”,可以建立一个亲的交易系统。
(2) 、选中一个具体的交易系统,双击名称或者点击“修改”,可能浏览并编辑该系统
的公式内容。
2、 交易提示编辑时常用的函数:
(1)、前提:交易系统一共包含多头买入(卖出)、空头买入(卖出)四种情况,但是由于我们只允许多头买入、卖出,故我们这里不讨论空头情况。
(2)、函数
   ENTERLONG:多头买入函数。
   EXITLONG:多头卖出函数。
   简单的交易系统模型应该如下表示:
   ENTERLONG:条件A;
? ? EXITLONG:条件B;
??注意:一个完整的交易系统必须有进出两个条件组成,也就是说是ENTERLONG、EXITLONG或者ENTERSHORT、EXITSHORT(空头买入、卖出函数)中其中一组组成。

3、 交易系统的编制方法
    首先,要确定的是,交易系统是多个条件的组合。通过不同条件的叠加、修正,系统自动在满足我们组合条件的个股K线图中添加买卖信号。
 (1)、均线交易系统
    如果个股5日均线上穿20日均线时,我要买入;相反,个股5日均线下穿20日均线我就卖出,这样的一个思路我们怎么来编写交易系统呢?
    很简单
    5日均线上穿20日均线(买入条件):CROSS(MA(CLOSE,5),MA(CLOSE,20))
? ? 5日均线下穿20日均线(卖出条件):CROSS(MA(CLOSE,20),MA(CLOSE,5))
? ? 按照前面所讲,交易系统函数“ENTERLONG:条件A;EXITLONG:条件B;”的方式表达:
    ENTERLONG: CROSS(MA(CLOSE,5),MA(CLOSE,20));
? ? EXITLONG: CROSS(MA(CLOSE,20),MA(CLOSE,5));
? ? 同时按照自己的需求选择正确的介入点,如果不作选择,系统将默认在满足条件时发出提示信号。
    为了方便修改指标参数,也可以将5日均线、20日均线设定成参数:SHORT和LONG,并将其默认为5、20。参数自述中加上“短期(Parsm#1)均线上穿长期(Param#2)均线买入,长期均线上穿短期均线卖出。”
    那么在使用该交易系统时,用鼠标右健点击发出的买卖提示点,选择“调整指标参数”,就可以很方便的修改里面的2条均线参数。
 (2)、KDJ交易系统
    我们知道如果在D 小于20的区域发生了K线上穿过D线是很好的买入条件;相反,D>80并且好生了D线下穿过了K线,则是很好的卖出条件。如何编辑呢?
    第一步:在公式编写栏中分别设定公式的名称、分析周期、参数的各项内容,并编写KD的表达式,并且将K、D表达为两个中间表达式。中间表达式用符号“:=”
    RSB:=(CLOSE-LLV(LOW,N))/(HHV(HIGN,N)-LLV(LOW,N)0*100;
? ? K:=SMA(RSV,M1,1);
? ? D:=SMA(K,M2,1);
? ? 第二步:完成交易系统的结构
    ENTERLONG:CROSS(K,D) AND K <20;
? ? EXITLONG:CROSS(D,K) AND K>80;
? ? 完整表达式:
    RSB:=(CLOSE-LLV(LOW,N))/(HHV(HIGN,N)-LLV(LOW,N)0*100;
? ? K:=SMA(RSV,M1,1);
? ? D:=SMA(K,M2,1);
    ENTERLONG:CROSS(K,D) AND K <20;
? ? EXITLONG:CROSS(D,K) AND K>80;
    但是,假设在一个KD强势的市场中,如果股价从下方穿过了30日均线,并且当天的成交量有比较明显的放大,我会买入;我的卖出条件是股价跌下10日均线之下立即抛出。这个交易系统怎么编辑呢?
  买入条件:
    KDJ强势:
    AA:=”KDJ,D”(9,3,3);(因为KDJ指标中3个参数默认值分别为9、3、3,故我们应在指标中增加默认值)。
    A1:=AA>40;
? ? 成交量明显放大,量化为大于5日均量的一倍。
    A2:=VOL/MA(VOL,5)>2;
? ? 股价从下方上穿过了30日均线。
    A3:=CROSS(CLOSE,MA(CLOSE,30));
? ? 完整的买入条件为
    ENTERLONG:A1 AND A2 AND A3;
卖出条件:
  股价从上方下穿过了5日均线
  A4:=CROSS(MA(CLOSE,5),CLOSE);
??EXITLONG:A4 AND COUNT(A1 AND A2 AND A3,20)=1; 注意其后的COUNT( )是用来限定卖出信号发生在买入条件发生的20天内。
  那么,完整的公式为:
  AA:=”KDJ,D”(9,3,3);
  A1:=AA>40;
  A2:=VOL/MA(VOL,5)>2;
  A3:=CROSS(CLOSE,MA(CLOSE,30));
  A4:=CROSS(MA(CLOSE,5),CLOSE);
    ENTERLONG:A1 AND A2 AND A3;
    EXITLONG:A4 AND COUNT(A1 AND A2 AND A3,20)=1;

郑重声明:用户在财富号/股吧/博客社区发表的所有信息(包括但不限于文字、视频、音频、数据及图表)仅仅代表个人观点,与本网站立场无关,不对您构成任何投资建议,据此操作风险自担。请勿相信代客理财、免费荐股和炒股培训等宣传内容,远离非法证券活动。请勿添加发言用户的手机号码、公众号、微博、微信及QQ等信息,谨防上当受骗!
郑重声明:用户在社区发表的所有资料、言论等仅仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。《东方财富社区管理规定》