ZT文萃

本博不原创,转帖自己感兴趣那些事人物,什么入眼贴什么,随心所欲。
posts - 93, comments - 5, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

下文来自:http://www.55188.com/thread-5518816-1-1.html,原文出自和讯。

1、格雷厄姆1929年股市泡沫破灭后在1931年抄底,结果破产。
(失败原因:抄底)

2、美国著名经济学家费雪已经预见1929年股市泡沫破灭,但是还是买入自认为是便宜的股票,结果几天之中损失了几百万美元,一贫如洗。
(失败原因:认为优秀企业可以穿越周期不计价格买入)

3、索罗斯1987年前认为日本股市泡沫巨大,放空日本股票,结果惨败,日本股市牛到了1989年。索罗斯在华尔街评论上鼓吹美国股市会坚挺,日本股市将会崩盘,而结果正好相反:美国股市崩盘了,日本股市却坚挺。索罗斯旗下的量子基金当年损失了32%,与他唱反调的孔逸夫却让科尔基金赢利了70%,这是一个令人惊奇的数字,因为当年几乎所有的对冲基金都亏损了。1999年曾不看好科技股,但2000年后却用量子基金高位买入科技股,最后大亏。
(失败原因:投机,对赌)
   
4、上海一基金管理公司总经理当初是从中国台湾地区股市1000多点开始进入的,一直做到10000点,入市50万的资金滚到了8000万,其实她在10000点的时候,就把股票全部抛了,手上握有的全是现金。因为担心股市过于疯狂,所以她还是相对比较理智的,最后台湾股市上冲到12000点之上,三年多时间增值了160倍,但是最后的结局还是很惨,在台湾股市由12000点跌到7000点时,已经跌去5000多点了,按道理该反弹了吧,她又进去了,股指又跌掉了5000点,她不得不全部认赔清仓,三年的财富又都化为灰烬。
(失败原因:博反弹,做波段)

   归其原因,我们客观地说,她还是非常聪明的,但是为什么后来又进场了,她当时自己就以为自己是股神了,可以掌控股市,股市不过是她的超级提款机而已。在此,我劝告大家,现在股市好,可能未来股市更好,但是如何清醒的看待股市,如何看待自己是一个永恒的话题。
(失败原因:高估自己)

  5、香港有个知名股评曹仁超,1972年香港股灾前1200点看空,结果差点被公司解雇。1973年港股达到1773点后大幅下跌。到1974年跌至400点,老曹躲过大熊,信心百倍。1974年7月港股跌至290点后认为可以捞底,拿全部积蓄50万港币抄底和记洋行,该蓝筹股从1973年股市泡沫的43块一直跌到5.8。老曹全仓买入。结果后来5个月,港股再度跌至150点。和记洋行跌至1.1元。老曹最后斩仓,亏损80%以上。
(失败原因:全仓买卖)
  
  6、徐兴博年近半百,是南京市一家药材公司的普通职工。1992年,我国证券交易市场还刚刚起步,许多单位和个人在这片领域里淘一桶金。徐兴博的确在这里面淘得了第一桶金,凭着丰富的投资经验,不管股市如何涨跌,他总是能及时嗅出大盘行情,事先作出调整,让自己的投资稳定增长。2001年10月,形势急转,而他仍认为能象以前那样安然度过低谷,接受委托资金超过100万元。2005年6月,沪指跌破1000点大关,一夜间回到了13年前,徐兴博和朋友委托给他炒股的财产,在这次大跌中损失殆尽。
(失败原因:加杠杆,借钱投资)股

posted @ 2013-12-08 21:27 ZT文萃 阅读(155) | 评论 (0)编辑 收藏

http://blog.sina.com.cn/s/blog_5ce347de0102eb8b.html

 

我们小散户做的是政策面大指标里 的个股,不是整个政策面里的所有股。看业绩,看基本面,看政策都不如看个股快要拉升的时机。好指标里显示个股拉升前的习惯和成交量的数据,好指标的确像温 度计一样记录了39度是发烧,0度以下要结冰的事实。熊市里有涨的可以赚钱的个股,牛市里有跌的能套人的个股。能有一个更好的指标让大家在牛市里多赚一点 钱,在熊市里少赔一点钱,就值得了。


一.选股指标.

