通达信经典实用选股公式 (4)
(2016-07-26 21:43:27)| 标签: 股票 | 分类: 股票、K线理论 | 
 
MA买入 
{SHORT 
CROSS(MA(CLOSE,SHORT),MA(CLOSE,LONG));
{收盘价的SHORT日简单移动平均上穿收盘价的LONG日简单移动平均 }
{短期均线从下向上穿越长期均线.
短期均线参数为SHORT,长期均线参数为LONG}
 
MA卖出 
{N 
CROSS(MA(CLOSE,M),MA(CLOSE,N));
{收盘价的M日简单移动平均上穿收盘价的N日简单移动平均 }
{长期均线从上往下交叉短期均线为卖出信号.}
 
MACD买入 
{SHORT 
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA 
CROSS(DIFF,DEA);
{赋值: 收盘价的SHORT日指数移动平均 - 收盘价的LONG日指数移动平均
赋值: DIFF的M日指数移动平均
DIFF上穿DEA}
{分析MACD柱状线,由绿变红(负变正),买入信号。DIFF与DEA形成金叉时为买入信号.}
 
MACD卖出 
{SHORT 
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA 
CROSS(DEA ,DIFF);
{赋值: 收盘价的SHORT日指数移动平均 - 收盘价的LONG日指数移动平均
赋值: DIFF的M日指数移动平均
DEA上穿DIFF}
{分析MACD柱状线,由红变绿(正变负),卖出信号。DEA与DIFF形成死叉时为卖出信号.}
 
MTM卖出 
{N 
CROSS(0,MA(CLOSE-REF(CLOSE,N),N1));
{ 0上穿收盘价-N日前的收盘价的N1日简单移动平均}
{ MTMMA向下突破零,卖出信号}
 
RSI买入 
{N 
LC:= REF(CLOSE,1);
RSI1:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;
CROSS(RSI1,LL);
{LC赋值: 1日前的收盘价
RSI1赋值:收盘价-LC和0的较大值的N日[1日权重]移动平均/收盘价-LC的绝对值的N日[1日权重]移动平均*100
RSI1上穿LL}
 
RSI卖出 
{N 
LC := REF(CLOSE,1);
RSI1:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;
CROSS(LL,RSI1);
{赋值: 1日前的收盘价
RSI1赋值:收盘价-LC和0的较大值的N日[1日权重]移动平均/收盘价-LC的绝对值的N日[1日权重]移动平均*100
LL上穿RSI1} 
 
SAR买入 
{N 
SARTURN(N,STEP,MAXP)=1;
 
{步长为STEP极限值为MAXP的N日抛物转向点=1 } 
 
SAR卖出 
{N 
SARTURN(N,STEP,MAXP)=-1;
 
{步长为STEP极限值为MAXP的N日抛物转向点=-1 } 
 
W&R卖出 
{N 
WR:=100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));
CROSS(M,WR);
{ WR赋值:100*(N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)
M上穿WR } 
 
SP 
{N 
W:=MA((LLV(LOW,45)-CLOSE)/(HHV(HIGH,45)-LLV(LOW,45))*100,N);
CROSS(-5,W);
{ W赋值:(45日内最低价的最低值-收盘价)/(45日内最高价的最高值-45日内最低价的最低值)*100的N日简单移动平均
-5上穿W } 
 
TP 
{N1 
M1:=MA(C,N1);{短期参数:5}
M2:=MA(C,N2);{中期参数:10}
M3:=MA(C,N3);{长期参数:30}
{以下计算交叉点距今的天数}
D1:=BARSLAST(CROSS(M1,M2));{短上穿中}
D2:=BARSLAST(CROSS(M1,M3));{短上穿长}
D3:=BARSLAST(CROSS(M2,M3));{中上穿长}
T1:=CROSS(M2,M3);{今天中线上穿长线}
T2:=D1>=D2 AND D2>=D3;{交叉按指定的先后出现}
T3:=COUNT(CROSS(M2,M1) OR CROSS(M3,M2) OR CROSS(M3,M1),D1)=0;{中间无夹杂其它交叉}
T4:=REF(M1短上穿中前一天短、中线在长线之下}
JT:T1 AND T2 AND T3 AND T4;{价托确定};
 
{ M1赋值:收盘价的N1日简单移动平均
M2赋值:收盘价的N2日简单移动平均
M3赋值:收盘价的N3日简单移动平均
D1赋值:上次M1上穿M2距今天数
D2赋值:上次M1上穿M3距今天数
D3赋值:上次M2上穿M3距今天数
T1赋值:M2上穿M3
T2赋值:D1>=D2 AND D2>=D3
T3赋值:统计D1日中满足M2上穿M1ORCROSS(M3,M2)ORCROSS(M3,M1)的天数=0
T4赋值:D1+1日前的M1
输出JT:T1 AND T2
AND T3 AND T4 
 
PRD 
{P1 
PR:(WINNER(CLOSE)-REF(WINNER(CLOSE),1))>P1*VOL/CAPITAL;
{输出PR:(以收盘价计算的获利盘比例-1日前的以收盘价计算的获利盘比例)>P1*成交量(手)/当前流通股本(手)} 
 
PRX 
{P1 
PR:(WINNER(CLOSE)-REF(WINNER(CLOSE),1))
{输出PR:(以收盘价计算的获利盘比例-1日前的以收盘价计算的获利盘比例)成交量(手)/当前流通股本(手)} 
 
ASRD 
{P1 
ASR:100*(WINNER(CLOSE*1.1)-WINNER(CLOSE*0.9))>P1*WINNER(HHV(HIGH,0));
{输出浮筹比例:100*(以收盘价*1.1计算的获利盘比例-以收盘价*0.9计算的获利盘比例)>P1*以0日内最高价的最高值计算的获利盘比例} 
 
ASRX 
{P1 
ASR:100*(WINNER(CLOSE*1.1)-WINNER(CLOSE*0.9))
{输出浮筹比例:100*(以收盘价*1.1计算的获利盘比例-以收盘价*0.9计算的获利盘比例)以0日内最高价的最高值计算的获利盘比例} 
 
C101 
{N 
HHV(HIGH,N)=HHV(HIGH,0) AND BARSCOUNT(CLOSE)>=N;
{ N日内最高价的最高值=0日内最高价的最高值
AND 收盘价的有效数据周期数>=N} 
 
C102 
{N 
LLV(LOW,N)=LLV(LOW,0) AND BARSCOUNT(CLOSE)>=N;
{ N日内最低价的最低值=0日内最低价的最低值
AND 收盘价的有效数据周期数>=N} 
 
C103 
{N 
COUNT(OPEN>CLOSE,M)/M >= N/100;
{统计M日中满足收阴线的天数/M >= N/100} 
 
C104 
{N 
COUNT(OPEN= N/100;
{统计M日中满足收阳线的天数/M >= N/100} 
 
C105 
{N 
COUNT(CLOSE>REF(CLOSE,1),M)/M >= N/100;
{统计M日中满足收盘价>1日前的收盘价的天数/M >= N/100} 
 
C106 
{N 
COUNT(CLOSE= N/100;
{统计M日中满足收盘价<1日前的收盘价的天数/M >= N/100} 
 
C107 
{N 
EVERY(CLOSE>OPEN,N);
{最近N日一直存在收阳线} 
 
 
C108 
{N 
EVERY(OPEN>CLOSE,N);
{最近N日一直存在收阴线}
 
C128 
{N 
ZT:=(CLOSE>=ZTPRICE(REF(CLOSE,1),0.1)); { 以涨停收盘 }
ZTO:EXIST(ZT,N); 
{ ZT赋值:(收盘价>=计算涨停价)
输出 ZTO:最近N日存在ZT 
 
C129 
{N 
EZT:=(HIGH>=ZTPRICE(REF(CLOSE,1),0.1)); { 出现过涨停 }
EZTO:EXIST(EZT,N); 
{ EZT赋值:(最高价>=计算涨停价)
输出 EZTO:最近N日存在EZT  
 
C130 
{N 
ZTTJ:=(CLOSE>=ZTPRICE(REF(CLOSE,1),0.1));
COUNT(ZTTJ,N)>=涨停天数;
{ ZTTJ赋值:(收盘价>=计算涨停价)
统计N日中满足ZTTJ的天数>=涨停天数 
 
C110 
{N 
A1:=MA(VOL,5);
A2:=REF(A1,1);
VOL/A2>N AND (IF((SETCODE==0||SETCODE==1),100*VOL,VOL))/CAPITAL>M;
{ A1赋值:成交量(手)的5日简单移动平均
A2赋值:1日前的A1
成交量(手)/A2>N AND (如果(市场类型(0或者市场类型或者1),返回100*成交量(手),否则返回成交量(手))/当前流通股本(手)>M 
 
C111 
{N 
100*SUM(VOL,N)/CAPITAL<=M;
{ 100*成交量(手)的N日累和/当前流通股本(手)<=M 
 
 
C112 
{N 
100*SUM(VOL,N)/CAPITAL>=M;
{ 100*成交量(手)的N日累和/当前流通股本(手)>=M 
 
C113 
{ M 
EVERY(VOL>=REF(VOL,1),M);
{最近M日一直存在成交量(手)>=1日前的成交量(手) 
 
C114 
{ M 
COUNT(VOL<=REF(VOL,1),M)=M;
{统计M日中满足成交量(手)<=1日前的成交量(手)的天数=M 
 
C115 
{ N 
A:=MA(VOL,5);
BARSCOUNT(CLOSE)>=N AND HHV(A,N)
AND COUNT(VOL>N2*A,N)>N3;
{ A赋值:成交量(手)的5日简单移动平均
收盘价的有效数据周期数>=N AND N日内A的最高值日内A的最低值 AND
统计N日中满足成交量(手)>N2*A的天数>N3  
 
C116 
{ N 
A:= (CLOSE-REF(CLOSE,1))/REF(CLOSE,1)>=(N/100);
100*SUM(VOL,N1)/CAPITAL>=N2
AND COUNT(VOL>REF(VOL,1),N3)=N3 AND 
{ A赋值: (收盘价-1日前的收盘价)/1日前的收盘价>=(N/100)
100*成交量(手)的N1日累和/当前流通股本(手)>=N2 AND
统计N3日中满足成交量(手)>1日前的成交量(手)的天数=N3 AND 
 
C117 
{ N 
A1:=CLOSE/REF(CLOSE,1);
A2:=A1>1 AND A1<1.03; 
B1:=VOL/REF(VOL,1);
B2:=B1>1 AND B1<2;
C1:=100*MA(VOL,N)/CAPITAL<5; 
COUNT(A2 AND B2,N)/N>0.6 AND C1;
{ A1赋值:收盘价/1日前的收盘价
A2赋值:A1>1 AND A1<1.03
B1赋值:成交量(手)/1日前的成交量(手)
B2赋值:B1>1 AND B1<2
C1赋值:100*成交量(手)的N日简单移动平均/当前流通股本(手)<5
统计N日中满足A2ANDB2的天数/N>0.6 AND
C1 
 
C118 
{ N 
VOL>REF(HHV(VOL,N),1)*M;
{成交量(手)>1日前的N日内成交量(手)的最高值*M 
 
C119 
{ N 
COUNT(CLOSE>0,0)>N &&
(HHV(CLOSE,N)-LLV(CLOSE,N))/LLV(CLOSE,N)<=(N1/100);
{统计0日中满足收盘价>0的天数>N 并且 (N日内收盘价的最高值-N日内收盘价的最低值)/N日内收盘价的最低值<=(N1/100) 
{成交量分布比较均匀,偶尔有所放大,但马上又缩小.如果发生在底部区域,且盘整时间较长,则很有可能是庄家的吸货行为. 
 
C123 
{ N 
REF(((HHV(HIGH,N)-LLV(LOW,N))/LLV(LOW,N)),1)<=(N1/100)
 
{ 1日前的((N日内最高价的最高值-N日内最低价的最低值)/N日内最低价的最低值)<=(N1/100) 
 
C124 
{ N 
A:=SUM(IF(CURRBARSCOUNT=N,INDEXC,0),0);
B:=SUM(IF(CURRBARSCOUNT=N1,INDEXC,0),0);
E:=SUM(IF(CURRBARSCOUNT=N,CLOSE,0),0);
F:=SUM(IF(CURRBARSCOUNT=N1,CLOSE,0),0);
((F-E)/E)>(((B-A)/A)+0.01);
{ A赋值:如果到最后交易的周期=N,返回大盘的收盘价,否则返回0的历史累和
B赋值:如果到最后交易的周期=N1,返回大盘的收盘价,否则返回0的历史累和
E赋值:如果到最后交易的周期=N,返回收盘价,否则返回0的历史累和
F赋值:如果到最后交易的周期=N1,返回收盘价,否则返回0的历史累和
((F-E)/E)>(((B-A)/A)+0.01) 
 
C125 
{ N 
A:=SUM(IF(CURRBARSCOUNT=N,INDEXC,0),0);
B:=SUM(IF(CURRBARSCOUNT=N1,INDEXC,0),0);
E:=SUM(IF(CURRBARSCOUNT=N,CLOSE,0),0);
F:=SUM(IF(CURRBARSCOUNT=N1,CLOSE,0),0);
((F-E)/E)<(((B-A)/A)-0.01);
{ A赋值:如果到最后交易的周期=N,返回大盘的收盘价,否则返回0的历史累和
B赋值:如果到最后交易的周期=N1,返回大盘的收盘价,否则返回0的历史累和
E赋值:如果到最后交易的周期=N,返回收盘价,否则返回0的历史累和
F赋值:如果到最后交易的周期=N1,返回收盘价,否则返回0的历史累和
((F-E)/E)<(((B-A)/A)-0.01) 
 
C126 
{ N 
COUNT((CLOSE>OPEN && INDEXC>INDEXO) || (CLOSEM/100;
{统计N日中满足(收阳线并且大盘的收盘价>大盘的开盘价)或者(收阴线并且大盘的收盘价<</FONT>大盘的开盘价)的天数/N>M/100 
 
C127 
{ N 
GG:=(CLOSE-REF(OPEN,N))/REF(OPEN,N);
DP:=(INDEXC-REF(INDEXO,N))/REF(INDEXO,N);
QSG:GG/DP>=M;
{ GG赋值:(收盘价-N日前的开盘价)/N日前的开盘价
DP赋值:(大盘的收盘价-N日前的大盘的开盘价)/N日前的大盘的开盘价
输出QSG:GG/DP>=M 
 
C131 
A1:=REF(CLOSE,5)>REF(CLOSE,4);
A2:=REF(CLOSE,4)>REF(CLOSE,3);
A3:=REF(CLOSE,3)>REF(CLOSE,2);
A4:=REF(CLOSE,2)>REF(CLOSE,1);
A5:=CLOSE>REF(HIGH,1) AND V>REF(V,1);
RET:A1 AND A2 AND A3 AND A4 AND A5;
{ A1赋值:5日前的收盘价>4日前的收盘价
A2赋值:4日前的收盘价>3日前的收盘价
A3赋值:3日前的收盘价>2日前的收盘价
A4赋值:2日前的收盘价>1日前的收盘价
A5赋值:收盘价>1日前的最高价 AND 成交量(手)>1日前的成交量(手)
输出RET:A1 AND A2 AND A3 AND A4 AND A5 }
 
C132 
{ N 
A:= (O>REF(H,1) AND (O-REF(C,1))/REF(C,1)*100>N);
B:= (O
IF(N>0,A,B);
{ A赋值: (开盘价>1日前的最高价 AND (开盘价-1日前的收盘价)/1日前的收盘价*100>N)
B赋值: (开盘价<1日前的最低价 AND (开盘价-1日前的收盘价)/1日前的收盘价*100
如果N>0,返回A,否则返回B }

 加载中…
加载中…