如何汇编自己的公式,好多人只会引入或拆解别人的公式组装一下但终归不是自己的原装,自己也想动手编制但苦于不会,这里就教你学会如何由浅至深的编制公式的技能.满世界找开琐钥匙(寻找破解指标),不如自己做个造锁专家(编写公式指标专家),您说呢?
宝庆二毛
等级:论坛游侠
文章:216
积分:434
注册:2005年3月25日
以下内容只有回复后才可以浏览 创新高
创新高指当日最高价是最近一段时间的最高价: 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<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(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(open<close,n)/n>0.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<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(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<ref(vol,1); count(a,n)=n; 注:其中条件a的含义为成交量较上一交易日缩小,n为要统计的阶段时间,可在参数设定范围内设定参数范围。 (19)、间隔放量 a:=ma(vol,5); barscount(c)>=n and hhv(a,n)<n1*llv(a,n) and count(vol>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 (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) |
|