次日涨停
W1:=C=HHV(C,20);
W2:=BARSLAST(W1);
W3:=IF(W2>0,REF(C,W2),REF(C,W2));
W4:=CROSS(C,REF(W3,1));
W4 AND COUNT(W4,5)=1;
黄转紫选股
DIFF:=EMA(DCLOSE,12)-EMA(DCLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=(DIFF-DEA)*2;
紫柱:MACD<0 AND MACD>REF(MACD,1) AND REF(MACD,1)<REF(MACD,2);

低位金叉选股
DIFF:=EMA(DCLOSE,12)-EMA(DCLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=(DIFF-DEA)*2;
低位金叉:CROSS(DIFF,DEA) AND DIFF<-0.1;

二次金叉选股
DIFF:=EMA(DCLOSE,12)-EMA(DCLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=(DIFF-DEA)*2;
JCCOUNT:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
二次金叉:CROSS(DIFF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,21)=1;
绝地反弹
(1)
VAR1:=REF(LOW,1);
VAR2:=SMA(ABS(LOW-VAR1),13,1)/SMA(MAX(LOW-VAR1,0),13,1)*100;
VAR3:=EMA(IF(CLOSE*1.2,VAR2*13,VAR2/13),13);
VAR4:=LLV(LOW,34);
VAR5:=HHV(VAR3,34);
VAR6:=IF(LLV(LOW,55),1,0);
VAR7:=EMA(IF(LOW<=VAR4,(VAR3+VAR5*2)/2,0),3)/618*VAR6;
XL1:=MA(LOW,2)*0.96;
XL2:=MA(LOW,26)*0.85;
XL3:=REF(XL1,1)<XL2 AND REF(XL1,1)<XL1 AND REF(XL1,1)<REF(XL1,2);
启动:=IF(XL3,0,VAR7*3),COLORRED;
XG:启动>25;

(2)

BACKSET( (REF(CLOSE,1)<REF(OPEN,1) AND
CLOSE>OPEN AND ABS(CLOSE-REF(CLOSE,1))/CLOSE<0.002),2);
A2:=FILTER(A1<=V3,10);
ND CAPITAL<300000000
REF(V,1) = LLV(V,4) AND V >=REF(V,1)
HHV(V,3)=REF(V,1) AND HHV(V,5)=REF(V,1) AND HHV(V,21)=REF(V,1)
AND V >=REF(V,1)
01>0 AND T02>0;

1.三线粘合
M:=1;
M5:=MA(CLOSE,5);
M10:=MA(CLOSE,10);
M20:=MA(CLOSE,20);
K1:=MAX(MAX(M5,M10),MAX(M10,M20));
K2:=MIN(MIN(M5,M10),MIN(M10,M20));
A:=MAX(M5,MAX(M10,M20))/MIN(M5,MIN(M10,M20))<1+0.03*M;
A1:=(K1/K2-1)<0.005;
A2:=(K1/K2-1)<0.005;
A3:=V>REF(V,1)*1.5 AND V>MA(V,5);
XG:A AND A1 AND A2 AND A3 AND C>O AND V> REF(V,1) AND CAPITAL<=300000000;

2.三条线粘合
N1:=5;N2:=10;N3:=20;M:=1;
MA1:=MA(C,N1);MA2:=MA(C,N2);MA3:=MA(C,N3);
A3:=V>REF(V,1)*1.5 AND V>MA(V,5);
MAX(MA1,MAX(MA2,MA3))/MIN(MA1,MIN(MA2,MA3))<1+0.01*M
AND C>O AND V> REF(V,1) AND FINANCE(7)<=300000000
AND A3 AND CAPITAL<=300000000;

3.均线粘合
M:=1;
M5:=MA(CLOSE,5);
M10:=MA(CLOSE,10);
M20:=MA(CLOSE,20);
K1:=MAX(MAX(M5,M10),MAX(M10,M20));
K2:=MIN(MIN(M5,M10),MIN(M10,M20));
A:=MAX(M5,MAX(M10,M20))/MIN(M5,MIN(M10,M20))<1+0.01*M;
A1:=(K1/K2-1)<0.005;
A2:=(K1/K2-1)<0.005;
A3:=V>REF(V,1)*1.5 AND V>MA(V,5);
XG:A AND A1 AND A2 AND A3 ;
3. 金叉选股指标
快线:=EMA(EMA(EMA(EMA(CLOSE,2),2),2),2);
慢线:=EMA(REF(快线,1),2);
A3:=V>REF(V,1)*1.5 AND V>MA(V,5);
XG:CROSS(快线,慢线) AND C>O AND
V>=MA(V,21) AND V> REF(V,1) AND CAPITAL<=300000000 ;
4.角度
MA5:=MA(C,5);
MA10:=MA(C,10);
MA20:=MA(C,20);
V0:CROSS(MA5,MA10) AND CROSS(MA10,MA20) AND
CROSS(MA5,MA20) ;
IF(角度MA3>45 AND 角度MA5>40 AND 角度MA10>10
AND 角度MA20>20 AND MA(C,135)>REF(MA(C,135),1),
1,0),COLOR00FF00
1.聚宝盆

DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD2:=2*(DIFF-DEA);
HHV(MACD2,4)<0 AND MACD2>REF(MACD2,1) AND REF(MACD2,1)<REF(MACD2,2) AND REF(MACD2,2)<REF
(MACD2,3);
2.强势股
{SJXXG四均线选股}
MA3:=MA(C,3);
MA5:=MA(C,5);
MA10:=MA(C,10);
MA20:=MA(C,20);
V0:=MA(C,3)>REF(MA(C,3),1) AND MA(C,5)>REF(MA(C,5),1) AND C>MA(C,3)
AND MA(C,3)>MA(C,5) ; {均线C,MA3,MA5多头排列并向上;}
角度MA3:=ATAN((MA3/REF(MA3,1)-1)*100)*180/3.1416;
角度MA5:=ATAN((MA5/REF(MA5,1)-1)*100)*180/3.1416;
角度MA10:=ATAN((MA10/REF(MA10,1)-1)*100)*180/3.1416;
角度MA20:=ATAN((MA20/REF(MA20,1)-1)*100)*180/3.1416;
选股MA20:IF(角度MA3>45 AND 角度MA5>45 AND 角度MA10>60 AND 角度MA20>45 AND MA(C,250)>REF(MA(C,250),1),
1,0),COLOR00FF00;
{设计思路:
1.3日均线角度大于45度;
2:5日均线角度大于45度;
3:10日均线角度大于60度;
4.20日均线角度大于45度;
5.MA250向上;};
3。紫色冲关
(1).
CROSS( CLOSE,MA(C,30))
AND CLOSE>MA(C,22) AND CLOSE>MA(C,30)AND
COUNT(MA(CLOSE,13)>REF(MA(CLOSE,13),1),1)
AND COUNT(MA(CLOSE,8)>REF(MA(CLOSE,8),1),1)
AND COUNT(MA(CLOSE,20)>REF(MA(CLOSE,20),1),1)
AND CLOSE/OPEN>1.015
AND DYNAINFO(37)>0.2% COLORLIBLUE;

(2).
QSXS:=MA(CLOSE,8)>REF(MA(CLOSE,8),1) AND MA(CLOSE,3)>REF(MA(CLOSE,3),1) AND MA(CLOSE,5)>REF(MA(CLOSE,5),1);
DXJC:=CROSS(CLOSE,MA(C,21)) AND CLOSE>MA(C,13) AND CLOSE/OPEN>1.015;
HSL:=VOL/CAPITAL*100;
选股:QSXS AND DXJC AND HSL>2;

(3).
{SJXXG四均线选股}
MA3:=MA(C,1);
MA5:=MA(C,3);
MA10:=MA(C,5);
MA20:=MA(C,10);
V0:=MA(C,1)>REF(MA(C,1),0.5) AND MA(C,3)>REF(MA(C,3),0.5) AND C>MA(C,1)
AND MA(C,1)>MA(C,1) ; {均线C,MA3,MA5,MA10,MA20多头排列并向上;}
角度MA3:=ATAN((MA3/REF(MA3,1)-1)*100)*180/3.1416;
角度MA5:=ATAN((MA5/REF(MA5,1)-1)*100)*180/3.1416;
角度MA10:=ATAN((MA10/REF(MA10,1)-1)*100)*180/3.1416;
角度MA20:=ATAN((MA20/REF(MA20,1)-1)*100)*180/3.1416;
选股MA20:IF(角度MA3>50 AND 角度MA5>40 AND 角度MA10>30
AND 角度MA20>20 AND MA(C,250)>REF(MA(C,250),1),
1,0),COLOR00FF00;
{设计思路:
1.1日均线角度大于40度;
2:3日均线角度大于40度;
3:5日均线角度大于50度;
4.10日均线角度大于40度;
5.MA135向上;};

(4).
{SJXXG四均线选股}
MA3:=MA(C,5);
MA5:=MA(C,10);
MA10:=MA(C,15);
MA20:=MA(C,20);
V0:=MA(C,5)>REF(MA(C,10),1) AND MA(C,10)>REF(MA(C,15),1)
AND MA(C,15)>MA(C,20) ; {均线C,MA3,MA5多头排列并向上;}
角度MA3:=ATAN((MA3/REF(MA3,1)-1)*100)*180/3.1416;
角度MA5:=ATAN((MA5/REF(MA5,1)-1)*100)*180/3.1416;
角度MA10:=ATAN((MA10/REF(MA3,1)-1)*100)*180/3.1416;
角度MA20:=ATAN((MA20/REF(MA5,1)-1)*100)*180/3.1416;
选股MA20:IF(角度MA3>42 AND 角度MA5>25 AND 角度MA10>15 AND 角度MA20>10
AND MA(C,135)>REF(MA(C,135),1),
1,0),COLOR00FF00;
{设计思路:
1.3日均线角度大于30度;
2:5日均线角度大于40度;
3:10日均线角度大于45度;
4.20日均线角度大于40度;
5.MA135向上;};

(5).5日最底

V5:=LLV(V,5);
QSXS:=MA(CLOSE,5)>REF(MA(CLOSE,5),1) AND MA(CLOSE,8)>REF(MA(CLOSE,8),1)
AND MA(CLOSE,21)>REF(MA(CLOSE,21),1);
DXJC:=CROSS(CLOSE,MA(C,21)) AND CLOSE>MA(C,21) AND CLOSE/OPEN>1.015;
HSL:=VOL/CAPITAL*100;
选股:V5 AND QSXS AND DXJC AND HSL>2;
1....{蓄势待发}
V0:=EMA(C,5);
EMA10:=EMA(C,10);
EMA20:=EMA(C,20);
EMA30:=EMA(C,30);
EMA60:=EMA(C,60);
M1:=1000*EMA10/EMA60<=1015 AND 1000*EMA10/EMA60>=975;
M2:=1000*EMA20/EMA60<=1020 AND 1000*EMA20/EMA60>=980;
M3:=1000*EMA30/EMA60<=1015 AND 1000*EMA30/EMA60>=985;
M4:=M1 AND M2 AND M3 AND CROSS(V0,EMA10);
M5:=M1 AND M2 AND M3 AND CROSS(V0,EMA30);
T1:=1000*EMA10/EMA30<=1010 AND 1000*EMA10/EMA30>=990;
T2:=1000*EMA20/EMA30<=1010 AND 1000*EMA20/EMA30>=990;
T3:=T1 AND T2 AND CROSS(V0,EMA10);
T4:=T1 AND T2 AND CROSS(V0,EMA30);
M4 OR M5 OR T3 OR T4;

2.短线之王
VAR1:=(-100)*(HHV(HIGH,3)-CLOSE)/(HHV(HIGH,3)-LLV(LOW,3));
CROSS(VAR1,-87) AND OPEN<MA(CLOSE,5) AND CLOSE>=1.099*REF(CLOSE,1) AND INDEXC>0.98*REF(INDEXC,1) AND CLOSE<=1.47*LLV
(CLOSE,58);

3.枪挑小梁王
W1:=C=HHV(C,20);
W2:=BARSLAST(W1);
W3:=IF(W2>0,REF(C,W2),REF(C,W2));
W4:=CROSS(C,REF(W3,1));
枪挑小梁王:W4 AND COUNT(W4,5)=1;

4.短线之王
VAR1:=(-100)*(HHV(HIGH,3)-CLOSE)/(HHV(HIGH,3)-LLV(LOW,3));
CROSS(VAR1,-87) AND OPEN<MA(CLOSE,5) AND CLOSE>=1.099*REF(CLOSE,1) AND INDEXC>0.98*REF(INDEXC,1) AND CLOSE<=1.47*LLV
(CLOSE,58);
5.财务突破选股
{财务突破选股公式-创幻闲云孤鹤-通信达专用}
年认同价:=MA(C,240);
价格中枢:=(SUM(年认同价,0)/(BARSSINCE(年认同价>0)+239));
箱顶:=价格中枢*1.2;
箱底:=价格中枢*0.8;
毛利润率:=FINANCE(21)/FINANCE(20);
成长价值:=年认同价*(1+毛利润率);
收益价值:=年认同价+FINANCE(33);
回调认同:=EMA(EXPMA(C,20),13);
多头:=(回调认同>REF(回调认同,1))AND(成长价值>REF(成长价值,1))AND(收益价值>REF(收益价值,1))AND(DYNAINFO(7)>0);
回调条件:=COUNT(C<回调认同,5)>=3;
回调突破:=(REF(C,1)<=REF(回调认同,1))AND(C>回调认同)AND(回调条件)AND 多头;
成长条件:=COUNT(C<成长价值,5)>=3;
成长突破:=(REF(C,1)<=REF(成长价值,1))AND(C>成长价值)AND(成长条件)AND 多头;
收益条件:=COUNT(C<收益价值,5)>=3;
收益突破:=(REF(C,1)<=REF(收益价值,1))AND(C>收益价值)AND(收益条件)AND 多头;
箱底条件:=COUNT(C<箱底,5)>=3;
箱底突破:=(REF(C,1)<=REF(箱底,1))AND(C>箱底)AND(箱底条件)AND 多头;
价格条件:=COUNT(C<价格中枢,5)>=3;
价格突破:=(REF(C,1)<=REF(价格中枢,1))AND(C>价格中枢)AND(价格条件)AND 多头;
箱顶条件:=COUNT(C<箱顶,5)>=3;
箱顶突破:=(REF(C,1)<=REF(箱顶,1))AND(C>箱顶)AND(箱顶条件)AND 多头;
突破买点:(回调突破+成长突破+收益突破+箱底突破+价格突破+箱顶突破);

6.横盘是银

VAR1:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
VAR2:=SMA(VAR1,3,1);
VAR3:=SMA(VAR2,3,1);
VAR4:=EMA(CLOSE,12)-EMA(CLOSE,26);
VAR5:=EMA(VAR4,9);
VAR6:=2*(VAR4-VAR5);
COUNT(CROSS(VAR2,VAR3),2)>=1 AND COUNT(CROSS(VAR6,0),5)>=1 AND MA(CLOSE,5)>MA(CLOSE,10) AND MA(CLOSE,10)>MA(CLOSE,20) AND
CLOSE>MA(CLOSE,5);
{“短线是银”的使用说明:
此组合选择比较简单,初学者易于掌握,短线有一定可操作性与准确性。但只适合于3天内的短线炒作,不能确定长期趋势。
选股设置:
2日内KD金叉,5日内MACD金叉,均线5日,10日,20日多头排列,收盘价涨过5日均线。};
7.黑马起步选股1
VAR5:=EMA(SMA((CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100))*100,8,1),3);
选股:CROSS(VAR5,15) OR CROSS(VAR5,20) OR CROSS(VAR5,25);

8.起攀选股
{起攀选股}
VAR6:=(2*C+H+L)/4;
VAR7:=LLV(L,27);
VAR8:=HHV(H,27);
攀登:=EMA((VAR6-VAR7)/(VAR8-VAR7)*100,13)-50;
金山:=EMA(0.618*REF(攀登,1)+0.382*攀登,3);
起攀:CROSS(攀登,金山) AND C/REF(C,1)>1.02;
{根据起攀图指标改编,这是精简后的指标};
9.中短波选股
{中短波选股}
HZ:=EMA(CLOSE,13);
短波:=EMA(HZ,1);
中波:=EMA(HZ,26);
均线148天:=EMA(C,148);
成本:=SUM(AMOUNT,0)/SUM(VOL,0)/100;
HZ2:=EMA(HZ,8);
CROSS(短波,HZ2);
{结合中短波主图使用};
10.黑马摇篮之大
{黑马摇篮之大黑马}
SS1:=(LOW+HIGH+CLOSE*2)/4;
SS2:= MA(SS1,4);
SS3:=HHV(SS2,10);
SS4:=MA(SS3,3);
SS5:=1.25*SS4-0.25*SS3;
XKKJ:=IF(SS5>SS3,SS3,SS5);
FF1:=LLV(SS2,10);
FF2:=MA(FF1,3);
FF3:=1.25*FF2-0.25*FF1;
DKKJ:=IF(FF3<FF1,FF1,FF3);
MA13:=MA(C,13);
ZDHM:=CROSS(C,DKKJ) AND CROSS(C,MA13) AND CROSS(C,XKKJ);
ZHM:=CROSS(C,MA13) AND CROSS(C,XKKJ);
大黑马:ZDHM OR ZHM;
11.黑马摇篮之小
{黑马摇篮之小黑马}
A:=(3*CLOSE+LOW+OPEN+HIGH)/6;
D1:=(20*A+19*REF(A,1)+18*REF(A,2)+17*REF(A,3)+16*REF(A,4)+15*REF(A,5)+14*REF(A,6)
+13*REF(A,7)+12*REF(A,8)+11*REF(A,9)+10*REF(A,10)+9*REF(A,11)+8*REF(A,12)
+7*REF(A,13)+6*REF(A,14)+5*REF(A,15)+4*REF(A,16)+3*REF(A,17)+2*REF(A,18)+
REF(A,20))/211;
D2:=EMA(D1,2);
D3:=EMA(D2,2);
K1:=EMA(D3,2);
小黑马:CROSS(D1,K1);
12.蓄势待发
{蓄势待发}
V0:=EMA(C,5);
EMA10:=EMA(C,10);
EMA20:=EMA(C,20);
EMA30:=EMA(C,30);
EMA60:=EMA(C,60);
M1:=1000*EMA10/EMA60<=1015 AND 1000*EMA10/EMA60>=975;
M2:=1000*EMA20/EMA60<=1020 AND 1000*EMA20/EMA60>=980;
M3:=1000*EMA30/EMA60<=1015 AND 1000*EMA30/EMA60>=985;
M4:=M1 AND M2 AND M3 AND CROSS(V0,EMA10);
M5:=M1 AND M2 AND M3 AND CROSS(V0,EMA30);
T1:=1000*EMA10/EMA30<=1010 AND 1000*EMA10/EMA30>=990;
T2:=1000*EMA20/EMA30<=1010 AND 1000*EMA20/EMA30>=990;
T3:=T1 AND T2 AND CROSS(V0,EMA10);
T4:=T1 AND T2 AND CROSS(V0,EMA30);
M4 OR M5 OR T3 OR T4;
13.四线粘合
{四线粘合}
V0:=EMA(C,5);
V1:=EMA(C,10);
V2:=EMA(C,15);
V3:=EMA(C,30);
V4:=EMA(C,60);
M1:=1000*V1/V4<=1015 AND 1000*V1/V4>=975;
M2:=1000*V2/V4<=1020 AND 1000*V2/V4>=980;
M3:=1000*V3/V4<=1015 AND 1000*V3/V4>=985;
M4:=M1 AND M2 AND M3 AND CROSS(V0,V1);
M5:=M1 AND M2 AND M3 AND CROSS(V0,V3);
M4 OR M5;

14.拉升在即
{拉升在即}
ABV:=MA(SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0)/25000,2);
M1:=EMA(ABV,12);
M2:=EMA(ABV,26);
MTM:=CLOSE-REF(CLOSE,1);
MMS:=((100)*(EMA(EMA(MTM,6),6)))/(EMA(EMA(ABS(MTM),6),6));
MMM:=((100)*(EMA(EMA(MTM,12),12)))/(EMA(EMA(ABS(MTM),12),12));
MML:=((100)*(EMA(EMA(MTM,26),26)))/(EMA(EMA(ABS(MTM),26),26));
A:=((VOL)/(CAPITAL))*(100);
S:=((MA(A,30))/(MA(INDEXA,10)))*(MA(INDEXA,60));
Y:=((MA(A,120))/(MA(INDEXA,10)))*(MA(INDEXA,60));
X:=1;
拉升在即:S<X AND Y<X AND MMS>MML AND ABV>M1 AND CROSS(S,Y);

15.HMYZ黑马易找

VAR1:=MA(CLOSE,5);
VAR2:=MA(CLOSE,10);
VAR3:=MA(CLOSE,30);
VAR4:=MA(CLOSE,60);
VAR5:=EMA(COST(85),7);
VAR6:=EMA(COST(15),7);
VAR7:=SUM(CLOSE*VOL*100,4)/SUM(VOL*100,4);
VAR8:=INTPART(VAR7*100)/100;
VAR9:=SUM(CLOSE*VOL*100,7)/SUM(VOL*100,7);
VARA:=INTPART(VAR9*100)/100;
VARB:=SUM(CLOSE*VOL*100,28)/SUM(VOL*100,28);
VARC:=INTPART(VARB*100)/100;
VARD:=EMA(CLOSE,5)-EMA(CLOSE,10);
VARE:=EMA(VARD,9);
VARF:=(-100)*(HHV(CLOSE,5)-CLOSE)/(HHV(CLOSE,5)-LLV(LOW,5))+100;
VAR10:=(-100)*(HHV(CLOSE,10)-CLOSE)/(HHV(CLOSE,10)-LLV(LOW,10))+100;
VAR11:=(-100)*(HHV(CLOSE,20)-CLOSE)/(HHV(CLOSE,20)-LLV(LOW,20))+100;
VAR12:=(-100)*(HHV(CLOSE,30)-CLOSE)/(HHV(CLOSE,30)-LLV(LOW,30))+100;
VAR13:=REF(VARE,1);
VAR14:=VARE;
VAR15:=VAR14-VAR13;
VAR16:=REF(VARD,1);
VAR17:=VARD;
VAR18:=VAR17-VAR16;
VAR19:=OPEN;
VAR1A:=CLOSE;
黑马易找选股: VAR19<=VAR1 AND VAR19<=VAR2 AND VAR19<=VAR3 AND VAR1A>=VAR1 AND VAR1A>=VARC AND VAR15>0 AND VAR18>0;
16.黑马起步选股2
VAR5:=EMA(SMA((CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100))*100,8,1),3);
选股:CROSS(VAR5,30) OR CROSS(VAR5,35) OR CROSS(VAR5,40);
17.黑马起步选股1
VAR5:=EMA(SMA((CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100))*100,8,1),3);
选股:CROSS(VAR5,15) OR CROSS(VAR5,20) OR CROSS(VAR5,25);
二。主图指标
三。三线买卖
快线:EMA(EMA(EMA(EMA(CLOSE,2),2),2),2),LINETHICK2,COLOR0000FF;
慢线:EMA(REF(快线,1),2),LINETHICK2,COLOR00FFFF;
总趋势:EMA(EMA(EMA(EMA(EMA(CLOSE,55),2),2),2),2),LINETHICK2,COLORFF00FF;
HIGHN:=10;LOWN:=10;HIGHDISPLAY:=0;LOWDISPLAY:=0;ZGDISPLAY:=0;MADISPLAY:=0;
AA:=REF(H,HIGHN)=HHV(H,2*HIGHN+1);
QY:=BACKSET(AA,HIGHN+1);
CC:=FILTER(QY,HIGHN) AND H=HHV(H,HIGHN+1);
DRAWICON(CC,H*1.02,2);
DDD:=BARSLAST(CC);
GDTS:=IF(CC,CURRBARSCOUNT,0);
DINGBU:=IF(DDD,REF(H,DDD),H);{顶部}
DINGBUTS:=IF(DDD,REF(GDTS,DDD),GDTS);
DINGBU1:=REF(DINGBU,DDD+1);
GDCS1:=CONST(DINGBUTS);
DINGBUTS1:=REF(DINGBUTS,DDD+1);
GDCS2:=CONST(DINGBUTS1);
DINGBU2:=REF(DINGBU1,DDD+1);
MM:=IF(CURRBARSCOUNT>GDCS2,0,1);
高点压力:DRAWLINE(CURRBARSCOUNT=GDCS2,H,CURRBARSCOUNT=GDCS1,H,1) COLORGREEN,LINETHICK2;
DRAWLINE(CURRBARSCOUNT=GDCS2,H,ISLASTBAR,REF(H,GDCS2-1),1),COLOR0055FF,POINTDOT;
DRAWLINE(CURRBARSCOUNT=GDCS1,H,ISLASTBAR,REF(H,GDCS1-1),1),COLORYELLOW,POINTDOT;
AA1:=REF(L,LOWN)=LLV(L,2*LOWN+1);
QY1:=BACKSET(AA1,LOWN+1);
CC1:=FILTER(QY1,LOWN) AND L=LLV(L,LOWN+1);
DRAWICON(CC1,L*0.98,1);
DD1:=BARSLAST(CC1);
DDTS:=IF(CC1,CURRBARSCOUNT,0);
YDB:=IF(DD1,REF(L,DD1),L);
DDTS1:=IF(DD1,REF(DDTS,DD1),DDTS);
DDCS1:=CONST(DDTS1);
ZDB:=REF(YDB,DD1+1);
DDTS2:=REF(DDTS1,DD1+1);
DDCS2:=CONST(DDTS2);
低点支撑:DRAWLINE(CURRBARSCOUNT=DDCS2,L,CURRBARSCOUNT=DDCS1,L,1) COLORRED,LINETHICK2;
ZGSTAR:=(高点压力+低点支撑)/2;
ZGEND:=CONST((高点压力+低点支撑)/2);
STARDAY:=IF(DDCS2<GDCS2,DDCS2,GDCS2);
中轨:DRAWLINE(CURRBARSCOUNT=STARDAY,ZGSTAR,ISLASTBAR,ZGEND,1),COLORFF55BB,LINETHICK2;
DRAWLINE(CURRBARSCOUNT=DDCS1,L,ISLASTBAR,REF(L,DDCS1-1),1),COLORMAGENTA,POINTDOT,;
DRAWLINE(CURRBARSCOUNT=DDCS2,L,ISLASTBAR,REF(L,DDCS2-1),1),COLORCYAN,POINTDOT;
四。3线粘合
MA3:EMA(C,3),linethick2; MA5:EMA(C,5),linethick2; MA7:EMA(C,7),linethick2; MA14:EMA(C,14),linethick1,STICK; MA114:EMA
(C,14),linethick2; DRAWICON (cross(MA3,MA7),L*0.985,1);
五.三线乾坤

