通达信经典实用选股公式 (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 }