汪维钱图吧 关注:3贴子:259
  • 4回复贴,共1

dazhihui

收藏回复

  • 221.7.150.*
·(zt)怎样编写大智慧指标公式? 
【 发布:fxj1588  2006-06-10 09:39  ●姑苏慕容●   浏览/回复:555/13】  
  怎样编写大智慧指标公式?怎样编写大智慧指标公式?
  
  目前大多数证券分析软件都具有指标分析和条件选股的功能,但只有用户可以自己编制算法公式的系统才是真正实用的,因为:
  
  许多软件的指标和选股功能是黑箱操作,也就是说,其内部算法是不公开的。这样用户并不知道其指标和选股到底是如何运作的、可靠性有多高、前提条件是什么,因而也难以决定是否采用指标或选股的结果。这样的指标和选股只有宣传上的意义而没有任何实际意义。
  
  许多软件的选股功能都不够强大和灵活。例如有些软件的条件选股功能只能让用户按照特定的模式进行设定,适用面很窄。
  
  公式系统类似于一种编程语言,用户可以数学公式的形式实现任何自己期望的技术指标和选股条件等。可编制的公式可以完全公开算法,用户可以自行分析、评价和修改,做到心中有数。
  
  公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算。为什么是数据组序列呢?因为每一个时间周期(即相邻两组数据间的时间间隔)都包含了一组原始数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如何对原始数据进行处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指示等形式显示出来。
  
  公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩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()都可以。函数计算得到的结果是一个变量。



1楼2006-08-01 16:54回复
    • 221.7.150.*
      
      五彩K线公式有用来描述显示K线颜色的语句,其实就是在语句后加上色彩描述符,之间用逗号隔开,表示当该句返回非0时K线的颜色。色彩描述符有:COLORRED:红色;COLORGREEN:绿色;COLORBLUE:蓝色;COLORBLACK:黑色:COLORWHITE:白色;COLORYELLOW:黄色:COLORYELLOW:青色;COLORF0F000:晶红色;COLORBROWN:棕色。
      
      技术指标公式还可以主动设定欲显示的坐标线,例如我们在坐标线位置输入框中写入-10;O;10,则显示该指标时出现-10,0,10三条坐标线。
       
    工具箱   
     
    【 · 发布:fxj1588  2006-06-10 09:39 】    
      特殊数据引用(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指标线的数值。
    


    3楼2006-08-01 16:54
    回复
      • 221.7.150.*
        
        VarC:=MA(SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE< REF(CLOSE,1),0-VOL,0)),0)/25000,2)*Var1; {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< b; (3)、K线的描述阳线 close>open; 阴线 close< open; 高开 open>ref(close,1); 低开 open< ref(close,1); 跳空高开(high为最高价) open>ref(high,1); 跳空低开(low为最低价) open< ref(low,1); 走势特征选股公式的编制(1)、n日内创新高   hhv(high,n)=hhv(high,0) and barscount©>=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(open< close,n)/n>0.5; 注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等 ,达到确定阳线占全部K线个数的比例)。
      


      5楼2006-08-01 16:54
      回复
        • 221.7.150.*
          
          (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< open; 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< ref(c,1),n)=n; 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。(11)、首次创新高   barssince(c>hhv(if(barscount©=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< ref(vol,1); count(a,n)=n; 注:其中条件a的含义为成交量较上一交易日缩小,n为要统计的阶段时间,可在参数设定范围内设定参数范围。(19)、间隔放量   a:=ma(vol,5); barscount©>=n and hhv(a,n)< n1*llv(a,n) and count(vol>n2*a,n)>n3; 注:a.barscount(x)第一个有效数据到当前的天数。Barscount©对于日线数据取得上市以来总交易日数。 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©>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日之间涨幅低于大盘的股票。


        6楼2006-08-01 16:54
        回复
          • 221.7.150.*
          n、n1参数的表达格式为yymmdd,注意在2000年前的表达为年份的后两位,例如1999年为99,从2000年开始以100依次向后累加,例如2001年9月14日为1010914,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。(27)、大盘同步   count((c>o and indexc>indexo) or (c< o and indexc< indexo),n)/n>m/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< a2 and a2< a3 and a3< a4,3)=3 and not(isup); 注:n1、n2、n3、n4j日均线呈空头排列,isup也可以用close< open表示。(3)、早晨之星   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); 注:早晨之星,这种形态和叫法自然是后市向好,为买进信号。早晨之星由三根K线组成,其顺序是:   第一天在下跌过程中已形成一根阴线:   ref(close,2)/ref(open,2<0.95 第二天呈裂口下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线均不重要。   ref(open,1)< ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.03    关键是第三根K线必须是阳线,且其长度至少要升至第一根阴线实体(如果能够“包容”第一根阴线则最好不过了)   close/open>1.05 and close>ref(close,2) 
             
          工具箱   
           
          


          7楼2006-08-01 16:54
          回复