快线:EMA(EMA(EMA(EMA(CLOSE,2),2),2),2),LINETHICK2,COLOR0000FF;
慢线:EMA(REF(快线,1),2),LINETHICK2,COLOR00FFFF;
总趋势:EMA(EMA(EMA(EMA(EMA(CLOSE,55),2),2),2),2),LINETHICK2,COLORFF00FF;
A1:=REF(H,8)=HHV(H,2*8+1);
B1:=FILTER(A1,8);
C1:=BACKSET(B1,8+1);
D1:=FILTER(C1,8);{高点}
R11:=BACKSET(ISLASTBAR,BARSLAST(D1)+1); S11:=R11>REF(R11,1);
DRAWLINE(D1,H,S11,H,1),COLORBLUE;
A2:=REF(L,8)=LLV(L,2*8+1);
B2:=FILTER(A2,8);
C2:=BACKSET(B2,8+1);
D2:=FILTER(C2,8);{低点}
T11:=BACKSET(ISLASTBAR,BARSLAST(D2)+1); U11:=T11>REF(T11,1);
DRAWLINE(D2,L,U11,L,1),COLORBLUE;
M:=INTPART(3*8/5);
A12:=REF(H,M)=HHV(H,2*M+1);
B12:=FILTER(A12,M);
C12:=BACKSET(B12,M+1);
D12:=FILTER(C12,M);{高点}
R112:=BACKSET(ISLASTBAR,BARSLAST(D12)+1); S112:=R112>REF(R112,1);
DRAWLINE(D12,H,S112,H,1),COLORRED;
A22:=REF(L,M)=LLV(L,2*M+1);
B22:=FILTER(A22,M);
C22:=BACKSET(B22,M+1);
D22:=FILTER(C22,M);{低点}
T112:=BACKSET(ISLASTBAR,BARSLAST(D22)+1); U112:=T112>REF(T112,1);
DRAWLINE(D22,L,U112,L,1),COLORRED;
VAR1111:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR2222:=CROSS(VAR1111,0.9);
VAR3333:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR4444:=CROSS(VAR3333,0.9);
压力:= REF(HIGH,BARSLAST(VAR2222));
STICKLINE(CLOSE,REF(HIGH,BARSLAST(VAR2222)),REF(HIGH,BARSLAST(VAR2222)),0.5,1),COLOREA91B5,LINETHICK3;
支撑:= REF(LOW,BARSLAST(VAR4444));
STICKLINE(CLOSE,REF(LOW,BARSLAST(VAR4444)),REF(LOW,BARSLAST(VAR4444)),0.5,1),COLOR00B4FF,LINETHICK3;
下档线:=(((CLOSE - LLV(LOW,13)) / (HHV(HIGH,13) - LLV(LOW,13))) * 100);
RRRSV:=SMA(下档线,3,1);
KKK:=SMA(RRRSV,3,1);
DDD:=((3 * RRRSV) - (2 * KKK));
JJ12:=(((CLOSE - LLV(LOW,55)) / (HHV(HIGH,55) - LLV(LOW,55))) * 100);
RSV24:=SMA(JJ12,3,1);
K24:=SMA(RSV24,3,1);
D24:=((3 * RSV24) - (2 * K24));
压力2:=IF(CROSS(D24,DDD),HIGH,REF(HIGH,BARSLAST(CROSS(D24,DDD)))),COLORFFFFFF;
底部:=LLV(HIGH,30),COLOR00FF00;
DRAWICON(L<=支撑 AND H>支撑,L,0);
DRAWICON(H>=压力 AND L<压力,H,0);
DRAWICON(CROSS(快线,慢线),L*0.95,5);
DRAWICON(CROSS(慢线,快线),H*1.05,6);
三。副图指标

