[转载]证券笔记--通达信公式编程笔记
(2015-04-30 20:34:18)
标签:
转载 |
分类: 公式仓库 |
0.0 前言
刚刚接触通达信公式编程,我刚开始,从通达信公式教程中,学习一些公式便编程的内容,以便将来扩展.
1.1 通达信公式编程的用途
我们应用通达信公式编程是为了做以下几个方面的事情, (1) 指标分析 (2)条件选股
1.1.1 条件选股
我们使用程序,从数以万计的股票中选择符合我们规则的股票,筛选出来推荐投资者参考,可以大大简化我们的人工劳动力,节省大量的工作时间。
具体的术语和函数的宏定义
最高价:HIGH
收盘价:
|
HIGH |
最高价 |
|
LOW |
最低价 |
|
OPEN |
开盘价 |
|
VOL |
成交量 |
|
AMO |
成交额 |
|
CROSS(X,Y) |
X 向上穿过Y |
|
REF(X,M) |
前M天的X的值 |
|
AND |
并列操作符 |
|
MA |
计算均价的函数 |
|
|
|
REF(X,M)
例如:
REF(Close,5)表示5天前的收盘;
REF(Vol,10)表示10天前的成交量;
计算前X天的收盘价的均值
MA1=MA(CLOSE,5);
MA2=MA(CLOSE,10);
MA3=MA(CLOSE,50);
1.2 如何编写BIAS指标
首先,什么是乖离率?
以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。
练习
当日股价与10日均线的乖离率=(当日股价-10日均价)/10日均价*100;
当日股价与20日均线的乖离率=(当日股价-20日均价)/20日均价*100;
当日股价与30日均线的乖离率=(当日股价-30日均价)/30日均价*100;
乖离率的公式编写
BIAS1:(CLOSE-MA(CLOSE,10))/MA(CLOSE,10)*100;
BIAS2:(CLOSE-MA(CLOSE,20))/MA(CLOSE,20)*100;
BIAS3:(CLOSE-MA(CLOSE,30))/MA(CLOSE,30)*100;
如何用KD指标选股
例一:
“KDJ,D”<20;
D<20;
例二:
“KD指标发生了黄金交叉,并且D<20”
T1:=“KDJ,K”;--引用K线;
T2:=“KDJ,D”;--引用D线;
条件: AND在中就表示“并且”,将两个条件并列起来
CROSS(T1,T2)AND
T2<20;
如何编写放量、缩量、上涨、下跌、收阳、收阴
1、今日比昨日的成交量放大了1倍:
VOL/REF(VOL,1)>2;
2、今日的五日均量比前五天的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;
3、今天的成交量达到了整个流通盘的10%以上:
VOL/CAPITAL>10/100;
(注意,10%的表达式是10/100,或者0.1)
缩量:
1、今日比昨日的成交量缩小了1倍:
VOL/REF(VOL,1)<0.5;
2、今日的五日均量比前五天的五日均量缩小了一半:
AA:=MA(VOL,1)<0.5;
BB:=REF(AA,5);
AA/BB<0.5;
3、今天的成交量不足整个流通盘的0.5%:
VOL/CAPITAL<0.5/100;
上涨:
1、今日涨幅达到了7%以上:
CLOSE/REF(CLOSE,1)>1.07;
2、十日均价继续上涨:
AA:=MA(CLOSE,10);
BB:=REF(AA,1);
AA>BB;
收阳、收阴:
1、当天收阳:CLOSE>OPEN;
2、当天收阴:CLOSE<OPEN;
高开、低开:
1、当天股价高开,开盘高于昨日收盘:OPEN>REF(CLOSE,1);
2、当天股价低开:OPEN<REF(CLOSE,1);
跳空:
跳空亦有向上和向下两种:
1. 当日开盘在昨日最高之上,即为向上跳空:OPEN>REF(HIGH,1);
反之,
2. 开盘小于昨日的最高价,为向下跳空:POEN<REF(LOW,1);
事实上,我们在编公式的过程,就是将这些条件有机地结合起来作为我们判断的条件。举一个很简单的例子,如果是K线形态呈现出放量上攻的态势,那么如何编写这个公式呢?高开高走又应该如何编写呢?
我们把放量和上涨的两个条件组合在一起,让某一天的形态特征同时满足两个条件就达到目的;同样地将高开的高走两个条件结合在一起,也就找到了我们所需的条件。
放量上攻之一,以上面所举例组合:
AA:=VOL/REF(VOL,1)>2;
BB:=CLOSE/REF(CLOSE,1)>1.07;
AA AND BB;
高开高走:
AA:=OPEN>REF(CLOSE,1);
BB:=CLOSE>OPEN;
AA AND BB;
OK!本课到此结束,留下一个问题,看看您有没有真正的理解,
向上跳空之后两天内并未回补如何编写呢?
AA: REF(CLOSE, 1)>REF(HIGH, 2);
BB: REF(LOW , 1)>REF(HIGH, 2);
CC: LOW>REF(HIGH, 1);
AA AND BB AND CC;
更简单的方法,下面的一句话可以的上面的四句:
COUNT(LOW>REF(HIGH,2),2)=2;
补充函数说明:
COUNT
统计
涨停板攻击
其实就一句话:今日收盘除以昨日收盘的值大于1.0999
X:=CLOSE/REF(CLOSE,1)>1.0999;
第十一课 多头排列--良好的上升趋势
5/10/30日均线依次从上而下的排列,这种情况维持一段时间,假设我们这里定为4天以上:
5/10/30日均线依次从上而下的排列:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND
BB>CC;
以上情况维持一段时间,假设我们这里定为4天以上:
COUNT(T1,4)=4;
COUNT(X,N)表示统计在N天内满足条件X的有几天。
最终的结果就是如下所示:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND
BB>CC;
COUNT(T1,4
)=4
编写完毕,我们在上面的例子当中,举的是最简单的一个,其实您在编写的过程当中,还可以加上一些比较准确地描述,以取得更好的效果,例如同时三条均线向上发散等,当然还有您自己的心得。
第十二课 逃顶K线形态之--黄昏之星
一、概念学习
当市场出现一条大阳线后,通常会产生跳空高开的情况,有时便会出现十字星或类似十字星的小阴线(小阳线)。另一种相反的情况是出现在一条大阴线后,在这两种情况下形成的类似十字星的K线都被称为“星型线”。
当该形态出现在一段上升行情的当中,就很容易形成所谓的经典K线形态--黄昏之星。
二、编制过程
通过我们前面的学习,其实已经可以比较轻松的编制这个条件了--前人已经清晰地把这个形态的具体特征描述出来,剩下的工作就是把这些特征用数字表示--这就是前面提到的量化的过程!
该图组合一共由三根K线合成,我们按照以下的步骤一步一步地一边寻找每日K线的特征,一边进行编写:
为了结构简单起见,首先将二天的高开低收用中间表达式表达出来,因为我们在后面的编写过程中会分别使用到这些数据。
1、今日K线的:开-a1,
a1:=open;
收-a2, a2:=close;
高-a3,
a3:=high;
2、昨天K线的:开-b1,
b1:=ref(open,1);
收-b2, b2:=ref(close,1);
高-b3, b3:=ref(high,1);
低-b4, b4:=ref(low,1);
3、前天K线的:开-c1,
c1:=ref(open,2);
收-c2,
c2:=ref(close,2);
高-c3,
c3:=ref(high,2);
低-c4,
c4:=ref(low,2);
4、我们将会分别描述出三天的K线形态,然后汇总,首先我们观察今日K线的特征,今天是一根低开低走的大阴线,我们给它一些数字上的定义:
a、今日开盘价小于昨日收盘价;
aa:=a1<b2 and
b、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>1.04;
5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:
a、昨日跳开,高于前天的收盘:
bb:=b1>c3
b、昨日收盘同样在缺口之上:
and
b2>c3
c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于0.01:and
abs(b1-b2)/b1<0.01
d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:and
b3>b1 and
b3>b2 and
b4<b1 and
b4<b2
e、当日的最高价为20天以来的最高价: and
b3=hhv(high,20);
6、前日K线的特征:股价大幅上扬,幅度较前一日收盘高出4%并且收盘大于开盘:cc:=c2/ref(close,3)>1.04 and
c2>c1;
综合选股条件:最后我们将三天的K线特征会合起来,合成一个最后的条件就是由图所示内容:
aa and bb and
cc
三、选股的结果
我们把上面的条件按照前面章节所讲的方法带入到公式选股条件当中去检验。
按下图作为标准
四、总结
其实到底是难还是不难呢?其实不难,只是你要细心一点把一个一个的条件组合起来,有机地结合起来!我们的许多形态就是这样由一个一个的K线组合起来的结果!
1、我们测试了将近4年的时间,一共找到了几个这样的信号,您满意吗?--应该说,不满意!可是原因在哪里呢?--我们的条件过于苛刻,因为要同时满足的条件太多,您可以尝试更改一些条件以获得更多的信号!
2、大家还会发现有的信号出现的位置不好,例如西飞国际,因为我们其中有一个条件不是很好,不过您可以做到将它去掉--告诉我您可以做到,算是课后作业吧,我看相对高位dd:=b3=hhv(high,20),怎么看都不舒服,您有什么办法?
突破底部横盘整理创新高!
我们寻找各种特征,并用数字表示出来:“长期”设定为150天;“横盘”设定股价在150日均线上下15%波动;放量;并且股价创下150天以来的历史新高!
1、首先用公式描述放量
a、将会使用5日均量来进行比较,成交量比昨日成交量放大两倍;
b、V1是五日均量,REF(V1,1)就是昨日的均量;
V1:=MA(VOL,5); V2:=VOL/REF(V1,1)>2;
2、长期横盘
a、PZ1是当天150日均价: PZ1:=MA(CLOSE,M);
b、PZ2是150日的最高价; PZ2:=HHV(HIGH,M);
c、PZ3是150日的最低价; PZ3:=LLV(LOW,M);
d、PZ4是150日的最高价和150日均价的距离的百分比,PZ5刚好相反是最低价和均价的差的百分比;
PZ4:=(PZ2-PZ1)/PZ1; PZ5:=(PZ1-PZ3)/PZ1;
e、设为股价在150日均线上下15%波动,也就是PZ4、PZ5都小于0.15;
PZ:=REF(PZ4,1)<0.5 AND
REF(PZ5,1)<0.15;
3、今天创下历史新高,也就是今天的最高价是150天内的最高价! TP1:HHV(HIGH,M); TP:=HIGH=TP1;
综合三个条件的最后的逻辑判断式就是我们的最后结论!
V2 AND PZ AND
TP(参数M=150天)
市盈率相关的公式
AA:=C/FINANCE(33)>0 AND
C/FINANCE(33)<40;{0<市盈率<40}
BB:=FINANCE(20)>5000 AND
FINANCE(21)/FINANCE(20)>0.1;{主营业务利润率>0.1}
CC:=FINANCE(34)>0 AND
CLOSE/FINANCE(34)<5;{市净率}
DD:=FINANCE(29)>0 AND
FINANCE(30)/FINANCE(19)>0.08;{净资产收益率大于8%}
EE:=(FINANCE(1)*C)/FINANCE(20)>0 AND
(FINANCE(1)*C)/FINANCE(20)<1;
{市销率取值小于1}AA AND BB AND CC AND DD
AND EE;

加载中…