本文的算法包含了兩個方面的內(nèi)容: 一、3分鐘周期的第一根K線標(biāo)示顯著顏色; 二、對3分鐘周期的第一根K線做縱向等距畫線---陽線向上畫水平線;陰線向下畫水平線。 (一)、思路步驟: 1.應(yīng)用BARSLAST函數(shù)對當(dāng)前日的分鐘周期的第一個數(shù)據(jù)的位置進行確定; 2.限定首根數(shù)據(jù)的位置條件并計算其基本數(shù)據(jù); 3.首根數(shù)據(jù)的上漲變色條件及滿足條件下的顏色標(biāo)識; 4.首根數(shù)據(jù)的下跌變色條件及滿足條件下的顏色標(biāo)識; 5.首根數(shù)據(jù)的最大振幅; 6. 首根數(shù)據(jù)的上漲條件以及輸出等距水平畫線--- 重點是應(yīng)用IF函數(shù)的條件切換功能,實現(xiàn)了向下水平畫線與向上的水平畫線。 (二)、算法的建立過程: 1. 當(dāng)前日的分鐘周期的第一個數(shù)據(jù)的位置 WZ:=CONST(BARSLAST(DAY!=REF(DAY,1))); 2. 首根數(shù)據(jù)的位置條件及其基本數(shù)據(jù) WZTJ:=CURRBARSCOUNT<=WZ+1; WZH:IF(WZTJ,CONST(REF(H,WZ)),DRAWNULL); WZO:=IF(WZTJ,CONST(REF(O,WZ)),DRAWNULL); WZL:IF(WZTJ,CONST(REF(L,WZ)),DRAWNULL); WZC:=IF(WZTJ,CONST(REF(C,WZ)),DRAWNULL); 3. 首根數(shù)據(jù)的上漲變色條件及滿足條件下的顏色標(biāo)識 ZTJ:=WZC>=WZO AND CURRBARSCOUNT=WZ+1; {漲條件} STICKLINE(ZTJ,WZH,WZL,0,0),COLOR0000FF; STICKLINE(ZTJ,WZC,WZO,3,0),COLOR000099; STICKLINE(ZTJ,WZC,WZO,2,0),COLOR0000BB; STICKLINE(ZTJ,WZC,WZO,1,0),COLOR0000DD; STICKLINE(ZTJ,WZC,WZO,0.3,0),COLOR0000FF; 4. 首根數(shù)據(jù)的下跌變色條件及滿足條件下的顏色標(biāo)識 DTJ:=WZC<WZO AND CURRBARSCOUNT=WZ+1; STICKLINE(DTJ,WZH,WZL,0,0),COLOR00FF00; STICKLINE(DTJ,WZC,WZO,3,0),COLOR009900; STICKLINE(DTJ,WZC,WZO,2,0),COLOR00BB00; STICKLINE(DTJ,WZC,WZO,1,0),COLOR00DD00; STICKLINE(DTJ,WZH,WZL,0,1),COLORGREEN; STICKLINE(DTJ,WZC,WZO,3.2,0),COLOR006600; STICKLINE(DTJ,WZC,WZO,2.6,0),COLOR008800; STICKLINE(DTJ,WZC,WZO,1.9,0),COLOR00AA00; STICKLINE(DTJ,WZC,WZO,1.1,0),COLOR00CC00; STICKLINE(DTJ,WZC,WZO,0.3,0),COLOR00FF00; 5. 首根數(shù)據(jù)的最大振幅 JJ:=WZH-WZL;{間距} 6.首根數(shù)據(jù)的上漲條件2以及輸出等距水平畫線,重點是IF函數(shù)的條件切換,實現(xiàn)了向下水平畫線與向上的水平畫線 ZTJ2:=WZC>=WZO;{漲條件2} IF(ZTJ2,WZH+JJ*(1+M),WZL-JJ*(1+M)); IF(ZTJ2,WZH+JJ*(2+M),WZL-JJ*(2+M)); IF(ZTJ2,WZH+JJ*(3+M),WZL-JJ*(3+M)); IF(ZTJ2,WZH+JJ*(4+M),WZL-JJ*(4+M)); IF(ZTJ2,WZH+JJ*(5+M),WZL-JJ*(5+M)); IF(ZTJ2,WZH+JJ*(6+M),WZL-JJ*(6+M)); (三)、主圖標(biāo)注算法的完整代碼: WZ:=CONST(BARSLAST(DAY!=REF(DAY,1))); WZTJ:=CURRBARSCOUNT<=WZ+1; WZH:IF(WZTJ,CONST(REF(H,WZ)),DRAWNULL); WZO:=IF(WZTJ,CONST(REF(O,WZ)),DRAWNULL); WZL:IF(WZTJ,CONST(REF(L,WZ)),DRAWNULL); WZC:=IF(WZTJ,CONST(REF(C,WZ)),DRAWNULL); ZTJ:=WZC>=WZO AND CURRBARSCOUNT=WZ+1; {漲條件} STICKLINE(ZTJ,WZH,WZL,0,0),COLOR0000FF; STICKLINE(ZTJ,WZC,WZO,3,0),COLOR000099; STICKLINE(ZTJ,WZC,WZO,2,0),COLOR0000BB; STICKLINE(ZTJ,WZC,WZO,1,0),COLOR0000DD; STICKLINE(ZTJ,WZC,WZO,0.3,0),COLOR0000FF; DTJ:=WZC<WZO AND CURRBARSCOUNT=WZ+1; STICKLINE(DTJ,WZH,WZL,0,0),COLOR00FF00; STICKLINE(DTJ,WZC,WZO,3,0),COLOR009900; STICKLINE(DTJ,WZC,WZO,2,0),COLOR00BB00; STICKLINE(DTJ,WZC,WZO,1,0),COLOR00DD00; STICKLINE(DTJ,WZH,WZL,0,1),COLORGREEN; STICKLINE(DTJ,WZC,WZO,3.2,0),COLOR006600; STICKLINE(DTJ,WZC,WZO,2.6,0),COLOR008800; STICKLINE(DTJ,WZC,WZO,1.9,0),COLOR00AA00; STICKLINE(DTJ,WZC,WZO,1.1,0),COLOR00CC00; STICKLINE(DTJ,WZC,WZO,0.3,0),COLOR00FF00; JJ:=WZH-WZL;{間距} ZTJ2:=WZC>=WZO;{漲條件2} IF(ZTJ2,WZH+JJ*(1+M),WZL-JJ*(1+M)); IF(ZTJ2,WZH+JJ*(2+M),WZL-JJ*(2+M)); IF(ZTJ2,WZH+JJ*(3+M),WZL-JJ*(3+M)); IF(ZTJ2,WZH+JJ*(4+M),WZL-JJ*(4+M)); IF(ZTJ2,WZH+JJ*(5+M),WZL-JJ*(5+M)); IF(ZTJ2,WZH+JJ*(6+M),WZL-JJ*(6+M)); |
|