1。黄金坑
DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD2:=2*(DIFF-DEA);
(CLOSE<0 AND CROSS(DIFF,0),H*1.3),COLOR000080,NODRAW;
(CLOSE<0 AND CROSS(MACD2,0),H*1.3),COLOR000080,NODRAW;
(CLOSE<0 AND CROSS(0,DIFF),H*1.3),COLOR808080,NODRAW;
(CLOSE<0 AND CROSS(0,MACD2),H*1.3),COLOR808080,NODRAW;
DU0:=CROSS(DIFF,0);
UD0:=CROSS(0,DIFF);
TDU0:=BARSLAST(DU0);
TUD0:=BARSLAST(UD0);
DU3:=REF(DU0,1);
UD3:=REF(UD0,1);
TDU3:=BARSLAST(DU3);
TUD3:=BARSLAST(UD3);
UDGLINE:=IF(TDU3<TUD3,REF(HHV(HIGH,2),TDU3),REF(LLV(LOW,2),TUD3));
JDU0:=REF(CLOSE,1)<=REF(UDGLINE,1) AND CLOSE>UDGLINE AND TDU0<TUD0;
JUD0:=REF(CLOSE,1)>=REF(UDGLINE,1) AND CLOSE<UDGLINE AND TUD0<TDU0;
JDU1:=JDU0 AND COUNT(JDU0,TDU0)=1;
JUD1:=JUD0 AND COUNT(JUD0,TUD0)=1;
JDU2:=JDU1 AND REF(BARSLAST(JUD1),1)<REF(BARSLAST(JDU1),1);
JUD2:=JUD1 AND REF(BARSLAST(JUD1),1)>REF(BARSLAST(JDU1),1);
JDU3:=JDU1 AND REF(BARSLAST(JUD1),1)>REF(BARSLAST(JDU1),1);
JUD3:=JUD1 AND REF(BARSLAST(JUD1),1)<REF(BARSLAST(JDU1),1);
BSLINE:=IF(BARSLAST(JDU2)<BARSLAST(JUD2),IF(REF(CROSS(0,MACD2),1),LLV(LOW,2),REF(LLV(LOW,2),BARSLAST(REF(CROSS
(0,MACD2),1)))),IF(REF(CROSS(MACD2,0),1),HHV(HIGH,2),REF(HHV(HIGH,2),BARSLAST(REF(CROSS(MACD2,0),1)))));
STICKLINE(MACD2>=0,0,MACD2,2,1),COLOR0000FF;
STICKLINE(MACD2>=0 AND MACD2<REF(MACD2,1),0,MACD2,2,0),COLOR0000FF;
STICKLINE(MACD2<0,0,MACD2,2,0),COLORFFFF00;
STICKLINE(MACD2<0 AND MACD2>REF(MACD2,1),0,MACD2,2,1),COLORFFFF00;
DIF:DIFF,LINETHICK2,COLOR0000FF;
MACD:DEA,COLORFF0000;
DEF:MACD2,LINETHICK0,COLORFFFF00;
STICKLINE(CLOSE>0,0,0,2,0),COLOR808080;
DEFUT:=BARSLAST(CROSS(MACD2,0));
DEFDT:=BARSLAST(CROSS(0,MACD2));
DEFUL:=IF(MACD2>=0,HHV(MACD2,DEFUT+1),REF(HHV(MACD2,DEFUT+1),DEFDT+1));
DEFDL:=IF(MACD2<0,LLV(MACD2,DEFDT+1),REF(LLV(MACD2,DEFDT+1),DEFUT+1));
DEFU2L:=REF(DEFUL,DEFUT+1);
DEFD2L:=REF(DEFDL,DEFDT+1);
DRAWICON(LLV(MACD2,4)>0 AND MACD2<REF(MACD2,1) AND REF(MACD2,1)>REF(MACD2,2) AND REF(MACD2,2)>REF(MACD2,3),MACD2,2);
DRAWICON(HHV(MACD2,4)<0 AND MACD2>REF(MACD2,1) AND REF(MACD2,1)<REF(MACD2,2) AND REF(MACD2,2)<REF(MACD2,3),MACD2,1);
DRAWICON((JUD1 OR BARSLAST(JDU1)>BARSLAST(JUD1)) AND MACD2>=0 AND REF(MACD2,1)<REF(DEFU2L,1) AND MACD2>DEFU2L,MACD2,5);
DRAWICON((JDU1 OR BARSLAST(JDU1)<BARSLAST(JUD1)) AND MACD2<0 AND REF(MACD2,1)>REF(DEFD2L,1) AND MACD2<DEFD2L,MACD2,3);
VAR111:=JDU1 OR BARSLAST(JDU1)<BARSLAST(JUD1);
VAR112:=HHV(MACD2,4)<0 AND MACD2>REF(MACD2,1) AND REF(MACD2,1)<REF(MACD2,2) AND REF(MACD2,2)<REF(MACD2,3);
2.资金流向
DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIFF,M);
MACD2:=2*(DIFF-DEA);
(CLOSE<0 AND CROSS(DIFF,0),H*1.3),COLOR000080,NODRAW;
(CLOSE<0 AND CROSS(MACD2,0),H*1.3),COLOR000080,NODRAW;
(CLOSE<0 AND CROSS(0,DIFF),H*1.3),COLOR808080,NODRAW;
(CLOSE<0 AND CROSS(0,MACD2),H*1.3),COLOR808080,NODRAW;
DU0:=CROSS(DIFF,0);
UD0:=CROSS(0,DIFF);
TDU0:=BARSLAST(DU0);
TUD0:=BARSLAST(UD0);
DU3:=REF(DU0,1);
UD3:=REF(UD0,1);
TDU3:=BARSLAST(DU3);
TUD3:=BARSLAST(UD3);
UDGLINE:=IF(TDU3<TUD3,REF(HHV(HIGH,2),TDU3),REF(LLV(LOW,2),TUD3));
JDU0:=REF(CLOSE,1)<=REF(UDGLINE,1) AND CLOSE>UDGLINE AND TDU0<TUD0;
JUD0:=REF(CLOSE,1)>=REF(UDGLINE,1) AND CLOSE<UDGLINE AND TUD0<TDU0;
JDU1:=JDU0 AND COUNT(JDU0,TDU0)=1;
JUD1:=JUD0 AND COUNT(JUD0,TUD0)=1;
JDU2:=JDU1 AND REF(BARSLAST(JUD1),1)<REF(BARSLAST(JDU1),1);
JUD2:=JUD1 AND REF(BARSLAST(JUD1),1)>REF(BARSLAST(JDU1),1);
JDU3:=JDU1 AND REF(BARSLAST(JUD1),1)>REF(BARSLAST(JDU1),1);
JUD3:=JUD1 AND REF(BARSLAST(JUD1),1)<REF(BARSLAST(JDU1),1);
BSLINE:=IF(BARSLAST(JDU2)<BARSLAST(JUD2),IF(REF(CROSS(0,MACD2),1),LLV(LOW,2),REF(LLV(LOW,2),BARSLAST(REF(CROSS
(0,MACD2),1)))),IF(REF(CROSS(MACD2,0),1),HHV(HIGH,2),REF(HHV(HIGH,2),BARSLAST(REF(CROSS(MACD2,0),1)))));
STICKLINE(MACD2>=0,0,MACD2,2,1),COLOR0000FF;
STICKLINE(MACD2>=0 AND MACD2<REF(MACD2,1),0,MACD2,2,0),COLOR0000FF;
STICKLINE(MACD2<0,0,MACD2,2,0),COLORFFFF00;
STICKLINE(MACD2<0 AND MACD2>REF(MACD2,1),0,MACD2,2,1),COLORFFFF00;
DIF:DIFF,LINETHICK2,COLOR0000FF;
MACD:DEA,COLORFF0000;
DEF:MACD2,LINETHICK0,COLORFFFF00;
STICKLINE(CLOSE>0,0,0,2,0),COLOR808080;
DEFUT:=BARSLAST(CROSS(MACD2,0));
DEFDT:=BARSLAST(CROSS(0,MACD2));
DEFUL:=IF(MACD2>=0,HHV(MACD2,DEFUT+1),REF(HHV(MACD2,DEFUT+1),DEFDT+1));
DEFDL:=IF(MACD2<0,LLV(MACD2,DEFDT+1),REF(LLV(MACD2,DEFDT+1),DEFUT+1));
DEFU2L:=REF(DEFUL,DEFUT+1);
DEFD2L:=REF(DEFDL,DEFDT+1);
DRAWICON(LLV(MACD2,4)>0 AND MACD2<REF(MACD2,1) AND REF(MACD2,1)>REF(MACD2,2) AND REF(MACD2,2)>REF(MACD2,3),MACD2,2);
DRAWICON(HHV(MACD2,4)<0 AND MACD2>REF(MACD2,1) AND REF(MACD2,1)<REF(MACD2,2) AND REF(MACD2,2)<REF(MACD2,3),MACD2,1);
DRAWICON((JUD1 OR BARSLAST(JDU1)>BARSLAST(JUD1)) AND MACD2>=0 AND REF(MACD2,1)<REF(DEFU2L,1) AND MACD2>DEFU2L,MACD2,5);
DRAWICON((JDU1 OR BARSLAST(JDU1)<BARSLAST(JUD1)) AND MACD2<0 AND REF(MACD2,1)>REF(DEFD2L,1) AND MACD2<DEFD2L,MACD2,3);
VAR111:=JDU1 OR BARSLAST(JDU1)<BARSLAST(JUD1);
VAR112:=HHV(MACD2,4)<0 AND MACD2>REF(MACD2,1) AND REF(MACD2,1)<REF(MACD2,2) AND REF(MACD2,2)<REF(MACD2,3);

