加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

指标公式教学(三)

(2013-05-07 13:04:28)
标签:

错误

第一次

不知道

收盘价

最大值

股票

分类: 技术探讨

 

 (主要为技术指标,各软件通用)

 

七.【参数栏的写法】  八.【常用平均线的定义及算法】  九.【有过滤性质的函数或用法】

七. 【参数栏的写法】
有些公式或函数,为了让使用者,可以按照自己的意思改变(如日期.天数等),而刻意使用了参数,
这给了使用者大大的方便,不必再到公式里改数字,直接调整参数即可
那如果我们要设计公式或接到公式源码的时候,要如何在参数表写公式呢?
首先我们要知道参数表有[参数名].[缺省](预设).[最小]. [最大].[步数]五大元素,分别介绍如下:
例:设公式为
{N:3,1,100,1    M:6,0,10,1}
K1:CLOSE N;
K2:VOL M;  {随便举例而已,不必深究公式意义 ^__^}

1. 参数名----写公式者所定义的参数名称,例句为N 及 M
2. 缺  省----刚开始时该参数所预设的值,例句为3及6
3. 最  小--- 写公式者定义该参数最小值可为多少,例句为1及0
4. 最  大--- 写公式者定义该参数最大值可为多少,例句为100及10
5. 步  数----步数指的是使用者调整参数时,每点一次跳多少的意思,(若有4个数值,最后1个一定是”步数”)
1表示每点一次跳1,例句为1及1

http://www.chcj.net/images/default/attachimg.gif http://www.chcj.net/attachments/month_1003/20100311_114e8af213932eb263a6zSgywZGQGNZd.png

下载 (4 KB)
2010-3-11 01:31



注意:
7.1 [缺省]一定要大于等于[最小],小于等于[最大],所以看前3个数,不大不小的值即为预设值
7.2 每个软件顺序并不一定一样,[缺省]有的软件会在[最大]的后面,
   同时,有的软件没有[步数]栏,就不用填{此时软件会预设步数为1}
7.3 若公式只写{N=3},则除参数名及缺省外其余可自填,但须注意[最小]须比3小, [最大]须比3大.


八. 【常用平均线的定义及算法】
MA是最常用平均线,专业术语叫简单移动平均,采用算数平均,
也就是说看要几天的平均值,我们就把这几天的值相加再除以几天,这样就得出平均值,
但在这里,我们必须先告诉电脑,我们要算哪一个数据的值?是收盘.开盘.高价.低价.成交量或其他?
所以这个MA函数须有两个参数,分别是数据名称及天数,这样电脑就可以据此自动算出我们想要的值.
完整的MA函数写为MA(X,N) (X代表数据名称,N代表天数)   (N若要可调整,可在上面加入参数栏)

例:
MA(C,5) 代表最近5天的收盘总合/5 (即收盘价的5日平均线)     
MA(V,10) 代表最近10天的成交量总合/10 (即成交量的10日平均线)
MA(C,M) {M 3,1,100} 代表最近M天的收盘总合/M (即收盘价的M日平均线)

注:一般若未特别注明,指的皆是收盘价的平均线.

九【常用的有过滤性质的函数或用法】

9.1 条件选股
条件选股的意义,就是要选出输出1
条件选股其实说穿了,就一句话:单一输出的条件式,
也就是说,不管公式有多长,若要做为条件选股的话就只能有一个式子输出,且须为条件式,
此时,当条件成立时,电脑会输出1,然后就会被选出
如:
K1:=MA(C,5);
K2:=MA(C,10);
K1>K2;  


K1:=MA(C,5);
K2:=MA(C,10);
K3:=MA(C,15);
K1>K2;
K2>K3;

这样有2个输出值,就不能成为选股公式
须去其一

9.2. CROSS(A,B)
CROSS函数本义为由[下]穿[上](线不一定向上), CROSS(A,B)表示A穿过B而上,
反之,若要表示A下穿B,则可用B上穿A表示,CROSS(B,A) 表示B穿过A而上,(即A下穿B)

重要技巧:
我们可以利用CROSS的穿越特性,来过滤条件式,
挑选出连续符合条件信号中的第一次符合条件,接下来的不选.
因为若符合条件时,电脑会输出1,否则会输出0,
所以第一次符合条件时,其值会由前一K线的0,变成该K线的1,
因此要选出第一次符合条件,只要我们设该值穿越0.5即可,(不一定要用0.5,0.1~0.9皆可),
如:选出每一次的”第一次[收盘]大于[开盘]”,我们就可写成
CROSS(CLOSE>OPEN,0.5);

CROSS函数是过虑掉第一次符合条件后的连续信号
但假如我们只要几日内不显示,则须要应用到FILTER函数
,
9.3. FILTER(条件,K线数)
FILTER本义为若符合条件输出1后,在其后的指定K线数内,不管符合不符合条件,均设为0
如:若在[日线]  FILTER(CLOSE>OPEN,5);
表示符合[收盘]大于[开盘]{收红},输出1(显示)后,其后的5天不管有没有再收红均输出0 (不显示).

9.4. IF(条件,A,B)
IF我们直接翻译成若是比较明白, IF(条件,A,B) 直接翻译就成若符合条件则输出A,否则输出B
例如:
IF(CLOSE>OPEN,2,3)  若收红则输出2,否则输出3.

小技巧:
IF可以连环套,至于可套几层,则每个软件均不同
例如:
IF(CLOSE>OPEN,2, IF(CLOSE>REF(CLOSE),5,0));  
表示若收红则输出2,其余若收盘大于昨收,则输出5,再其余的则输出0,
不过连环套须特别注意括号数目,否则会通不过

IF连环套的做法:
IF虽然可以做成连环套,但很容易错误,因此我特别再强调说明IF连环套的做法,
例如:
若条件1>条件2,则输出5,其余若条件3>条件4,则输出10,其余若条件5>条件6,则输出20,否则输出0,
一开始,接到这个题目,会无所适从,不过,只要大家按我的方法去做,人人都可以套得很正确,

步骤1. 写出每个IF的完整语句,有几个就写出几个,此句有3个IF要写,分别为:
a.        若条件1>条件2,则输出5,其余?----- IF(条件1>条件2,5,X)  {因为”其余”的部分,不知道要多少,用X代替}
b.        若条件3>条件4,则输出10,其余?--- IF(条件3>条件4,10,X)  
c.        条件5>条件6,则输出20,否则输出0 ----- IF(条件5>条件6,20,0)  {最后一句IF,知道其余部分输出0,故填上0}

步骤2. 整合所有IF句子
这里有个小技巧,就是不管有几个句子,永远由最后一句往前套,套的时候,将后一句套入前一句的x处,
讲简单一点,就是把前一句的X,置换成下一句,例如此例:
1.        先将c套入b,就是将b句的X值,以b句代替,结果得出
IF(条件3>条件4,10,C句) =>
IF(条件3>条件4,10, IF(条件5>条件6,20,0))
2.        套好b.c后,再将此结果,套至a,亦即将a中的X以上式代替,
IF(条件1>条件2,5,上式) =>
IF(条件1>条件2,5,IF(条件3>条件4,10, IF(条件5>条件6,20,0)));

注意:最后不要忘记在最后加”;”号

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有