<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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文萃 閱讀(159) | 評論 (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文萃 閱讀(410) | 評論 (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文萃 閱讀(142) | 評論 (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文萃 閱讀(256) | 評論 (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文萃 閱讀(181) | 評論 (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文萃 閱讀(263) | 評論 (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文萃 閱讀(214) | 評論 (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文萃 閱讀(1147) | 評論 (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文萃 閱讀(242) | 評論 (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文萃 閱讀(307) | 評論 (0)編輯 收藏

    僅列出標題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
    主站蜘蛛池模板: 免费永久国产在线视频| 中国人免费观看高清在线观看二区| 国产亚洲av片在线观看播放| 精品久久久久久久免费加勒比| 精品无码无人网站免费视频| a级片在线免费看| 一级A毛片免费观看久久精品 | 黄色网页免费观看| 亚洲入口无毒网址你懂的| 亚洲视频2020| 亚洲av永久无码精品漫画| 在线观看亚洲天天一三视| jizzjizz亚洲| 国产中文字幕免费| 在线观看免费精品国产| 成人免费视频试看120秒| 青青青免费国产在线视频小草| 免费人妻无码不卡中文字幕系| a成人毛片免费观看| rh男男车车的车车免费网站| 理论亚洲区美一区二区三区| 亚洲成av人无码亚洲成av人| 亚洲日韩国产欧美一区二区三区| 亚洲伦理中文字幕| 亚洲一区二区三区播放在线| 亚洲六月丁香六月婷婷色伊人| 亚洲女人初试黑人巨高清| 亚洲第一页在线观看| 亚洲性猛交xx乱| 亚洲一级毛片中文字幕| 亚洲av无码不卡久久| 亚洲偷自精品三十六区| 亚洲精品无码永久在线观看男男| 亚洲AV成人影视在线观看| 亚洲最大的成人网| 亚洲成AV人片在WWW| 免费国产高清毛不卡片基地| 四虎精品成人免费视频| 国产一区二区三区免费观在线| 国产午夜精品免费一区二区三区| 国产精品免费大片|