3. 变色MACD
(1)
DIFIF1:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEAEA1:=EMA(DIFIF1,9);
MACD1:=2*(DIFIF1-DEAEA1),STICK;
MACD2:=EMA(MACD1,3);
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,1,0),COLORRED;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,1,0),COLORGREEN;
STICKLINE(MACD1<MACD2,0,MACD1,1,0),COLORCBCBC0;
STICKLINE(MACD1>=0 OR MACD1<=0,0,0,50,1),COLORWHITE;
DIFIF1,COLOR33FF33,LINETHICK2;
DEAEA1,COLORYELLOW,LINETHICK2;
MACD:MACD1,NODRAW,COLORMAGENTA;
强:IF(DIFIF1>=DEAEA1,DIFIF1,DRAWNULL),COLORRED,LINETHICK2;
弱:IF(DEAEA1>=DIFIF1,DEAEA1,DRAWNULL),COLORFF9900,LINETHICK2;
DRAWICON(CROSS(DIFIF1,DEAEA1),DIFIF1+0.1,1);
DRAWICON(CROSS(DEAEA1,DIFIF1),-0.5,2);
DRAWTEXT(CROSS(DIFIF1,DEAEA1),DIFIF1,'○'),LINETHICK2, COLORYELLOW;
(2)
DIFIF1:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEAEA1:=EMA(DIFIF1,9);
MACD1:=2*(DIFIF1-DEAEA1),STICK;
MACD2:=EMA(MACD1,3);
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,1,0),COLORRED;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,1,0),COLORGREEN;
STICKLINE(MACD1<MACD2,0,MACD1,1,0),COLORCBCBC0;
STICKLINE(MACD1>=0 OR MACD1<=0,0,0,50,1),COLORWHITE;
DIFIF1,COLOR33FF33,LINETHICK2;
DEAEA1,COLORYELLOW,LINETHICK2;
MACD:MACD1,NODRAW,COLORMAGENTA;
强:IF(DIFIF1>=DEAEA1,DIFIF1,DRAWNULL),COLORRED,LINETHICK2;
弱:IF(DEAEA1>=DIFIF1,DEAEA1,DRAWNULL),COLORFF9900,LINETHICK2;
DRAWICON(CROSS(DIFIF1,DEAEA1),DIFIF1+0.1,1);
DRAWICON(CROSS(DEAEA1,DIFIF1),-0.5,2);
DRAWTEXT(CROSS(DIFIF1,DEAEA1),DIFIF1,'○'),LINETHICK2, COLORYELLOW;

