大智慧诊断指标的编写

来源:百度文库 编辑:神马文学网 时间:2024/04/29 21:08:32
2009-08-16 16:57
大智慧诊断指标的编写。
大智慧的诊断指标形同于飞狐、分析家的解盘指标,都是通过文字来提供当前盘面个股的趋势、均线、基本面、K线形态等技术指标的演化状态的,这对盘面分析很有帮助。
诊断指标是通过引用技术指标来完成文字诊断的。此外,还要用到文字诊断字符串输出函数,下面分别介绍所用到的函数:
1、IFS   字符串IF函数   用法:IFS(A>B,'返回A','返回B');
该函数返回一个字符串,上例表示:
如果A大于B,则返回'返回A'串,否则返回'返回B'串;
2、STR   数据到字符串转换函数 用法:STR(X,N);
该函数返回一个字符串.上例子表示:范围精度为N的X的字符串;
诊断指标分两部分组成,前一部分是指标公式,后一部分是文字诊断。下面我们用实例来说明指标的编制:
{基本面 参数 n1:1 999 50 n2:1 999 10 p1:1 999 20 p2:1 999 50 s1:1,99999,40000;s2:1,99999,10000}
m1:=FINANCE(33);{每股收益}
m2:=FINANCE(34);{每股净资产}
m3:=CAPITAL/1000000;{流通盘}
m4:=FINANCE(34);{净资产}
m5:=FINANCE(18);{公积金}
m6:=FINANCE(32);{未分配利润}
c1:=c/ref(ema(c,30),30);
c2:=indexc/ref(ema(indexc,30),30);
l1:=c1/c2*10-10;
c3:=c/ma(c,60);
c4:=indexc/ma(indexc,60);
l2:=c3/c4*10-10;
c5:=c/ma(c,120);
c6:=indexc/ma(indexc,120);
l3:=c5/c6*10-10;
L4:=MA(L1+L2+L3,5);
DIFF:="MACD.DIFF"(12,26,9);
DEA:="MACD.DEA"(12,26,9);
MACD:="MACD.MACD"(12,26,9);
K:="KD.K"(17,4,4);
D:="KD.D"(17,4,4);
{以上部分是公式,不能设有返回值,也就是全用":="赋值符。以下部分是引用上面的公式所做的文字诊断}
'【理想解盘】'+
'该股为'+
IFS(FINANCE(33)>=N1/100,'绩优、','')+IFS(FINANCE(33)=N2/100,'中等业绩、','')+IFS(FINANCE(33)=0,'绩差、','')+IFS(FINANCE(33)<0,'亏损、','')+
IFS(DYNAINFO(39)<=P1 AND DYNAINFO(39)>0,'低市盈率、','')+IFS(DYNAINFO(39)>P1 AND DYNAINFO(39)<=P2,'中等市盈率、','')+IFS(DYNAINFO(39)>P2,'高市盈率、','')+IFS(FINANCE(7)>=S1,'大盘股。','')+IFS(FINANCE(7)=S2,'中盘股。','')+
IFS(FINANCE(7){''之间的汉字作为字符串输出会显示在评价窗口中,str函数把数字转化为字符串输出。数据到字符串转换函数。
STR 用法:STR(X,N);该函数返回一个字符串.此例子表示:范围精度为N的X的字符串;}
{'    '+}
IFS(REF(L4,1)>0 AND REF(L4,1)>REF(L4,2),'该股中长期走势强于大盘,且近期继续走强。','')+
IFS(REF(L4,1)>0 AND REF(L4,1)<=REF(L4,2),'该股中长期走势强于大盘,但近期有所走弱。','')+
IFS(REF(L4,1)<=0 AND REF(L4,1)>REF(L4,2),'该股中长期走势弱于大盘,但近期有所转强。','')+
IFS(REF(L4,1)<=0 AND REF(L4,1)<=REF(L4,2),'该股中长期走势弱于大盘,且近期继续走弱。','')+
IFS(DIFF>=0,'MACD指标显示该股处于多头行情中','MACD指标显示该股处于空头行情中')+
IFS(DIFF>=0 AND MACD>=0 AND MACD>REF(MACD,1),'且有加速上涨趋势。','')+
IFS(DIFF>=0 AND MACD>=0 AND MACD<=REF(MACD,1),'但上涨趋势有所减缓,短线投资者可逢高卖出,但当回落至均线或其他支撑位时应及时回补。','')+
IFS(DIFF>=0 AND MACD<0 AND MACD>=REF(MACD,1),',目前正处于回落整理阶段,但整理即将结束,可在均线或其他支撑位附近逢低买入,但当整理完成后选择再次向下突破时应注意及时止损。','')+
IFS(DIFF>=0 AND MACD<0 AND MACDIFS(DIFF<0 AND MACD<=0 AND MACDIFS(DIFF<0 AND MACD<=0 AND MACD>=REF(MACD,1),'但下跌趋势有所减缓,可在W&R指标大于90时逢低买入,但有可能再次加速下跌,注意及时止损。','')+
IFS(DIFF<0 AND MACD>0 AND MACD>REF(MACD,1),',目前正处于反弹阶段,投资者应保持谨慎。','')+
IFS(DIFF<0 AND MACD>0 AND MACDIFS(CROSS(DIFF,0),'该股今日从空头市场转换为多头行情。','')+
IFS(CROSS(0,DIFF),'该股今日从多头市场转换为空头行情。','')+
IFS(K>80 AND CROSS(D,K)=0,'KD指标提示该股已经处于超买状态,如果KD指标死叉应及时卖出。','')+
IFS(K<20 AND CROSS(K,D)=0,'KD指标提示该股已经处于超卖状态,如果KD指标金叉应及时买入。','')+
IFS(CROSS(K,D) AND LLV(K,3)<20,'KD低位金叉,建议买入。','')+
IFS(CROSS(D,K) AND HHV(K,3)>80,'KD高位死叉,建议卖出。','')
{每条语句以“+”符号结束,指标最后一句没有“+”的符号。}
注意:引用技术指标要准确无误以外,还要注意格式,否则不能通过测试。为了让朋友更明白一些,再举一例:
{KDJ解盘}
K:="KD.K"(17,4,4);
D:="KD.D"(17,4,4);
'【理想解盘】'+
IFS(K>80 AND CROSS(D,K)=0,'KD指标提示该股已经处于超买状态,如果KD指标死叉应及时卖出。','')+
IFS(K<20 AND CROSS(K,D)=0,'KD指标提示该股已经处于超卖状态,如果KD指标金叉应及时买入。','')+
IFS(CROSS(K,D) AND LLV(K,3)<20,'KD低位金叉,建议买入。','')+
IFS(CROSS(D,K) AND HHV(K,3)>80,'KD高位死叉,建议卖出。','')
朋友们可以照猫画虎自编一个,只要有一个成功了,你也就掌握了方法。