您当前的位置:首页 > 互联网教程

请高手编写一个通达信选股程序

发布时间:2025-05-22 04:11:23    发布人:远客网络

请高手编写一个通达信选股程序

一、请高手编写一个通达信选股程序

1、一、在公式编辑器,选“指标公式”---“其他类型”,(其他的编辑种类输出受限),粘贴:

2、E:IF(EXIST(CROSS(DIF,0),N),1,0);

3、F:IF(LLV(MACD.DIF,N)>=0,1,0);

4、在这里,E的值基本用不到,因为F值大于0,就表明曾经上穿过,而且现在大于0,

5、二、到选股器里,综合选股,找你所给的K线图来看,我在计算参数设置了40个交易日来选,指定日期设在3月20日,“加入条件”里加进去三个条件,选出32个股票,如图,

二、怎么在现有的通达信股票软件上编制选股小程序

1、打开通达信股票软件,并在菜单栏中选择“公式”选项。

2、在公式选项下,选择“编写公式”。

3、在编写公式界面,选择“新建”按钮,创建一个新的选股公式。

4、在公式编辑器中,编写选股公式的代码,选股公式通常包括股票代码、股票名称、价格、市值、市盈率、市净率、股息率等指标。

5、在编写选股公式时,可以使用通达信股票软件提供的函数和工具,例如移动平均线、指数平滑异同移动平均线(MACD)、相对强弱指标(RSI)等。

6、完成选股公式的编写后,选择“测试”按钮,测试选股公式的准确性和有效性。

7、如果选股公式测试通过,则可以选择“保存”按钮,将选股公式保存在通达信股票软件中,以便日后使用。

8、在选股公式保存后,可以选择“退出”按钮,退出公式编辑器。

三、编写选股公式

函数可以被认为是一种语言,通过这种语言告知计算机自己的想法,并让它去实现。

最高价:HIGH收盘价:CLOSE最低价:LOW开盘价:OPEN成交量:VOL成交额:AMO

假如两条均线一条名叫X,另外一条叫Y CROSS(X,Y)表示均线X向上穿过均线Y CROSS(Y,X)表示均线Y向上穿过均线X

以上函数所表示的均为当天或是本周期的数据,而前期数据表示则引用另一个函数:REF(X,M)这里的M即为参数

例如: REF(Close,5)表示5天前的收盘值; REF(Vol,10)表示10天前的成交量;

如果想把两个条件并列在一起可以用“AND”

一、放量、缩量(成交量函数为VOL)

(1)今天成交量同昨日相比增加了1倍:

(2)今天成交量较10个交易日平均成交量放大了1倍:

a:=ma(vol,10);vol/a>2;或者:vol/ma(vol,10)>2;

(3)今日的5日均量较10个交易日平均成交量放大了1倍:

a:=ma(vol,10);b:=ma(vol,5);b/a>2;

(4)今日的成交量超过整个流通盘的5%:

vol/capital>0.05;(其中capital表示流通盘)

(1)今日成交量同昨日相比减少了一半:

(2)今日成交量较10个交易日平均成交量减少一倍:

a:=ma(vol,10);vol/a<2;或者:vol/ma(vol,10)<2;

(3)今日的5日均量较10个交易日平均成交量减少1倍:

a:=ma(vol,10);b:=ref(a,5);a/b<2;

(4)今日的成交量低于了整个流通盘的5%:

(2)5日均价连续上涨,表示如下:

a:=ma(close,5);b:=ref(a,1);a>b;

(2)5日均价连续下跌,表示如下:

a:=ma(close,5);b:=ref(a,1);a<b;

跳空高开:open>ref(high,1);(high为最高价)

跳空低开:open<ref(low,1);(low为最低价)

hhv(high,n)=hhv(high,0) and barscount(close)>=n;说明:

n为指标参数,可在参数设定范围内设定参数范围。

hhv(x,n):求n周期内x最高值,n=0则从第一个有效值开始;

barscount(x):将当前位置到n周期前的数值设为1,若x非0,则将当前位置到n周期前的数值设为1。

llv(low,n)=llv(low,0) and barscount(close)>=n;说明:

n为指标参数,可在参数设定范围内设定参数范围。

llv(x,n):求n周期内x最低值,n=0则从第一个有效值开始;

barscount(x):第一个有效数据到当前的天数(例:barscount(close)等于日线数据取得上市以来总交易日数)

count(open>close,n)/n<0.5;说明:

n为指标参数,可在参数设定范围内设定参数范围,同时可自由编辑参数数值(如0.5等,达到确定阴线占全部K线个数的比例)。

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等,达到确定其中比例)。

up:=close>open;count(up,n)=n;说明:

count(x,n):统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。

n为指标参数,可在参数设定范围内设定参数范围。

up:=close<open;count(up,n)=n;说明:

count(x,n):统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。

n为指标参数,可在参数设定范围内设定参数范围。

count(close>ref(close,1),n)=n;说明:

count(x,n):统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。

n为指标参数,可在参数设定范围内设定参数范围。

count(c<ref(c,1),n)=n;说明:

count(x,n):统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。

n为指标参数,可在参数设定范围内设定参数范围。

barssince(c>hhv(if(barscount(c)=1,high,0),0))+1=1;说明:

barscount(x):若x非0,则将当前位置到n周期前的数值设为1。

hhv(x,n):求n周期内x最高值,n=0则从第一个有效值开始。