4. 至尊MACD
DIFF:EMA(DCLOSE,12)-EMA(DCLOSE,26);
DEA:EMA(DIFF,9),COLORFFFF00;
MACD:(DIFF-DEA)*2;
STICKLINE(MACD>=0 AND MACD>=REF(MACD,1),0,MACD,1,0),COLORRED;
STICKLINE(MACD>=0 AND MACD<=REF(MACD,1),0,MACD,1,0),COLORGREEN;
STICKLINE(MACD<=0 AND MACD>=REF(MACD,1),0,MACD,1,0),COLORFF00FF;
STICKLINE(MACD<=0 AND MACD<=REF(MACD,1),0,MACD,1,0),COLOR00FFFF;
多转空:=((((LLV(MACD,4)>0) AND (MACD<REF(MACD,1))) AND (REF(MACD,1)>REF(MACD,2))) AND (REF(MACD,2)>REF(MACD,3)));
空转多:=((((HHV(MACD,4)<0) AND (MACD>REF(MACD,1))) AND (REF(MACD,1)<REF(MACD,2))) AND (REF(MACD,2)<REF(MACD,3)));
DRAWICON(多转空,MACD,2);
DRAWICON(空转多,MACD,1);
低位金叉:=CROSS(DIFF,DEA) AND DIFF<-0.1;
DRAWTEXT(低位金叉,DEA,' 低位金叉'),COLORFF00FF;
JCCOUNT:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIFF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,21)=1;
STICKLINE(二次金叉,0,0.2,2,0),COLORFF00FF;
DRAWTEXT(二次金叉,DEA*1.06,'二次金叉'),COLORRED;
A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIFF>REF(DIFF,A1+1) AND CROSS(DIFF,DEA);
DRAWTEXT(底背离,-0.2-MACD,'底背离'),COLORWHITE;
A2:=BARSLAST(REF(CROSS(DEA,DIFF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIFF,A2+1)>DIFF AND CROSS(DEA,DIFF);
DRAWTEXT(顶背离,0.2+MACD,'顶背离'),COLORWHITE;

posted @ 2013-12-08 21:25 ZT文萃 阅读(404) | 评论 (0)编辑 收藏

----start

    有点SQL基础的人都会写INSERT语句,可是有很大一部分人不知道DB2的INSERT语句有三种格式,即:一次插入一行,一次插入多行和从SELECT语句中插入。考虑下面的情况:

 
  1. CREATE TABLE USER  
  2. (  
  3. NAME VARCHAR(20) NOT NULL,---姓名  
  4. BIRTHDAY DATE---生日  
  5. );  

 

 

现在要求你插入一行数据,我们这么写:

 
  1. INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1');  

 

 

现在要求你插入三行数据,我们这么写:

 
  1. INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1');  
  2. INSERT INTO USER (NAME,BIRTHDAY) VALUES ('李四','2000-1-1');  
  3. INSERT INTO USER (NAME,BIRTHDAY) VALUES ('王五','2000-1-1');  

 

 

除此之外,我们还可以这么写:

 
  1. INSERT INTO USER (NAME,BIRTHDAY) VALUES  
  2. ('张三','2000-1-1'),  
  3. ('李四','2000-1-1'),  
  4. ('王五','2000-1-1');  

 

 

那么后一种写法有什么好处呢?有两点好处:

1、性能更好。

2、由于一条语句,所以它们是一个处理单元,要么都插入,要么都不插入。

 

除此之外,我们还可以从SELECT中插入,格式如下:

 
  1. INSERT INTO USER (NAME,BIRTHDAY)   
  2. SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...  

 

 

以上比较简单,我就不举例子了。

 

---更多参见:DB2 SQL 精萃

----声明:转载请注明出处。

----last updated on 2009.11.5

----written by ShangBo on 2009.9.24

----end

posted @ 2013-11-29 21:22 ZT文萃 阅读(136) | 评论 (0)编辑 收藏

ALTER TABLE TBNAME ADD COLUMN COLUMNNAME COLUMNTYPE COLUMNDEFAULTVALUE VALUE;
EG:

ALTER TABLE CIBCMS. T_TOL_CUST_VALIDADDR ADD COLUMN NVIPCORE_CFM_CNT BIGINT DEFAULT 0;

给表添加说明:

COMMENT ON COLUMN CIBCMS.T_TOL_CUST_VALIDADDR.NVIPCORE_CFM_CNT IS '已确认非VIP核心客户数量'


ALTER TABLE TBNAME DROPE COLUMN COLUMNNAME;

posted @ 2013-11-29 21:21 ZT文萃 阅读(249) | 评论 (0)编辑 收藏

1、如何向表中添加字段
alter table 表名 add 字段名 数据类型 default 默认值
说明:数据类型如,varchar(50)
alter table BANK_SOKECT_INFO ADD COLUMN DEPTNO  varchar(8);

2、如何删除表中字段
ALTER table 表名 DROP column 字段名

3、ALTER TABLE — 更改表属性
语法
ALTER TABLE table [ * ]
   ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
   ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
   RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
   RENAME TO newtable
ALTER TABLE table
   ADD table constraint definition
Inputs
table
试图更改的现存表的名称.
column
现存或新的列名称.
type
新列的类型.
newcolumn
现存列的新名称.
newtable
表的新名称.
table constraint definition
表的新的约束定义. New table constraint for the table输出
ALTER
从被更名的列或表返回的信息.
ERROR
如果一个列或表不存在返回的信息.
描述
ALTER TABLE 变更一个现存表的定义.ADD COLUMN 形式用与 CREATE TABLE一样的语法向表中增加一

个新列/字段。ALTER COLUMN 形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只

对新插入的行有效。RENAME 子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的

名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADD table constraint

definition 子句用与 CREATE TABLE一样的语法向表中增加一个新的约束。


4、对现存列改名:
ALTER TABLE distributors RENAME COLUMN address TO city;
5、对现存表改名:
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一个外键约束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES

addresses(address) MATCH FULL

 

DB2取前十条记录:
DB2 => select istop from news where id =370 fetch first 10 rows only  DB2

修改字段长度:
alter table news alter AUTHOR set data type varchar(250)

DB2 => describe table news  DB2

posted @ 2013-11-29 21:20 ZT文萃 阅读(175) | 评论 (0)编辑 收藏

http://hi.baidu.com/hooplee/item/aabdcddde02515e2795daaae

当你想让文档的读者看到的是文档的最终状态,而不是充满了删除线、下划线和边上的批注框,又或是格式错乱,总显示已删除的内容的文档,那么就需要去掉word文档的标记(含修订和批注)。

注:为什么在“视图”——“标记”取消选中,保存后,下次打开还是出现同样问题?

因为你使用修订功能,那么其所作的修改会一直打开,所有插入的批注一直是文档的一部分,直到它们被接受或拒绝(对于批注来说是删除)为止。因此,这方法不能有效去掉word文档的标记。

要去掉文档中的标记(含修订和批注),就需要接受或拒绝更改,以及删除批注。我总结的方法如下:

情况一:文档已出现上述症状(文档充满了删除线、下划线和边上的批注框,又或是格式乱了,总显示已删除的内容,)

1, 在“视图”菜单上,指向“工具栏”,然后单击“审阅”(即打开审阅工具栏)。

2, 在“审阅”工具栏上,单击“显示”,然后选中下列项目:

批注

墨迹注释

插入和删除

正在格式化

审阅者(指向“审阅者”,然后确保选中了“所有审阅者”。)

3,

(1)如果接受所有的修订,单击“接受修订”旁边的小箭头,选中“接受对文档所做的所有修订”

(2)如果您知道要拒绝所有更改,则单击“拒绝修订/删 除批注”旁边的箭头,然后单击“拒绝对文档所做的所有修订”。要除去所有批注,您必须删除它们。单击“拒绝修订/删除批注”旁边的箭头,然后单击“删除文 档中的所有批注”。

(3) 如果你需要确认每一处修订:

A. 在“审阅”工具栏上,单击“后一处修订或批注”从一处修订或批注前进到下处

B. 在“审阅”工具栏上,对每处修订或批注单击“接受修订”或“拒绝修订/删除批注”。

4, 保存文档。

情况二:希望以后不要出现类似问题,即不需要记录我对文档的修改过程。

1, 在“工具”菜单中,取消选择“修订”,此步骤也可以通过快捷健实现:shift+ctrl+E。

2, 在“工具”菜单中,点开“选项”,在“安全性”页面,“隐私选项”中,取消选择“打开或保存时标记可见”,选择“确定”,保存修改。

说明:本文的方法基于本人使用word的积累,不承担因按此操作出现问题的责任,欢迎指正。

posted @ 2013-11-28 14:11 ZT文萃 阅读(259) | 评论 (0)编辑 收藏

http://news.cnfol.com/131125/101,1587,16468268,00.shtml

我为什么从网易离职?

  知乎是个好网站,但我不喜欢它的评论,关闭评论又很没意思,因此把答案写在自己博客里。

  首先,网易是一家好公司,直至现在,我对它仍有感激之情。我在网易待了5年多,最后3年在杭州研究院带相册产品部。“博客、相册、印象派”,那时是杭研在游戏之外的三条产品线,三个部门都挺不容易的。

  网易相册在2006-2008曾经盛极一时,我接手的2009年已经走上了下坡路。全世界的独立相册都在走下坡路。时势变迁,相片的社交价值和媒体价 值压倒性地超过了存储价值,既然有博客相册与空间相册,多少人还需要一个独立相册呢?我发起的几次改版只能延缓下滑,却无法扭转这趋势。

  重新提升相册的数据,也并非不可能。可以加强原图备份,提供更大的免费空间容量——在丁老板那关想都不要想,网易云存储的早夭就是前车之鉴。也可以加强产品设计感,吸引对展示效果敏感的视觉系用户,然而掂量了一下UED配给的视觉资源,就死了这条心。

  其实,我很能理解公司的政策与资源不向相册倾斜。相片存储与流量开销大,用户活跃度低,付费意愿近乎于零,怎么看都是笔赔钱买卖。但作为相册部门负责人,我不甘心坐冷板凳啊,在相册之外又折腾了三个项目。首先是网易摄影。

  摄影社区是我从零创建的项目,当初在偏媒体与偏社区之间摇摆过一阵子,心想社区的发展空间大,就向社区转过去——这是个巨大的坑。门户推广位虽然能带 来流量,用户成分却极杂乱,极难建立统一的价值观与积极的互动氛围,也就做不大社区。当我意识到这一点的时候已经晚了,不上不下,产品并不差但也别想红。

  然后做了为婚纱写真交易定制的类淘宝平台“爱拍”,被野心冲昏头脑,进入一个我完全不熟悉的O2O市场,以惨败告终。门户精准导入目标消费者的成本高昂,推广上压根没法跟地方论坛竞争,产品体验方面的优势略等于空气。这也是我在网易最大的一次挫折。

  还有网易云相册,2011年第一次战App,包括“云存储”与“相片群”两个功能。云存储的口碑还不错,数据却做不大,用户需求不强烈。相片群则再次挫败,低频次的群分享情景很难建立使用习惯(这个领域前仆后继,不断有新应用发布以及仆街)。

  在这么多项目无功而返后,我完全不知道留在网易还能做什么。

  1、继续做相册?做什么,怎么做,脑子里一片空白。相册部门能争取到的设计资源匮乏,大多数时候就一个UI设计师,对应20多人的研发策划运营;运营资源也匮乏,除了四五个运营编制之外啥都没有。我就算有些想法也难以推动。

  2、搭上2011年的移动快车,尝试一些创新的移动项目?开玩笑,移动项目得在移动中心申请人员来开发,哪里申请得到,能维持云相册App都已经谢天谢地。相册自己虽然有十来个程序员,奈何公司不给配Mac,也不配Android测试机……怎么开发?开发个毛。

  3、那时美图秀秀已经很火了,这类相片处理应用的空间固然很大,我这个70后老男人却做不了90后女生用的产品,年龄代沟是个硬伤。

  4、丁老板跟我提过,愿不愿意加入到2011年新启动的云阅读项目里去,可惜我对云阅读没什么感觉,不是它的目标用户,无法感同身受。

  除此之外,别无出路。隔壁的博客部门一开始也觉得自己没出路,后来找到了lofter项目,终于缓了过来。我跟做lofter的哥们聊天,问他如果不 做lofter,整个网易的产品随你挑喜欢的,会选什么?想了半天,回答“没得选”。又问如果lofter没做好,你怎么办?想了半天,回答“不敢想”。

  由此可以看到大公司做产品的苦闷之处。是否能撞到一个有潜力又适合自己的项目,决定了你的命运——这件事情的随机性特别强,主要靠祖上积德。尤其在部 门定位的束缚下,我挣扎了三年,除了给自己涨点exp之外无可斩获。再说人多嘴杂效率低,磨平了产品的棱角,做出来的东西总是平平淡淡没个性,中庸罢了。

  再留下去,就真的是一个混子了。

  2012年初,辞职创业。我创业的动机很单纯,就是想出一款代表作,证明自己除了写好博客也能做好产品。一年后这个目标实现了,6个人做出来的蝉游记 是我在网易带30人团队也搞不掂的,我1个人全包策划交互QA的产出,反倒胜于以前带着5个策划整天开会讨论。总之,团队越小则效率越高,效果也越好。但 我另外设计的五款App就没得进展,全套PSD搁大半年了,实在挤不出时间来研发,而我对其中两款个性之作的得意并不输给蝉游记……这算是创业的另一面 吧。

  唉,有时候会怀疑自己做产品经理是个错误。攥着厚厚一摞没能研发上线的原型,PSD,像妄想家堂吉诃德。

  回顾在网易做产品的三年半,从入门到熟练,成长中确实做了很多蠢事,但即便时光穿梭,以现在的经验与技能再回去打一遍,也不会有什么大动静——我能选 择的项目没一个“有得打”。在互联网行业,选项目是决定性的,其次是配资源,再次才是个人的才能施展。网易内部已有的几个好项目,团队不大,我过去只能 “从总监到策划”,接受不了。重新发起新项目的话,上级最关心的是能画多大饼,否则立项就很困难。团队士气也很低落,都盯着你,嗷嗷待哺地等着你找到一个 好项目回来,可臣妾实在做不到啊。我想做的旅行项目几乎不可能立项,就算立项也不可能为它攒够量身定制的UI/运营/移动研发等配套资源,旧瓶装新酒是没 法玩转的。

  所以在当时的相册部门环境下,我什么都做不了,每天茫然地上班,茫然地下班,人生短暂,我性子又急,没耐心继续等待与寻找适合自己的好项目,这就是为 什么从网易离职的原因。离开差不多两年了,也没看见网易新发起哪个让我有得打的项目(别跟我说易信),所以一点都不后悔辞职。再坐两年冷板凳,痔疮都要扩 散到全身了,而创业固然艰难,至少是为自己认同的产品而战,是老去以后也会怀念的一段经历。

posted @ 2013-11-25 18:30 ZT文萃 阅读(207) | 评论 (0)编辑 收藏

http://blog.csdn.net/chenyanbo/article/details/6866941


xml读取异常Invalid byte 1 of 1-byte UTF-8 sequence


说简单点当你解析别人的xml格式出现这个错误可能就是别人在生成xml时没有保存为utf-8的字符编码格式。

在中文版的window下java的默认的编码为GBK,也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。


xml解析时遇到的编码异常:

  1. org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.  
  2.     at org.dom4j.io.SAXReader.read(SAXReader.java:484)  
  3.     at org.dom4j.io.SAXReader.read(SAXReader.java:321)  
  4.     at com.dataoperate.PaseXml.pXml(PaseXml.java:28)  
  5.     at com.dataoperate.JdbcOp.insertDb(JdbcOp.java:30)  
  6.     at com.dataoperate.JdbcOp.main(JdbcOp.java:89)  
  7. Nested exception:   
  8. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.  
  9.     at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)  
  10.     at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:554)  
  11.     at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)  
  12.     at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(XMLEntityScanner.java:487)  
  13.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2687)  
  14.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)  
  15.     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)  
  16.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)  
  17.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)  
  18.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)  
  19.     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)  
  20.     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)  
  21.     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)  
  22.     at org.dom4j.io.SAXReader.read(SAXReader.java:465)  
  23.     at org.dom4j.io.SAXReader.read(SAXReader.java:321)  
  24.     at com.dataoperate.PaseXml.pXml(PaseXml.java:28)  
  25.     at com.dataoperate.JdbcOp.insertDb(JdbcOp.java:30)  
  26.     at com.dataoperate.JdbcOp.main(JdbcOp.java:89)  
  27. Nested exception: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.  
  28.     at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)  
  29.     at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:554)  
  30.     at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)  
  31.     at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(XMLEntityScanner.java:487)  
  32.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2687)  
  33.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)  
  34.     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)  
  35.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)  
  36.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)  
  37.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)  
  38.     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)  
  39.     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)  
  40.     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)  
  41.     at org.dom4j.io.SAXReader.read(SAXReader.java:465)  
  42.     at org.dom4j.io.SAXReader.read(SAXReader.java:321)  
  43.     at com.dataoperate.PaseXml.pXml(PaseXml.java:28)  
  44.     at com.dataoperate.JdbcOp.insertDb(JdbcOp.java:30)  
  45.     at com.dataoperate.JdbcOp.main(JdbcOp.java:89)  
