??
??
?? 源码的引入和修改
??
??
?? 一)在各种股软中的引入方法
??
?? 股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。下面再分别简要说明一下:
?? 一、大智慧
??
?? 1. 把要导入的公式(源码)考下来,方法是用左键先把源码变蓝,之后点右键,点复制;
?? 2. 进入大智慧------>特色功能------>自编指标------>常用------>技术指标------>新建,在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确认------>退出。
?? 3、在大智慧的底部显示栏中点击公式名称即可看到刚刚导入的公式。
??
?? 二、飞狐
?? 1、复制源码,方法同上。
?? 2、进入主界面,即K线图模式。
?? 用鼠标靠近左侧单击,出现管理面板------>双击技术指标------>用鼠标右键单击任何一个公式组的名称,比如“其它”------>点新建公式------>在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确定------>退出。
?? 3、找到新建的公式,双击即可使用。
??
?? 三、大智慧2
??
?? 特别提示:必须在联网的状态下才可操作
?? 有两种方式可以进入公式编辑页面。一是将鼠标靠近上部,点击《公式》―――《公式管理》―――双击《技术指标》―――单击指标组―――《新建》。
?? 另一种方式是,将鼠标靠近左边,在出现的对话框中双击《技术指标》―――右键单击选定的公式组―――《新建》。
??
?? 三、分析家
?? 复制公式原码到分析家界面―――点击上面的《公式》―――点击《公式管理》―――按公式归类把其点击变色―――点击《新建》。
??
?? 四、通达信
?? 将鼠标靠近左边,在出现的对话图标中选F(x)即《公式管理器》图标―――双击《技术指标公式》―――单击选定的指标组―――《新建》。
??
?? 五、同花顺
?? 将鼠标靠近上部―――点击《公式》图标,进入后的操作与其他股软基本一样。
?? 特别提示:必须在《描述》栏中加上文字或字母之类,否则无法通过。
??
?? (二)公式引入时的注意事项和说明
??
?? 一、参数问题
?? 复制的源码中有参数的,例如:{N??1??100??15},有三种解决办法:
?? 1、手工将参数分别填加到参数表中。
?? 2、采取变通方式进行改动。{N??1??100??15}改动后为:N:=15;
?? 特别提示:注意用参数的大小处于中间的值来替换。这个中间值也是缺省值。另外:N后面必须加上等号,它的意思是不显示。
?? 3、对于INPUT.:N(5), M(10,1,100,2);这类有申明参数函数的,飞狐,大智慧2和分析家可不用理它,系统会自动将参数填加到参数表中。这里的M(10,1,100,2)里面的2是步长,手工填加时可删去。
??
?? 二、粘贴源码时常见的问题和注意事项
?? 1、未定义的标识符
?? 多数是由参数引起的。还有就是有些源码中附带了公式名称或说明,这些公式源码以外的内容,如:名称,说明以及参数等等,凡在{ }以外的,均要删除,或者用{ }将其括上。
?? 2、条件选股类的公式,应加入到和“技术指标”并列的“条件选股”组中。
?? 3、是主图公式的,需在公式编辑区中点“主图叠加”。
?? 4、通达信的输出一般都限定在16条。多出的解决办法是:将没有必要输出的语句后面加上“等号”,或者删去。例:
?? 买点: STICKLINE(Var6>REF(Var6,1) AND Var6>0 ,Var6,Var8,10,0);
?? DRAWICON(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-140,4);
?? DRAWTEXT(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-40,'建议关注 '),COLORffffff;
?? 这三项分别是划柱线、显示小箭头和显示文字。留一个就行了。
?? 加“等号”的例子:
?? Var2:MA(CLOSE,10);
?? Var3:MA(CLOSE,20);
?? Var4:MA(CLOSE,30);
?? 加上后:
?? Var2:MA(CLOSE,10);
?? Var3:=MA(CLOSE,20);
?? Var4:MA(CLOSE,30);
?? 意思是保留了10日均线和30日均线的输出,将20日的隐去。
?? 特别提示:不论什么股软,当遇到线条过多过乱时,都可以采用这种办法使图形简练清晰。
?? 5、颜色符号及逗号问题
?? 例:仓:EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),,colormagenta;
?? 此句可能存在两个问题,一是后面有两个“逗号”,对于飞狐等通过,而对于大智慧2和分析家等,则是问题,必须删去一个。反之,一个没有也不行。二是后面的colormagenta,大智慧是不认识的。换成通用的:colorf00ff0就行了。
?? 6、是否输出与颜色标识问题
?? 例:仓:=EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),colormagenta,LINETHICK0;
?? 这个语句的特点是在前面有等号“ = ”,意思是不输出,但后面还有颜色修饰符和指标线粗细函数。有些股软对此是放行的,即:不输出。而大智慧2和分析家却不认,把它看成相互矛盾的病句。解决办法:将修饰符全部删去,或将前面的 = 号去掉,让语句输出。
??
??
?? 各种形态的描述
??
??
?? 懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。下面我们共同认识一下公式的基本语句。这些基本语句,是编写公式和整理选股公式信号的基础,大家要熟知。
??
?? 一、K线的基本形态
??
?? 1、当天收阳:CLOSE>OPEN;
?? 2、当天收阴:CLOSE<OPEN;
?? 3、当天股价高开,言下之意开盘高于昨日收盘:OPEN>REF(CLOSE,1);
?? 4、当天股价低开:OPEN<REF(CLOSE,1);
?? 5、跳空高开:OPEN>REF(HIGH,1);当日开盘在昨日最高价之上
?? 6、跳空低开:POEN<REF(LOW,1);
?? 7、长阳:C/O>1.03 或者 (C-O)/O*100>5 或者 (C-O)/O>0.05 意思是收盘价比开盘价上涨5%以上。当然,用7%以上也可。
?? 8、长阴:C/O
<0.94; 注意:同一语句可有多种表述,此为其一。
?? 9、高开大阴:O/REF(C,1)>1.04??AND C/O
<1.94; 今天开盘比昨天收盘高出4%和收盘价较开盘下降6%。低开大阳与此正好相反。
?? 10、标准十字星:CLOSE=OPEN AND HIGH<>LOW
?? 更多见的是近似十字星。例:ABS(C-O)<0.02 AND H-C>0.03 AND C-L>0.03; 该语句用上了一个函数:ABS,意思是求绝对值。这样,该近似十字星即可能是阳星也可能是阴星。
?? 再认识两个函数:MAX(A,B) 求A和B中的最大值。
?? MIN(A,B) 求A和B中的较小值
?? 有了这两个函数,近似十字星还可这样表述:ABS(C-O)<0.02 AND H> MAX(C,O) AND L
< MIN(C,O);
?? 另外,该公式还可以用比例数编写。
?? 11、长下影线:也有收阴收阳之分。以阳线长下影线为例:C>O AND (O-L)>(C-O);此公式只表达了下影线比实体线长,并没有表达长度比例和有无上影线。
??
?? 二、条件选股的基本形态
??
?? 1、阶段最高价:HHV(H,N) 意思是取得N天之内的最高价。新函数:HHV,最高值。
?? 2、阶段最低价:LLV(L,N)意思是取得N天之内的最低价。新函数:LLV,最低值。
?? 3、阶段涨幅 (C-REF(C,N))/REF(C,N)*100 N日收盘价的差值的百分比。
?? 4、再创新高 HIGH=HHV(HIGH,N) 是指今日最高价是N日以来的最高价.。 再创新低:略。
?? 5、放量:
?? (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
?? 6、缩量:
?? (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;
?? 7、放量上攻 是指价格上扬,成交量剧增
?? C/REF(C,5)>1.2 AND VOL>MA(VOL,5)*3; 表示5日上涨20%和成交量超过5日均量的3倍。
?? 8、持续放量:COUNT(V>REF(V,1),N)=N; 实际上这种情况不是很多。如果用3日均量,或5日均量则非常普遍。即:COUNT(MA(V,3)>REF(MA(V,3),1),N)=N;
?? 9、阶段放量
?? N(1,100,10)??M(1,100,5)
?? SUM(VOL,N1)/CAPITAL>=(N/100)??M日内换手率大于百分之N
?? 10、温和放量上攻
?? M(2,10,3) N(1,40,10)
?? UP:=MAX(C,O)>REF(MAX(C,O),1);
?? A:=VOL>REF(VOL,1);
?? COUNT(IF((UP AND A),1,0),N)=N AND C>O
?? AND (C-REF(MAX(C,OPEN),1))/REF(MAX(O,C),1)
<=(3 /100)
?? AND VOL/CAPITAL
<=(M /100)
?? 连续N个周期放大并保持上涨势头 当日换手率小于 M%
?? 11、突然放量
?? N(1,300,10)M(1,40,3)
?? VOL>REF(HHV(VOL,N),1)*M
?? 成交量较前N周期的最大成交量增大M倍
?? 12、上涨: C/REF(C,1)>1.07;今日涨幅达到了7%以上。
?? 注意:涨幅是指当天收盘价与昨天的收盘价之比。
?? 13、下跌: 同上面的表达方式一样,将方向改变了而已。
?? 14、十日均价继续上涨:
?? AA:=MA(C,10);
?? BB:=REF(AA,1);
?? AA>BB;
?? 15、窄幅整理:就是指近一段时期价格维持在一定幅度之内
?? (HHV(C,20)-LLV(C,20))/C
<0.08 ;即20日内价格振幅在8%以内波动。
?? 16、连续N天收阳:COUNT(C>O,N)=N;
?? ? ? 特别提示:新函数:COUNT(X,N),统计满足条件的周期数。若N=0则从第一个有效值开始。
?? 例:COUNT(C
?? 17、N日内阳线多于阴线:COUNT(C>O,N)>N/2;
?? 18、创历史新高:C=HHV(C,0);
?? 特别提示:此公式本应为:C=HHV(C,N); 当N等于0时,从第一天开始统计。统计历史数据时,如果从头开始,都用0。
?? 19、尾盘拉升
?? HOUR>14 AND MINUTE>56 AND CLOSE/REF(CLOSE,2) >= 1 N/100
?? 14:56以后2分钟涨幅超过N%
?? 20、突破长期盘整
?? N(10,60,30)??M(5,50,30)
?? REF(((HHV(H,N)-LLV(L,N))/LLV(L,N)),1)<=(M /100)AND C>=REF(HHV(H,N),1) AND BARSCOUNT(C)>N
?? 前N日在上下M%的幅度内整理,今日突破。
?? 21、阶段强势股
?? N(700101,1341231,990519) M(700101,1341231,990913)
?? A:=SUM(IF(DATE-N=0,INDEXC,0),0);
?? B:=SUM(IF(DATE-M=0,INDEXC,0),0);
?? E:=SUM(IF(DATE-N=0,C,0),0);
?? F:=SUM(IF(DATE-M=0,C,0),0);
?? ((F-E)/E)>((B-A)/A)
?? 选择N日----M日之间内走势强于大盘的股票.
?? 22、大盘同步选股
?? N(1,100,10)M(1,100,50)
?? COUNT((C>O AND INDEXC>INDEXO) OR (C< O AND INDEXC< INDEXO),N)/N> M/100
?? N周期中与大盘走势相同(同收阴线或同收阳线)的比例超过M%
?? ??23、今收盘对于N日内最低收盘价的涨幅(%)
?? (C-LLV(C,N))/LLV(C,N)*100;
?? 24、今收盘对于N日内最高收盘价的跌幅(%)
?? (HHV(C,N)-C)/HHV(C,N)*100;
?? 25、股价在过去N日内运行空间的相对位置
?? (C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100;
?? 26、股价上方N1%至N2%处的筹码(%)
?? AA:=WINNER(C C*N2/100)*100;
?? BB:=WINNER(C C*N1/100)*100;
?? AA-BB
?? 认识新函数:WINNER(CLOSE) 获利盘比例。表示以当前收市价卖出的获利盘比例,如返回0.2表示20%获利盘;例如:WINNER(10) 表示10元价格的获利盘比例。该函数仅对比较日线分析周期有效。
?? 27、股价下方N1%至N2%处的筹码(%)
?? (WINNER(C-C*N1/100)-WINNER(C-C*N2/100))*100;
?? 28、收盘价N%处的套牢盘
?? 100-(WINNER(C*N/100))*100;
?? 29、收盘价N%处的获利盘
?? WINNER(C*N/100)*100;
??
?? 三、基本面选股举例
??
?? 1、小盘选股
?? CAPITAL<=500000 AND FINANCE(33)>=0.01 AND CLOSE
<=30
?? 2、低市盈率选股
?? DYNAINFO(39)<=N AND DYNAINFO(39)>0
?? 3、业绩选股
?? N(0,100,0.4)
?? FINANCE(33)>N 每股收益在0.4元以上
?? 4、小盘股
?? N:=5000;
?? FINANCE(7)
<=N
?? 5、大盘股
?? N:=20000;
?? FINANCE(7)>=N
?? 6、净资产收益率选股
?? FINANCE(37)>(N/100) 净资产收益率高于N的股票
?? 7、每股净资产选股
?? FINANCE(34)>N 选出每股净资产大于N元的股票.
?? 8、每股未分配利润选股
?? FINANCE(32)>N 每股未分配利润大于N的股票
?? 9、市净率选股
?? C/FINANCE(34)
< N
?? 市净率=市价/每股净资产??市净率>N
?? 市净率越低公司股价越有被低估的可能,这类股票从理论上讲具有更高的安全性.
?? 10、换手率选股
?? DYNAINFO(37)>=N/100 单日换手率大于N的股票
?? 换手率的计算公式或表达式:VOL/CAPITAL*100; 因此也可写作:VOL/CAPITAL*100>=N/100
?? 11、掁幅:(H-L)/REF(C,1)*100; 注意:是比的昨天收盘价。
??
??
?? 均线(选股)的基本形态
??
??
?? 提示:K线的初步平均。(O H L C*2)/5; 或 (H L C*2)/4;
?? 一般认为:收盘价是最有说服力的和最有价值的,它是每天激烈争夺的最后妥协。但也有人认为:收盘价固然重要,其他价格也是争夺的产物。所以将全天的几种价格因素都考虑进去更能反映每天的真实情况。
??
?? 1、最简单的指标线
?? (1)均价线 就是 移动平均线MA,“MA”表示的就是计算平均值。
?? MA1=MA(CLOSE,5);5日平均线=(今天收盘价 昨天收盘价 .....--5天前的收盘价)/5;
?? MA2=MA(CLOSE,10);10日平均线=(今天收盘价 昨天收盘价 ...... 10天前的收盘价)/10;
?? (2)均量线 均价线会了,照着葫芦画瓢,把收盘价CLOSE换成成交量VOL就行了!
?? 例:MA1:MA(VOL,5);
?? MA2:MA(VOL,10);
??
?? 2、再次平均 指将已有的均线(多条均线)相加后进行再平均。
?? MA1=MA(CLOSE,5);
?? MA2=MA(CLOSE,10);
?? (MA1 MA2)/2;
??
?? 3、N日均线向上 (本题反映均线波浪式延伸过程中某阶段的形态。)
?? AA:=MA(C,N);
?? BB:=REF(AA,1);
?? AA>BB
??
?? 均线向下呢? AA
< BB 就可以了。
?? N日均线走平怎么表述?AA=BB
??
?? 4、均线由下跌状态刚刚转为上升
?? AA:=MA(C,N);
?? ? ?COUNT(AA
?? ? ? AND AA>REF(AA,5);
??
?? 5、年线拐头向上
?? A250:=MA(C,250);
?? REF(A250,1)[REF(A250,1);]
??
?? 6、两条均线交叉
?? 股软中专门设定了一条函数来描述两条线交叉:CROSS(X,Y) ,此函数通用。
?? 假如两条均线一条名叫X,另外一条叫Y 且(X<Y)
?? CROSS(X,Y)表示X向上穿过了Y 通称:金叉
?? CROSS(Y,X)表示Y向上穿过了X 通称:死叉
?? 特别提示:交叉有两种,一种是向上交叉,另一种是向下交叉。如果要求向上交叉时,X线必须比前一天高,所以需要加上 X>REF(X,1) 。完整的表达式为:CROSS(X,Y)AND X>REF(X,1)
?? 加餐:
?? 上述交叉是不限制周期的,有时我们会感到交叉特别频繁,如何取得他们较长时间交叉一次的数据呢,系统提供了另一个函数: LONGCROSS(X,Y,N) 两条线维持N周期后交叉。如果N等于15,则X Y两条线超过15天后交叉有效,否则不输出。
??
?? 7、多次金叉(以常见的MACD指标为例)
?? (1)二次金叉
?? (COUNT(CROSS(DIF,DEA),20)=2 AND CROSS(DIF,DEA);
?? (2)二次死叉
?? COUNT(CROSS(DEA,DIF),20)=2 AND CROSS(DEA,DIF);
?? (3)0轴上二次金叉
?? COUNT(CROSS(DIF,DEA) AND DEA>0,20)=2 AND CROSS(DIF,DEA) AND
?? DEA>0;
?? (4)0轴上三次金叉
?? COUNT(CROSS(DIF,DEA) AND DEA>0,20)=3 AND CROSS(DIF,DEA) AND
?? DEA>0;
??
?? 8、三线金叉
?? A5:=MA(C,5);
?? A10:=MA(C,10);
?? A30:=MA(C,30);
?? AA:=CROSS(A5,A10);
?? BB:=CROSS(A5,A30);
?? CC:=CROSS(A10,A30);
?? COUNT(AA,3)=1 AND COUNT(BB,3)=1 AND COUNT(CC,3)=1;
??
?? 9、三线同时金叉
?? A5:=MA(C,5);
?? A10:=MA(C,10);
?? A20:=MA(C,20);
?? AA:=CROSS(C,A5);
?? BB:=CROSS(C,A10);
?? CC:=CROSS(C,A20);
?? AA AND BB AND CC;
??
?? 10、均线多头排列
?? A1:=MA(C,N1);
?? A2:=MA(C,N2);
?? A3:=MA(C,N3);
?? A4:=MA(C,N4);
?? A1>A2 AND A2>A3 AND A3>A4;
??
?? 11、均线空头排列3天以上
?? 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;
??
?? 12、向前N日至M日出现过均线死叉(P1
< P2)
?? AA:=MA(C,P1);
?? BB:=MA(C,P2);
?? CC:=REF(CROSS(BB,AA),N);
?? COUNT(CC,M);
??
?? 13、均线粘合
?? MA1:=MA(C,5);
?? MA2:=MA(C10);
?? MA3:=MA(C,20);
?? P1:=ABS(MA1-MA2) ABS(MA2-MA3);
?? P1/C<1 /100 AND MA1>REF(MA1,1) AND MA2>REF(MA2,1);
??
?? 14、均线粘合(另种表达式)
?? MA1:=MA(C,5);
?? MA2:=MA(C,10);
?? MA3:=MA(C,30);
?? A:=MAX(MAX(MA1,MA2),MA3);
?? B:=MIN(MIN(MA1,MA2),MA3);
?? COUNT(ABS(A-B)/B
<0.01,3)=3;表示已粘合3天(含3天)以上
??
?? 15、多条均线粘合 如5、10、20、30、120、250日移动平均线粘合
?? aa:=(ma(c,5) ma(c,10) ma(c,20) ma(c,30) ma(c,120) ma(c,250))/6;
?? up:=aa*n/100 aa;
?? down:=aa-aa*n/100;
?? count(BETWEEN(ma(c,5),up,down) and BETWEEN(ma(c,10),up,down) and BETWEEN(ma(c,20),up,down) and BETWEEN(ma(c,30),up,down)and BETWEEN(ma(c,120),up,down) and BETWEEN(ma(c,250),up,down),m)=m;
?? ? ? n(2,1,500) m(10,1,100) 调整参数n为粘合程度,n值越小粘合的程度越高,即均线距离越近;m为粘合周期。
??
?? 16、乖离均线
?? BIAS1:(CLOSE-MA(CLOSE,N))/MA(CLOSE,N)*100;
?? 当日股价与N日均线的乖离率=(当日股价-N日均价)/N日均价*100;
?? 特别提示:乖离均线是由乖离率的“点”连成的均线。 此线虽非普通均线,因常用,故单提出来。
?? 原理:以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。
??
?? 要点:从后往前找,删除没用条,去掉修饰符,个别加等号。
??
?? 例一:找出买点
?? VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
?? VAR2:=SMA(VAR1,5,1);
?? VAR3:=SMA(VAR2,8,1);
?? H1:EMA(CLOSE,8),LINETHICK1;
?? H2:EMA(H1,20),LINETHICK1;
?? VAR4:=(CROSS(VAR2,VAR3) AND (VAR3
< 20));
?? VAR5:=((CLOSE > (LLV(CLOSE,60) (0.3 * LLV(CLOSE,60)))) AND VAR4);
?? VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
?? M1:EMA(CLOSE,60);
?? M2:EMA(CLOSE,89);
?? M3:EMA(CLOSE,233),LINETHICK1;
?? M4:EMA(CLOSE,583),LINETHICK1;
?? STICKLINE((H1 > H2),H1,H2,1,0.8);
?? STICKLINE((H1
< H2),H1,H2,1,0.8);
?? DRAWTEXT((CROSS(H1,H2) AND (CLOSE
< EMA(CLOSE,60))),(LOW * 0.92),'买');
?? DRAWTEXT(VAR6,(HIGH * 1.08),'卖');
??
??
?? 分解说明:
??
?? VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
?? VAR2:=SMA(VAR1,5,1);
?? VAR3:=SMA(VAR2,8,1);
?? H1:EMA(CLOSE,8),LINETHICK1;
?? H2:EMA(H1,20),LINETHICK1;
?? VAR4:=(CROSS(VAR2,VAR3) AND (VAR3
< 20));
?? VAR5:=((CLOSE > (LLV(CLOSE,60) (0.3 * LLV(CLOSE,60)))) AND VAR4);
?? VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
?? M1:EMA(CLOSE,60);
?? M2:EMA(CLOSE,89);
?? M3:EMA(CLOSE,233),LINETHICK1;
?? M4:EMA(CLOSE,583),LINETHICK1;
?? STICKLINE((H1 > H2),H1,H2,1,0.8);
?? STICKLINE((H1
< H2),H1,H2,1,0.8);
?? 第一步{从后往前找}找到下面这行“买”的输出语句。然后看这条语句的基本条件。
?? DRAWTEXT((CROSS(H1,H2) AND (CLOSE
< EMA(CLOSE,60))),(LOW * 0.92),'买');
?? 查看结果:输出文字 交叉 条件,条件 直 接 输 出 语 句 输出位置 文字
?? DRAWTEXT(VAR6,(HIGH * 1.08),'卖');
?? 知道“基本条件”为 H1,H2,那么与此没有任何关系的语句从后往前删除。删的办法有两种:一是直接删掉;二是先用{}括上,待没问题时再一次性删除。加蓝色的为找到的不输出语句。
??
?? 第二步{删除没用条}后,剩下的有用语句:
?? H1:EMA(CLOSE,8),LINETHICK1; {加蓝的为修饰类函数,原则一律删除。}
?? H2:EMA(H1,20),LINETHICK1;
?? DRAWTEXT((CROSS(H1,H2) AND (CLOSE
< EMA(CLOSE,60))),(LOW * 0.92),'买');
??
?? 第三步{去掉修饰符} 分别去掉:指标线粗细、显示文字、文字位置函数和文字
?? H1:EMA(CLOSE,8);
?? H2:EMA(H1,20);
?? CROSS(H1,H2) AND CLOSE
< EMA(CLOSE,60);
??
?? 第四步{个别加等号} 条件选股只能输出一条语句,上面这三行为全部输出,所以,作为“条件”的前两行还必须在冒号后面加上等号,表达不输出。结果:
?? H1:=EMA(CLOSE,8);
?? H2:=EMA(H1,20);
?? CROSS(H1,H2) AND CLOSE
< EMA(CLOSE,60);
??
?? 例二、找出笑脸和买入信号
?? 以本人发过的《跟庄建仓》为例。
?? A01:=DYNAINFO(7);
?? A03:=BARSCOUNT(CLOSE);
?? A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
?? A05:=IF((A03 > 20),A04,0);
?? A06:=IF((LOW > A01),0,IF((HIGH
< A01),1,(((A01 - LOW) 0.009) / ((HIGH - LOW) 0.009))));
?? A07:=DMA(A06,(VOL / CAPITAL)) * 60;
?? A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05
<= 88)),A07,0);
?? Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
?? Var2:=EMA(Var1,8);
?? Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
?? 趋势:=EMA(Var3,3)-10;
?? FILLRGN(趋势>80,趋势,80);
?? DRAWICON(CROSS(趋势,0),0,1);
?? FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势
<50)),0,A09),colorFFFF00;
?? 机构建仓区:0,LINETHICK0,colorFFFF00;
??
?? Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
?? STICKLINE(趋势
<=13,0,20,5,0),colorcc9900;
?? DRAWTEXT(FILTER(趋势
<=13,15),30,'准备现金'),colorcc9900;
?? STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
?? Var5:=FILTER((趋势<=13 AND Var4>13),10);
?? DRAWTEXT(Var5,60,'买入'),color0099ff;
?? STICKLINE(趋势>=90 AND Var4,0,30,5,0),colorgray;
?? Var6:=FILTER(趋势>=90,10);
?? DRAWTEXT(Var6,40,'清仓'),colorgray;
??
?? Var7:=LLV(LOW,30);
?? Var8:=HHV(HIGH,30);
?? Var9:=EMA((CLOSE-Var7)/(Var8-Var7)*4,4)*25;
?? STICKLINE(Var9>90,100,105,10,2),COLORRED;
?? STICKLINE(CROSS(Var4,-40),10,55,6,0),COLORRED;
?? Var10:=(Var9-LLV(Var9,4))/(HHV(Var9,4)-LLV(Var9,4))*100;
?? DRAWTEXT(IF(CROSS(Var9,Var10) AND Var9>87,95,0),88,'险'),Color00FF00,ALIGN1;
?? DRAWICON(CROSS(90,Var9),95,9);
?? Var11:=SMA(ABS(L-REF(L,1)),3,1)/SMA(MAX(L-REF(L,1),0),3,1)*100;
?? Var12:=HHV(Var11,30)*8;
?? 火焰山:EMA(IF(LOW
<=Var7 AND 趋势<40,(Var11 Var12),0),3)/618,COLORRED,linethick2;
?? STICKLINE(火焰山>0,0 ,火焰山*1.2,8,0 ),COLORRED;
?? Var13:=(MA(C,1) MA(C,3) MA(C,5) MA(C,7) MA(C,9))/5;
?? Var14:=(MA(C,2) MA(C,4) MA(C,6) MA(C,8) MA(C,10))/5;
?? 趋势线: 趋势,colorff0000;
?? Var16:=MAX(EMA(Var13,2)-EMA(Var14,5),0)*200;
?? Var17:=EMA(Var16,5);
?? 波浪峰:Var17,stick,colorff00ff;
?? STICKLINE(Var17
?? Var18:=MA(趋势线,8);
?? if(CROSS(Var2,Var18) AND Var2
<15,50,0),COLORRED;
?? DRAWTEXT(CROSS(趋势线,Var2)AND 趋势线>REF(趋势线,1)AND 趋势线
<50,50,'追涨'),COLORFF0000;
??
?? 分析:这个公式输出语句非常多,但多数都是用于趋势判断的。所以不用管它。仍按我们既定的思路进行。
?? 第一步{从后往前找},先删除发出信号关键语句之后的(红色为输出语句,它以下的语句已经删去,蓝色为等待下步删除的)
?? A01:=DYNAINFO(7);
?? A03:=BARSCOUNT(CLOSE);
?? A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
?? A05:=IF((A03 > 20),A04,0);
?? A06:=IF((LOW > A01),0,IF((HIGH
< A01),1,(((A01 - LOW) 0.009) / ((HIGH - LOW) 0.009))));
?? A07:=DMA(A06,(VOL / CAPITAL)) * 60;
?? A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05
<= 88)),A07,0);
?? Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
?? Var2:=EMA(Var1,8);
?? Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
?? 趋势:=EMA(Var3,3)-10;
?? FILLRGN(趋势>80,趋势,80);
?? DRAWICON(CROSS(趋势,0),0,1);
?? FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势
<50)),0,A09),colorFFFF00;
?? 机构建仓区:0,LINETHICK0,colorFFFF00;
?? Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
?? STICKLINE(趋势
<=13,0,20,5,0),colorcc9900;
?? DRAWTEXT(FILTER(趋势
<=13,15),30,'准备现金'),colorcc9900;
?? STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
?? Var5:=FILTER((趋势<=13 AND Var4>13),10);
?? DRAWTEXT(Var5,60,'买入'),color0099ff;
??
?? 第二步{删除没用条}后
?? Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
?? 趋势:=EMA(Var3,3)-10;
?? DRAWICON(CROSS(趋势,0),0,1);
?? Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
?? Var5:=FILTER((趋势<=13 AND Var4>13),10);
?? DRAWTEXT(Var5,60,'买入'),color0099ff;
??
?? 第三步{去掉修饰符后}:
?? 趋势:=EMA(Var3,3)-10;
?? CROSS(趋势,0);
?? Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
?? Var5:=FILTER((趋势<=13 AND Var4>13),10);
?? Var5;
?? 第四步{个别加等号}本公式中的“条件”语句都是不输出的,所以此项省略,但因是要笑脸和买入两个信号,所以还必须把它们连结起来:
?? Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
?? 趋势:=EMA(Var3,3)-10;
?? Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
?? Var5:=FILTER((趋势<=13 AND Var4>13),10);
?? CROSS(趋势,0)or Var5;
??
??
??
?? 函数的综合运用
??
?? 第一部分:引用已有公式中的数据
?? 基本引用例一
?? "macd. diff", "macd.dea";
?? 基本格式: 指标名称 语句名称 (注意:必须用双引号引上)
?? 加入参数例二
?? "kdj. k" (9,3,3) ;
?? 基本格式:指标名称 语句名称 参数 (指标名称和语句名称之间用隔点.隔开)
?? 加入参数例三
?? 周m:"macd. diff #WEEK";
?? 引用周线:指标名称 语句名称 周函数 (注意:周函数前加#字号)
?? 月K:"kdj.k#MONTH";
?? 引用月线同上,只是换成月函数。
?? -
?? 应用实例:主图 顶底背离
??
?? A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1));
?? B1:=ref(c,A1 1)>c and ref("macd.diff"(12,26,9),A1 1)
<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9));
?? MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;
?? DRAWTEXT(FILTER(B1>0,5),0.57,'MACD底背离'),COLOR00FF00;
?? A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1));
?? B2:=ref(c,A2 1)>c and ref("kdj.k"(9,3,3),A2 1)
<"kdj.k"(9,3,3) and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3));
?? KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;
?? DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW;
?? A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1));
?? B3:=ref(c,A3 1)>c and ref("RSI.RSI1"(6,12,24),A3 1)
<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));
?? RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;
?? DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORFFCC66;
?? DRAWTEXT(FILTER(D1>0,5),1.47,'MACD顶背离'),COLOR0066FF;
?? C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1));
?? D2:=ref(c,C2 1)"kdj.k"(9,3,3) and cross("kdj.d"(9,3,3),"kdj.k"(9,3,3));
?? KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
?? DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED;
?? C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1));
?? D3:=ref(c,C3 1)"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));
?? RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;
?? DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORFF00FF;
??
??
?? 第二部分 逐步增加函数
?? 以均线为例,主图:
?? 基本句型
?? MA5:MA(C,5);
?? MA10:MA(C,10);
?? MA30:MA(C,30);
?? MA60:MA(C,60);
?? 增加颜色(注:在没有颜色输出符号时,系统会自动加上颜色)
?? MA5:MA(C,5),COLORBLUE;
?? MA10:MA(C,10),COLORF00FF0;
?? MA30:MA(C,30),COLORFFFF00;
?? MA60:MA(C,60),COLORYELLOW;
?? 将10日均线变成小圆圈线
?? MA5:MA(C,5),COLORBLUE;
?? MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
?? MA30:MA(C,30),COLORFFFF00;
?? MA60:MA(C,60),COLORYELLOW;
?? 将60日均线加粗
?? MA5:MA(C,5),COLORBLUE;
?? MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
?? MA30:MA(C,30),COLORFFFF00;
?? MA60:MA(C,60),COLORYELLOW,LINETHICK3;
?? 在5日均线金叉10日均线处显示符号
?? MA5:MA(C,5),COLORBLUE;
?? MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
?? MA30:MA(C,30),COLORFFFF00;
?? MA60:MA(C,60),COLORYELLOW,LINETHICK3;
?? 金叉:=CROSS(MA5,MA10);
?? DRAWICON(金叉,L,1);
?? DRAWTEXT(金叉,L,'金叉');
?? STICKLINE(金叉,H,L,6,0); (注:这三种显示方式用其中一种就行)
?? 30日均线向上时显示红色,否则为绿色
?? MA5:MA(C,5),COLORBLUE;
?? MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
?? MA30:MA(C,30),COLORFFFF00;
?? MA60:MA(C,60),COLORYELLOW,LINETHICK3;
?? 金叉:=CROSS(MA5,MA10);
?? DRAWICON(金叉,L,1);
?? DRAWTEXT(金叉,L,'金叉');
?? STICKLINE(金叉,H,L,6,0);
?? PARTLINE(MA30>=REF(MA30,1),MA30),COLORRED;
?? PARTLINE(MA30
?? (注:最后两行为划分段线,大智慧没有