llv(x,n):求n周期内x最小值,n=0则从第一个有效值开始。

a:=ref(ma(vol,5),1);vol/a>n and vol/capital*100>m;说明:

n为指标参数,代表今日成交量和前一日的5日均量的比值,可在参数设定范围内设定参数范围。

sum(vol,n1)/capital<=n2;说明:

n1为需要统计的阶段时间,n2为缩量比例,可在参数设定范围内设定参数范围。

sum(vol,n1)/capital>=n2;说明:

n1为需要统计的阶段时间,n2为放量比例,可在参数设定范围内设定参数范围。

a:=vol>ref(vol,1);count(a,n)=n;说明:

条件a的含义为成交量较上一交易日放大,n为需要统计的阶段时间,可在参数设定范围内设定参数范围。

a:=vol<ref(vol,1);count(a,n)=n;说明:

条件a的含义为成交量较上一交易日缩小,n为需要统计的阶段时间,可在参数设定范围内设定参数范围。

a:=ma(vol,5);barscount(c)>=n and hhv(a,n)n2*a,n)>n3;说明:

barscount(x)第一个有效数据到当前的天数。barscount(c)等于日线数据取得上市以来总交易日数。

完整含义:n日内五日均量的最大值小于最小值的n1倍,成交量大于等于五日均量的n2倍的情况发生的次数多于n3次。

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日内放大。

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)/capitaln>0.6 and c1;

a1:=close/ref(close,1);a2:=a1>1 and a1ref(vol,1);b2:=b1>1 and b1<2;c1:=ma(vol,n)/capitaln>0.6 and c1;说明:

公式分为股价小幅上扬和成交量小幅上扬两个部分,在指标编写时需留意其结构。

vol>ref(hhv(vol,n),1*m;说明:

当前成交量高于n个周期中最大成交量的m倍。

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%的设定。

ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)100) and c>=ref(hhv(h,n),1) and barscount(c)>n;说明:

前n日在上下1%的幅度内整理:ref(((hhv(h,n)-llv(l,n))/llv(l,n))/llv(l,n)),1)<=(n1/100);

今日突破:c>=ref(hhv(h,n),1)。

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年8月16日为1010816,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。

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年8月16日为1010816,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。

count((c>o and indexc>indexo) or(c<o and indexcn>m/100;说明:

含义为n周期中与大盘走势相同(同收阴线或同收阳线)的例超过m%。

此处的o为开盘价open的首写字母,不是数字零。

a:=(c-ref(o,n))/ref(o,n);b:=(indexc-ref(indexo,n))/ref(indexo,n);a>b and a/b>=m;说明:

n日内个股涨幅大于等于大盘涨幅的m倍。

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表示。

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表示。

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)open>1.05 and close>ref(close,2);说明:

常出现在下降趋势中,通常为见底信号,后市看涨。

早晨之星由三根K线组成,其顺序是:

(1)第一天在下跌过程中已形成一根阴线:

ref(close,2)/ref(open,2<0.95

(2)第二天跳空下跌,K线实体较短,构成星的主体部分,阴线或阳线均可,有无上下影线不重要。

ref(open,1)<ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.03

(3)第三根K线必须是阳线,且其长度至少要升至第一根阴线实体(如果能够“反包”第一根阴线则更为强势)

close/open>1.05 and close>ref(close,2)

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<ref(close,2);说明:

常出现在上升趋势中,通常为见顶信号,后市看跌。

幕星同样由三根K线组成,其形态和晨星正好相反:

(1)第一天股价继续上升,拉出一根阳线:

ref(close,2)/ref(open,2)>1.03

(2)第二天波动较小,形成一根小阳线或小阴线,构成星的主体部分:

ref(open,1)>ref(close,2) and abs(ref(open,1)-ref(close,1)/ref(close,1)<0.02

(3)第三天形成一根反包第二天并延伸至第一天阳线实体:

close/open<0.97 and close<ref(close,2)

a1:=abs(close-open)/open<0.015;a2:=count(a,m)=m;a3:=ref(o,m)ref(c,m+1)>1+n/100;a2 and a3;说明:

一根实体超过n的长阳,后面跟m根K线实体不超过1.5%的K线。

open>close and open/ref(c,1)>=1+m/100 and close/open<=1-n/100;说明:

跳空高开m%,当日股价较开盘价跌幅大于n。

此信号出现,通常意味着股价已形成短期头部,应注意风险。

(1)股价经过一段持续攀升之后,某一日突然跳高开盘:

(2)之后股价一路下行,尾市以接近最低点收市:

open<close and open/ref(c,1)100 and close/open>=1+n/100;说明:

跳空低开m%,当日股价较开盘价涨幅大于n。

分别是向下跳空缺口和向上跳空缺口。

a:=ma(c,5);b:=ma(c,10);cross(a,b);说明:

前二句是5、10日均线,cross是交叉函数,cross(a,b)表示5日均线与10日均线金叉。

a:=ma(c,5);b:=ma(c,10);cross(b,a);说明:

前二句是5、10日均线,cross是交叉函数,cross(b,a)表示5日均线与10日均线死叉。

ma1:=ma(c,5);ma2:=ma(c,10),ma3:=ma(c,20);p1:=abs(ma1-ma2)+abs(ma2-ma3);p1/c100 and ma1>ref(ma1,1) and ma2>ref(ma2,1);说明:

前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率m%(一般该比率为2%以下),同时前两根均线今日比昨日上翘。