解决:

1、最简单就是把<?xml version="1.0" encoding="UTF-8"?>改成<?xml version="1.0" encoding="gbk"?>

2、或者把xml打开另存的时候把字符集改为UTF-8后保存

3、在代码解析的时候先把xml重新写一遍

[javascript] view plaincopy
  1. SAXReader reader = new SAXReader();    
  2.  org.dom4j.Document document = reader.read("D:\\ha.xml");    
  3.  OutputFormat of = new OutputFormat();    
  4.  of.setEncoding("UTF-8"); //改变编码方式    
  5.  XMLWriter writer = new XMLWriter(new FileWriter "d:\\dom4j.xml"), of);    

4、直接dom4j读取的时候用io来读,修改字符编码

  1. FileInputStream in = new FileInputStream(new File(fileName));  
  2. Reader read = new InputStreamReader(in,"gbk");  
  3. Document document = reader.read(read);

posted @ 2013-11-25 16:52 ZT文萃 阅读(1144) | 评论 (0)编辑 收藏

来自:
http://www.cnblogs.com/macula/archive/2011/07/27/2118003.html

DOM4J

 

    与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开 源的api。实际项目中,往往选择dom4j来作为解析xml的利器。

 

先来看看dom4j中对应XML的DOM树建立的继承关系

  

针对于XML标准定义,对应于图2-1列出的内容,dom4j提供了以下实现:

  

同时,dom4j的NodeType枚举实现了XML规范中定义的node类型。如此可以在遍历xml文档的时候通过常量来判断节点类型了。

 

常用API

 

class org.dom4j.io.SAXReader

 

  • read  提供多种读取xml文件的方式,返回一个Domcument对象

 

interface org.dom4j.Document

 

  • iterator  使用此法获取node
  • getRootElement  获取根节点

 

interface org.dom4j.Node

 

  • getName  获取node名字,例如获取根节点名称为bookstore
  • getNodeType  获取node类型常量值,例如获取到bookstore类型为1——Element
  • getNodeTypeName  获取node类型名称,例如获取到的bookstore类型名称为Element

 

interface org.dom4j.Element

 

  • attributes  返回该元素的属性列表
  • attributeValue  根据传入的属性名获取属性值
  • elementIterator  返回包含子元素的迭代器
  • elements  返回包含子元素的列表

 

interface org.dom4j.Attribute

 

  • getName  获取属性名
  • getValue  获取属性值

 

interface org.dom4j.Text

 

  • getText  获取Text节点值

 

interface org.dom4j.CDATA

 

  • getText  获取CDATA Section值

 

interface org.dom4j.Comment

 

  • getText  获取注释 

 

 

实例一:

复制代码
  1 //先加入dom4j.jar包    2 import java.util.HashMap;   3 import java.util.Iterator;   4 import java.util.Map;   5    6 import org.dom4j.Document;   7 import org.dom4j.DocumentException;   8 import org.dom4j.DocumentHelper;   9 import org.dom4j.Element;  10   11 /**     12 * @Title: TestDom4j.java  13 * @Package   14 * @Description: 解析xml字符串  15 * @author 无处不在  16 * @date 2012-11-20 下午05:14:05  17 * @version V1.0     18 */  19 public class TestDom4j {  20   21     public void readStringXml(String xml) {  22         Document doc = null;  23         try {  24   25             // 读取并解析XML文档  26             // SAXReader就是一个管道,用一个流的方式,把xml文件读出来  27             //   28             // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档  29             // Document document = reader.read(new File("User.hbm.xml"));  30             // 下面的是通过解析xml字符串的  31             doc = DocumentHelper.parseText(xml); // 将字符串转为XML  32   33             Element rootElt = doc.getRootElement(); // 获取根节点  34             System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称  35   36             Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head  37   38             // 遍历head节点  39             while (iter.hasNext()) {  40   41                 Element recordEle = (Element) iter.next();  42                 String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值  43                 System.out.println("title:" + title);  44   45                 Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script  46   47                 // 遍历Header节点下的Response节点  48                 while (iters.hasNext()) {  49   50                     Element itemEle = (Element) iters.next();  51   52                     String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值  53                     String password = itemEle.elementTextTrim("password");  54   55                     System.out.println("username:" + username);  56                     System.out.println("password:" + password);  57                 }  58             }  59             Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body  60             // 遍历body节点  61             while (iterss.hasNext()) {  62   63                 Element recordEless = (Element) iterss.next();  64                 String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值  65                 System.out.println("result:" + result);  66   67                 Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form  68                 // 遍历Header节点下的Response节点  69                 while (itersElIterator.hasNext()) {  70   71                     Element itemEle = (Element) itersElIterator.next();  72   73                     String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值  74                     String subID = itemEle.elementTextTrim("subID");  75   76                     System.out.println("banlce:" + banlce);  77                     System.out.println("subID:" + subID);  78                 }  79             }  80         } catch (DocumentException e) {  81             e.printStackTrace();  82   83         } catch (Exception e) {  84             e.printStackTrace();  85   86         }  87     }  88   89     /**  90      * @description 将xml字符串转换成map  91      * @param xml  92      * @return Map  93      */  94     public static Map readStringXmlOut(String xml) {  95         Map map = new HashMap();  96         Document doc = null;  97         try {  98             // 将字符串转为XML  99             doc = DocumentHelper.parseText(xml);  100             // 获取根节点 101             Element rootElt = doc.getRootElement();  102             // 拿到根节点的名称 103             System.out.println("根节点:" + rootElt.getName());  104  105             // 获取根节点下的子节点head 106             Iterator iter = rootElt.elementIterator("head");  107             // 遍历head节点 108             while (iter.hasNext()) { 109  110                 Element recordEle = (Element) iter.next(); 111                 // 拿到head节点下的子节点title值 112                 String title = recordEle.elementTextTrim("title");  113                 System.out.println("title:" + title); 114                 map.put("title", title); 115                 // 获取子节点head下的子节点script 116                 Iterator iters = recordEle.elementIterator("script");  117                 // 遍历Header节点下的Response节点 118                 while (iters.hasNext()) { 119                     Element itemEle = (Element) iters.next(); 120                     // 拿到head下的子节点script下的字节点username的值 121                     String username = itemEle.elementTextTrim("username");  122                     String password = itemEle.elementTextTrim("password"); 123  124                     System.out.println("username:" + username); 125                     System.out.println("password:" + password); 126                     map.put("username", username); 127                     map.put("password", password); 128                 } 129             } 130  131             //获取根节点下的子节点body 132             Iterator iterss = rootElt.elementIterator("body");  133             // 遍历body节点 134             while (iterss.hasNext()) { 135                 Element recordEless = (Element) iterss.next(); 136                 // 拿到body节点下的子节点result值 137                 String result = recordEless.elementTextTrim("result");  138                 System.out.println("result:" + result); 139                 // 获取子节点body下的子节点form 140                 Iterator itersElIterator = recordEless.elementIterator("form");  141                 // 遍历Header节点下的Response节点 142                 while (itersElIterator.hasNext()) { 143                     Element itemEle = (Element) itersElIterator.next(); 144                     // 拿到body下的子节点form下的字节点banlce的值 145                     String banlce = itemEle.elementTextTrim("banlce");  146                     String subID = itemEle.elementTextTrim("subID"); 147  148                     System.out.println("banlce:" + banlce); 149                     System.out.println("subID:" + subID); 150                     map.put("result", result); 151                     map.put("banlce", banlce); 152                     map.put("subID", subID); 153                 } 154             } 155         } catch (DocumentException e) { 156             e.printStackTrace(); 157         } catch (Exception e) { 158             e.printStackTrace(); 159         } 160         return map; 161     } 162  163     public static void main(String[] args) { 164  165         // 下面是需要解析的xml字符串例子 166         String xmlString = "<html>" + "<head>" + "<title>dom4j解析一个例子</title>" 167                 + "<script>" + "<username>yangrong</username>" 168                 + "<password>123456</password>" + "</script>" + "</head>" 169                 + "<body>" + "<result>0</result>" + "<form>" 170                 + "<banlce>1000</banlce>" + "<subID>36242519880716</subID>" 171                 + "</form>" + "</body>" + "</html>"; 172  173         /* 174          * Test2 test = new Test2(); test.readStringXml(xmlString); 175          */ 176         Map map = readStringXmlOut(xmlString); 177         Iterator iters = map.keySet().iterator(); 178         while (iters.hasNext()) { 179             String key = iters.next().toString(); // 拿到键 180             String val = map.get(key).toString(); // 拿到值 181             System.out.println(key + "=" + val); 182         } 183     } 184  185 }
