分享

如何编写选股公式

 荷叶3638 2022-03-01

虽然题材与逻辑一直在股市中起主导作用,但是选股公式可以从形态角度优化我们的选股逻辑,为我们的交易与复盘提供便利。

下面就为大家简单介绍一下如何编写一些基础的选股公式。

表 述 方 式

首先了解一个词:“函数”


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


函数就是这种语言的单词。

K线的组成:

最高价:HIGH  

收盘价:CLOSE  

最低价:LOW  

开盘价:OPEN  

成交量:VOL 

成交额:AMO 


两条均线交叉:CROSS

假如两条均线一条名叫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”

A AND B就表示条件A和条件B

公式编写时常用的通式

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


1、放量:


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

VOL/REF(VOL,1)>2;

(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表示流通盘)

2、缩量:


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

vol/ref(vol,1)<0.5;

(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%:

vol/capital<0.05;

二、上涨、下跌


1、上涨:


(1)今日涨幅超过5%以上:

close/ref(close,1)>1.05;

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

a:=ma(close,5);

b:=ref(a,1);

a>b;

2、下跌:


(1)今天的跌幅达到5%以上:

close/ref(close,1)<0.95;

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

a:=ma(close,5);

b:=ref(a,1);

a<>< p=''><>

3、K线的描述:

阳线:close>open;

阴线:close<>< p=''><>

高开:open>ref(close,1);

低开:open<>< p=''><>

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

跳空低开:open<>

三、走势特征选股公式的编写

1、n日内创新高

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。

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<>< p=''><>

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<>< p=''><>

说明:

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为放量比例,可在参数设定范围内设定参数范围。

17、持续放量

a:=vol>ref(vol,1);

count(a,n)=n;

说明:

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

18、持续缩量

a:=vol<>< p=''><>

count(a,n)=n;

说明:

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

19、间隔放量

a:=ma(vol,5);

barscount(c)>=n and hhv(a,n)n2*a,n)>n3;

说明:

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

完整含义: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日在上下1%的幅度内整理: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年8月16日为1010816,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年8月16日为1010816,indexc函数表示同期大盘的收盘价,该函数对分笔成交分析周期无效。

27、大盘同步

count((c>o and indexc>indexo) or (cm/100;

说明:

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

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多