复制代码

  

实例二:

复制代码
 1 /**  2  * 解析包含有DB连接信息的XML文件  3  * 格式必须符合如下规范:  4  * 1. 最多三级,每级的node名称自定义;  5  * 2. 二级节点支持节点属性,属性将被视作子节点;  6  * 3. CDATA必须包含在节点中,不能单独出现。  7  *  8  * 示例1——三级显示:  9  * <db-connections> 10  *         <connection> 11  *            <name>DBTest</name> 12  *            <jndi></jndi> 13  *            <url> 14  *                <![CDATA[jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF8]]> 15  *             </url> 16  *            <driver>org.gjt.mm.mysql.Driver</driver> 17  *             <user>test</user> 18  *            <password>test2012</password> 19  *            <max-active>10</max-active> 20  *            <max-idle>10</max-idle> 21  *            <min-idle>2</min-idle> 22  *            <max-wait>10</max-wait> 23  *            <validation-query>SELECT 1+1</validation-query> 24  *         </connection> 25  * </db-connections> 26  * 27  * 示例2——节点属性: 28  * <bookstore> 29  *         <book category="cooking"> 30  *            <title lang="en">Everyday Italian</title> 31  *            <author>Giada De Laurentiis</author> 32  *            <year>2005</year> 33  *            <price>30.00</price> 34  *         </book> 35  * 36  *         <book category="children" title="Harry Potter" author="J K. Rowling" year="2005" price="$29.9"/> 37  * </bookstore> 38  * 39  * @param configFile 40  * @return 41  * @throws Exception 42  */ 43 public static List<Map<String, String>> parseDBXML(String configFile) throws Exception { 44     List<Map<String, String>> dbConnections = new ArrayList<Map<String, String>>(); 45     InputStream is = Parser.class.getResourceAsStream(configFile); 46     SAXReader saxReader = new SAXReader(); 47     Document document = saxReader.read(is); 48     Element connections = document.getRootElement(); 49  50     Iterator<Element> rootIter = connections.elementIterator(); 51     while (rootIter.hasNext()) { 52         Element connection = rootIter.next(); 53         Iterator<Element> childIter = connection.elementIterator(); 54         Map<String, String> connectionInfo = new HashMap<String, String>(); 55         List<Attribute> attributes = connection.attributes(); 56         for (int i = 0; i < attributes.size(); ++i) { // 添加节点属性 57             connectionInfo.put(attributes.get(i).getName(), attributes.get(i).getValue()); 58         } 59         while (childIter.hasNext()) { // 添加子节点 60             Element attr = childIter.next(); 61             connectionInfo.put(attr.getName().trim(), attr.getText().trim()); 62         } 63         dbConnections.add(connectionInfo); 64     } 65  66     return dbConnections; 67 }

posted @ 2013-11-22 21:00 ZT文萃 阅读(239) | 评论 (0)编辑 收藏

转自:http://txy920.blog.163.com/blog/static/1494427820095922212262/

关键字:dom4j xpath

  1. 获取Document
    • SAXReader saxReader = new SAXReader();
    • Document document = saxReader.read(FileUtil.getFileInputStream(fileName));
  2. 查询Element
    • String xpath ="/composites/composite[@type='onDelete']";//查询属性type='ondDelete'的composite
    • List<Element> composites = document.selectNodes(xpath);
  3. xpath语法

选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

下面列出了最有用的路径表达式:

表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性

实例

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式 结果
bookstore 选取 bookstore 元素的所有子节点
/bookstore

选取根元素 bookstore

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore/book 选取所有属于 bookstore 的子元素的 book 元素。
//book 选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book 选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang 选取所有名为 lang 的属性。

谓语(Predicates)

谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

实例

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

路径表达式 结果
/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
//title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
//title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
/bookstore/book[price>35.00] 选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。
/bookstore/book[price>35.00]/title 选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00。

选取未知节点

XPath 通配符可用来选取未知的 XML 元素。

通配符 描述
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点

实例

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果
/bookstore/* 选取 bookstore 元素的所有子节点
//* 选取文档中的所有元素
//title[@*] 选取所有带有属性的 title 元素。

选取若干路径

通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

实例

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果
//book/title | //book/price 选取所有 book 元素的 title 和 price 元素。
//title | //price 选取所有文档中的 title 和 price 元素。
/bookstore/book/title | //price 选取所有属于 bookstore 元素的 book 元素的 title 元素,以及文档中所有的 price 元素。


XPath 轴

轴可定义某个相对于当前节点的节点集。

轴名称 结果
ancestor 选取当前节点的所有先辈(父、祖父等)
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
attribute 选取当前节点的所有属性
child 选取当前节点的所有子元素。
descendant 选取当前节点的所有后代元素(子、孙等)。
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following 选取文档中当前节点的结束标签之后的所有节点。
namespace 选取当前节点的所有命名空间节点
parent 选取当前节点的父节点。
preceding 选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling 选取当前节点之前的所有同级节点。
self 选取当前节点。

位置路径表达式

位置路径可以是绝对的,也可以是相对的。

绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:

绝对位置路径:

/step/step/...

相对位置路径:

step/step/...

每个步均根据当前节点集之中的节点来进行计算。

步(step)包括:

轴(axis)
定义所选节点与当前节点之间的树关系
节点测试(node-test)
识别某个轴内部的节点
零个或者更多谓语(predicate)
更深入地提炼所选的节点集

步的语法:

轴名称::节点测试[谓语]

实例

例子 结果
child::book 选取所有属于当前节点的子元素的 book 节点
attribute::lang 选取当前节点的 lang 属性
child::* 选取当前节点的所有子元素
attribute::* 选取当前节点的所有属性
child::text() 选取当前节点的所有文本子节点
child::node() 选取当前节点的所有子节点
descendant::book 选取当前节点的所有 book 后代
ancestor::book 选择当前节点的所有 book 先辈
ancestor-or-self::book 选取当前节点的所有book先辈以及当前节点(假如此节点是book节点的话)
child::*/child::price 选取当前节点的所有 price 孙。

XPath 运算符

下面列出了可用在 XPath 表达式中的运算符:

运算符 描述 实例 返回值
| 计算两个节点集 //book | //cd 返回所有带有 book 和 ck 元素的节点集
+ 加法 6 + 4 10
- 减法 6 - 4 2
* 乘法 6 * 4 24
div 除法 8 div 4 2
= 等于 price=9.80

如果 price 是 9.80,则返回 true。

如果 price 是 9.90,则返回 fasle。

!= 不等于 price!=9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.80,则返回 fasle。

< 小于 price<9.80

如果 price 是 9.00,则返回 true。

如果 price 是 9.90,则返回 fasle。

<= 小于或等于 price<=9.80

如果 price 是 9.00,则返回 true。

如果 price 是 9.90,则返回 fasle。

> 大于 price>9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.80,则返回 fasle。

>= 大于或等于 price>=9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.70,则返回 fasle。

or price=9.80 or price=9.70

如果 price 是 9.80,则返回 true。

如果 price 是 9.50,则返回 fasle。

and price>9.00 and price<9.90

如果 price 是 9.80,则返回 true。

如果 price 是 8.50,则返回 fasle。

mod 计算除法的余数 5 mod 2 1
参考:

posted @ 2013-11-22 20:56 ZT文萃 阅读(301) | 评论 (0)编辑 收藏

仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页