久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    (轉) 編寫指標公式技巧全集(一)

     振波浪清 2009-09-14
    (轉) 編寫指標公式技巧全集(一)
    2008-05-25 20:54:17

    0001--主圖顯示代碼及板塊  
      一、顯示板塊  
      例一:  
      DRAWTEXT(BARPOS=SYSPARAM(2),H,'\N所屬板塊:'+BLKNAME),ALIGN4,COLORYELLOW;
      
      例二:  
      DRAWTEXT(SYSPARAM(2)=BARPOS,C,'所屬板塊:'+BLKNAME),ALIGN4,COLORYELLOW;
      
      例三:  
      DRAWTEXT(SYSPARAM(2)=BARSCOUNT(C),H,'[所屬版塊]:'+BLKNAME),ALIGN4,COLORYELLOW;
      
      二、顯示代碼及板塊  
      S:=STKLABEL;
      DRAWTEXT(SYSPARAM(2)=BARPOS,C,S),ALIGN4,COLORYELLOW;
      DRAWTEXT(BARPOS=SYSPARAM(2),H,'\N 所屬板塊:'+BLKNAME),ALIGN4,COLORYELLOW;{N與所屬板塊之間空六格,以顯示代碼}

      0031--均線多頭排列  
      A1:=MA(C,N1);
      A2:=MA(C,N2);
      A3:=MA(C,N3);
      A4:=MA(C,N4);
      COUNT(A1>A2 AND A2>A3 AND A3>A4,3);
      
      0032--均線空頭排列  
      A1:=MA(C,N1);
      A2:=MA(C,N2);
      A3:=MA(C,N3);
      A4:=MA(C,N4);
      COUNT(A1< A2 AND A2< A3 AND A3< A4,3);

      0033--N日均線向下  
      AA:=MA(C,N);
      BB:=REF(AA,1);
      AA< BB


      0034--N日均線向上  
      AA:=MA(C,N);
      BB:=REF(AA,1);
      AA>BB

      0035--N日均線走平  
      AA:=MA(C,N);
      BB:=REF(AA,1);
      AA=BB

      0036--向前N日至M日出現過均線死叉(P1< P2)  
      AA:=MA(C,P1);
      BB:=MA(C,P2);
      CC:=REF(CROSS(BB,AA),N);
      COUNT(CC,M);

      0037--今日成交量大于N日以來的均量  
      VOL>MA(VOL,N);


      0038--低位密集  
      A1:=COST(85);
      A2:=COST(15);
      A3:=A1-A2;
      A4:=(A1+A2)/2;
      A5:=A3/A4*100<10;
      B1:=HHV(H,120);
      B2:=LLV(L,120);
      B3:=B1-B2;
      B4:=(A4-B2)< B3/2;
      A5 AND B4;

      0039--換手率   
      VOL/CAPITAL*100;

      0040--N日盈虧  
      V1:=VOL/SUM(VOL,N);
      V2:=DMA(CLOSE,V1);
      V3:(CLOSE-V2)/V2*100;

      0041--曲線疊加
      
      指標線的疊加,是為了方便觀看和比較,沒什么其他的意義。  
      一、對指標曲線的變化幅度放大  
      此法,一線變形,另一線不變,但變形線的走勢與原線完全相似。
      
      舉例:C疊加V  
      BC:=HHV(C,N)-LLV(C,N);//N一般取常用主圖上的K線數量
      BV:=HHV(V,N);
      BI:=BC/BV;//疊加比 
      B:=BI[DATACOUNT];//最后一根K線的疊加比,保證疊加比前后統一
      成交量:V,VOLSTICK;
      F:=C/REF(C,1);
      JC:=REF(C,1)*(1+A*F)*B/A;//A-放大倍數,將C的漲跌幅度F放大
      JL:=LLV(JC,N);//平移量。請去掉JC句的=看JL的作用
      收盤價:C,LINETHICK0,COLORYELLOW;//只顯示數值,不畫線
      PARTLINE(C>0,JC-JL[DATACOUNT]),COLORYELLOW;//收盤價趨勢線,只畫線,不顯示數值
      
      通式:  
      曲線X疊加曲線Y  
      BX:=HHV(X,N)-LLV(X,N);
      BY:=HHV(Y,N)-LLV(Y,N);
      BI:=BX/BY;
      B:=BI[DATACOUNT];
      FX:=X/REF(X,1);
      JX:=REF(X,1)*(1+A*FX)*B/A;
      XL:=LLV(JX,N);
      曲線Y:Y;
      曲線X:X,LINETHICK0;//曲線X的值
      PARTLINE(C,JX-XL[DATACOUNT]);//曲線X的線
      
      二、百分比疊加   
      把兩曲線的波動幅度劃成百分比進行疊加  
      此法,兩線都變形,但走勢都與原線完全相似。
      
      舉例:C疊加V  
      HV:=HHV(V,N);
      DV:=HV[DATACOUNT];
      BV:=100/DV;
      V*BV,VOLSTICK;
      HC:=HHV(C,N);
      LC:=LLV(C,N);
      BC:=100/(HC[DATACOUNT]-LC[DATACOUNT]);
      (C-LC[DATACOUNT])*BC;
      
      通式一:
      
      曲線X,曲線Y  
      XH:=HHV(X,N);
      XL:=LLV(X,N);
      XDH:=XH[DATACOUNT];
      XDL:=XL[DATACOUNT];
      BX:=100/(XDH-XDL);
      曲線X:(X-XDL)*BX;
      
      YH:=HHV(Y,N);
      YL:=LLV(Y,N);
      YDH:=YH[DATACOUNT];
      YDL:=YL[DATACOUNT];
      BY:=100/(YDH-YDL);
      曲線Y:(Y-YDL)*BY;
      
      通式二:
      
      X曲線+Y曲線
      
      N:=SYSPARAM(3)-SYSPARAM(2);
      X:=.........; {.........為X曲線定義}
      XH:=HHV(X,N);
      XL:=LLV(X,N);
      XDH:=XH[SYSPARAM(3)];
      XDL:=XL[SYSPARAM(3)];
      BX:=100/(XDH-XDL);
      曲線X:(X-XDL)*BX;
      
      Y:=.........;{.........為Y曲線定義}
      YH:=HHV(Y,N);
      YL:=LLV(Y,N);
      YDH:=YH[SYSPARAM(3)];
      YDL:=YL[SYSPARAM(3)];
      BY:=100/(YDH-YDL);
      曲線Y:(Y-YDL)*BY;
      
      三、固定位置疊加
      
      此法應用不多,僅舉例。
      
      例一:  
      主圖成交量(V疊加C)  
      {M:960,1,2000}
      R0:=M/1000;R:=(L-R0*SYSPARAM(5))/V;
      R1:=LLV(R,SYSPARAM(3)-SYSPARAM(2));R2:=R1[SYSPARAM(3)];
      R3:=LLV(L-R2*V,SYSPARAM(3)-SYSPARAM(2));
      R4:=R3[SYSPARAM(3)];R5:=(R2*V+R4)*0.995;
      STICKLINE(C>=REF(C,1),R5,R0*SYSPARAM(5),6,1)COLORRED;
      STICKLINE(C< REF(C,1),R5,R0*SYSPARAM(5),6,0)COLORCYAN;
      PARTLINE(V>=0,R0*SYSPARAM(5)) COLORWHITE;
      PARTLINE(R5>0,MA(R5,5));
      PARTLINE(R5>0,MA(R5,10));
      PARTLINE(R5>0,MA(R5,20));
      
      例二:
      
      INPUT:N(10,2,999);
      M:=SYSPARAM(3)-SYSPARAM(2);
      X:=C;
      Y:=SUM(IF(CLOSE>REF(CLOSE,1),VOL/CAPITAL,IF(CLOSE< REF(CLOSE,1),-VOL/CAPITAL,0)),0);
      XH:=HHV(X,M); XL:=LLV(X,M); XDH:=XH[SYSPARAM(3)]; XDL:=XL[SYSPARAM(3)];
      BX:=100/(XDH-XDL);
      收盤:C,LINETHICK0,;
      收盤↑:PARTLINE(X>REF(X,1),(X-XDL)*BX),COLORRED;
      收盤↓:PARTLINE(X< REF(X,1),(X-XDL)*BX),COLORCYAN;
      YH:=HHV(Y,M); YL:=LLV(Y,M); YDH:=YH[SYSPARAM(3)]; YDL:=YL[SYSPARAM(3)];
      BY:=100/(YDH-YDL);
      TY:=(Y-YDL)*BY;
      OBV值:Y*1000,LINETHICK0,COLOR007BFF;
      OBV線↑:PARTLINE(Y>REF(Y,1),(Y-YDL)*BY),COLORYELLOW;
      OBV線↓:PARTLINE(Y< REF(Y,1),(Y-YDL)*BY),COLOR009F00;
      A1:=REF(TY,N)=HHV(TY,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); HD:=FILTER(C1,N);
      A2:=REF(TY,N)=LLV(TY,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); LD:=FILTER(C2,N);
      AA:=REF(TY,BARSLAST(HD)); BB:=REF(TY,BARSLAST(LD));A1:=REF(Y,BARSLAST(HD))*1000; B1:=REF(Y,BARSLAST(LD))*1000;
      T1:=BARSLAST(HD)< BARSLAST(LD) AND NOT(HD) ;
      T2:=BARSLAST(HD)>BARSLAST(LD) AND NOT(LD);
      PARTLINE(T1,AA),COLORMAGENTA,LINETHICK2;
      PARTLINE(T2,BB),COLORGREEN,LINETHICK2;
      DRAWNUMBER(T1=0 AND REF(T1,1)>0,REF(AA,1)+0.1,A1,2);
      DRAWNUMBER(T2=0 AND REF(T2,1)>0,REF(BB,1)+0.1,B1,2);
      
      DRAWNUMBER(ISLASTBAR AND T1>0,REF(AA,1)+0.1,A1,2),COLORYELLOW;
      DRAWNUMBER(ISLASTBAR AND T2>0,REF(BB,1)+0.1,B1,2),COLORMAGENTA;



      0042--均線變色  
      MA05:MA(CLOSE,5);
      MA30:MA(CLOSE,30);
      
      IF(MA05< MA30,MA05,MA30),COLORGREEN;
      IF(MA05< MA30,MA30,MA05),COLORRED;
      IF(MA05>MA30,MA30,MA30),COLORBLUE;
      
      DRAWICON(CROSS(MA05,MA30),L*0.98,4);
      DRAWICON(CROSS(MA30,MA05),H*1.02,5);

    0055--底背離 
      LLV(L,60)=L) AND NOT(LLV(DEA,60)=DEA);

      0056--頂背離  
      HHV(H,60)=H) AND NOT(HHV(DEA,60)=DEA);

      0057--N次金叉、死叉  
      0軸上二次金叉  
      COUNT(CROSS(DIF,DEA) AND DEA>0,20)=2 AND CROSS(DIF,DEA) AND
      DEA>0;
      
      0軸上三次金叉  
      COUNT(CROSS(DIF,DEA) AND DEA>0,20)=3 AND CROSS(DIF,DEA) AND
      DEA>0;
      
      0軸上四次金叉  
      COUNT(CROSS(DIF,DEA) AND DEA>0,20)=4 AND CROSS(DIF,DEA) AND DEA>0;
      
      二次金叉  
      EXPLAIN(COUNT(CROSS(DIF,DEA),20)=2 AND CROSS(DIF,DEA);
      
      二次死叉  
      COUNT(CROSS(DEA,DIF),20)=2 AND CROSS(DEA,DIF);

      0058--5分鐘副圖顯示15分鐘K線  
      建公式:0015
      
      C15:CLOSE;
      O15:OPEN;
      H15:HIGH;
      L15:LOW;
      
      建公式:十五K線
      
      C15:="0015.C15#MIN15";
      O15:="0015.O15#MIN15";
      H15:="0015.H15#MIN15";
      L15:="0015.L15#MIN15";
      
      TI:=OPENMINUTES(TIME)=10 OR OPENMINUTES(TIME)=25 OR OPENMINUTES(TIME)=40 OR OPENMINUTES(TIME)=55 OR OPENMINUTES(TIME)=70 OR OPENMINUTES(TIME)=85 OR OPENMINUTES(TIME)=100 OR OPENMINUTES(TIME)=115 OR OPENMINUTES(TIME)=130 OR OPENMINUTES(TIME)=145 OR OPENMINUTES(TIME)=160 OR OPENMINUTES(TIME)=175 OR OPENMINUTES(TIME)=190 OR OPENMINUTES(TIME)=205 OR OPENMINUTES(TIME)=220 OR OPENMINUTES(TIME)=235;
      
      HH15:=IF(TI,H15,C15);
      LL15:=IF(TI,L15,C15);
      
      STICKLINE(C15>O15,C15,O15,10,0),COLORRED;
      STICKLINE(C15>O15 AND H15>C15,HH15,C15,0.1,0),COLORRED;
      STICKLINE(C15>O15 AND O15>L15,O15,LL15,0.1,0),COLORRED;
      STICKLINE(C15<=O15,C15,O15,10,0),COLORGREEN;
      STICKLINE(C15<=O15 AND C15>L15,C15,LL15,0.1,0),COLORGREEN;
      STICKLINE(C15<=O15 AND H15>O15,HH15,O15,0.1,0),COLORGREEN;
      
      注:以大陸股市為例,四小時,其他市場如超過四小時,可在中間語句“TI:=”中以15為系數順序加足,如:OR 250 OR 265……等等。
      

      0059--移動成本
      
      不知道函數算法,計算誤差在所難免。調整參數“%”可看到不同的移動成本。
      
      ///籌碼%
      INPUT:%(90,1,100);
      A:=AMOUNT/V/100;
      成本:FLOOR(COST(50-%/2)*100)/100,COLORYELLOW,LINETHICK0;
      ~:CEILING(COST(50+%/2)*100)/100,COLORYELLOW,LINETHICK0;
      集中度:INTPART((~-成本)/(~+成本)*1000)/10,COLORGREEN;
      平均成本:ROUND(COST(50)*100)/100,LINETHICK0;
      穿透力:(WINNER(C)-REF(WINNER(C),1))/V*CAPITAL,LINETHICK0;//計算誤差大
      //穿透力2:(WINNER(C)-WINNER(O))/V*CAPITAL,LINETHICK0;//這一寫法還是誤差大
      獲利比例:ROUND(WINNER(C)*1000)/10,LINETHICK0;

    0059--移動成本
      
      不知道函數算法,計算誤差在所難免。調整參數“%”可看到不同的移動成本。
      
      ///籌碼%
      INPUT:%(90,1,100);
      A:=AMOUNT/V/100;
      成本:FLOOR(COST(50-%/2)*100)/100,COLORYELLOW,LINETHICK0;
      ~:CEILING(COST(50+%/2)*100)/100,COLORYELLOW,LINETHICK0;
      集中度:INTPART((~-成本)/(~+成本)*1000)/10,COLORGREEN;
      平均成本:ROUND(COST(50)*100)/100,LINETHICK0;
      穿透力:(WINNER(C)-REF(WINNER(C),1))/V*CAPITAL,LINETHICK0;//計算誤差大
      //穿透力2:(WINNER(C)-WINNER(O))/V*CAPITAL,LINETHICK0;//這一寫法還是誤差大
      獲利比例:ROUND(WINNER(C)*1000)/10,LINETHICK0;
      
      0060--妙用SUMBARS()函數
      
      SUMBARS(X,N)
      
      函數的用法如下:
      
      向前累加到指定值到現在的周期數。
      
      用法:  
      SUMBARS(X,A)  
      將X向前累加直到大于等于A,返回這個區間的周期數
      
      例如:
        SUMBARS(VOL,CAPITAL)
      
      1、設計一個指標,計算當日成交量是幾天內的最高成交量? 
      2、設計一個指標,計算當日最高價是幾天內的最高價?  
      提示:直接用HHV()函數無法得到正確結果。
      
      例一:  
      B:=HHV(H,0);
      A:=IF(BARPOS=1,B[DATACOUNT]*1.2,H);
      價:SUMBARS(REF(A,1)-A,0);
      
      U:=HHV(V,0);
      S:=IF(BARPOS=1,U[DATACOUNT]*1.2,V);
      量:SUMBARS(REF(S,1)-S,0);
      
      或: 
      VH:=HHV(VOL,0);
      FV:=IF(BARPOS=1,VH[DATACOUNT]*1.2,VOL); //VH[DATACOUNT]是歷史最高成交量
      量創新高周期數:SUMBARS(REF(FV,1)-FV,0);
      {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
      
      另一種寫法:
      VH:=HHV(VOL,0);
      FV:=VOL;
      FV[1]:=VH[DATACOUNT]*1.2; //VH[DATACOUNT]是歷史最高成交量
      量創新高周期數:SUMBARS(REF(FV,1)-FV,0);
      {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
      
      代碼已經成功了,原理是什么呢?
      
      假設某日成交量是3日內的最大成交量,則必有:  
      REF(VOL,3)-VOL>=0
      等價于:  
      (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL) >=0
      
      意思就是說,“昨成交量與今成交量之差”逐日累加,直到某日累加和大于等于0,則這之間的天數,就是所要求的日數。
      
      我們再來看看SUMBARS()函數的含義:  
      SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區間的周期數。
      
      顯然上面的式子:  
      (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL)>=0
      
      可以寫成:  
      SUMBARS(REF(VOL,1)-VOL, 0);  
      為何第1周期的成交量要替換成比所有成交量都大的數值?最后,再來思考一個問題,把題目中的求“最大”,改成求“最小”,即多少天內是最小的?
      
      例二:  
      B:=HHV(H,0);
      A:=IF(BARPOS=1,9999,H);
      Z:SUMBARS(REF(A,1)-A,0);
      DRAWNUMBER(BARPOS=SYSPARAM(1),1,Z,0)ALIGN4,COLORWHITE;
      
      U:=HHV(V,0);
      S:=IF(BARPOS=1,999999999999,V)
      Y:SUMBARS(REF(S,1)-S,0);
      DRAWNUMBER(BARPOS=SYSPARAM(1),1,Y,0)ALIGN3,COLORYELLOW;
      
      例三:
      
      HH:=IF(BARSCOUNT(C)=1,9999,H);
      ZH:SUMBARS(REF(HH,1)-HH,0);//價創了N周期新高  
      VH:=IF(BARSCOUNT(C)=1,99999999,V);
      HV:SUMBARS(REF(VH,1)-VH,0);//量創了N周期新高
      
      LL:=IF(BARSCOUNT(C)=1,0,L);
      ZL:SUMBARS(LL-REF(LL,1),0);//價創了N周期新低
      
      VL:=IF(BARSCOUNT(C)=1,0,V);
      LV:SUMBARS(VL-REF(VL,1),0);//量創了N周期新低
      
      附注:  
      用99999999等具體數值,最好是盡可能大的數值(比如單精數的上限),否則仍有可能無法全部完成計算,比如上證指數的年線,成交量最大時,仍然超過了99999999。
      
      倒數第6天的最高價格怎么表示?
      
      FH:=HIGH;
      FH[DATACOUNT-5]; //倒數第6天的最高價格。
      
      [DATACOUNT]
      
      返回K線的數量,即總共有多少根K線。
      

      0061--取得K線的序號
      
      取得K線的序號,正序有下面幾種方法:(從1數起)
      
      BARPOS; 
      SX:BARSCOUNT(CLOSE);  
      SY:SUM(1,0);
      DATACOUNT;{不隨光標變動,只顯示最后K線序號}
      
      逆序可用下列方法取得:(從1數起)  
      (DATACOUNT-BARPOS)+1;   
      (DATACOUNT-BARSCOUNT(CLOSE))+1;  
      (DATACOUNT-SUM(1,0))+1;
      
      0062--變量宣告   
      指定敘述:經過指定宣告后,飛狐才認識AA、BB、CC,否則會出現"未定義的標示符號"。所謂"定義",程序語言的用語,就叫做"變量宣告"。  
      AA:OPEN;{宣告OPEN,指定給AA→輸出的表達式}   
      BB:HIGH,LINETHICK0;{宣告HIGH,指定給BB→輸出的表達式→秀數值但不秀線圖}   
      CC:=CLOSE;{宣告CLOSE,指定給CC→不輸出的表達式→不秀數值也不秀線圖}   
      DD:(AA+BB+CC)/3;{;分號,告訴程序要換行執行了}   
      EE:=(AA+CC)/2;
      PARTLINE(CLOSE>0,EE);{秀線圖但不秀數值}
      
      注:{ }大括號內或在//后面,可用來輸入公式批注。
      
      0063--跨周期引用數據   
      (一)指針線公式的運算,大部份都是代入開、高、低、收、量等數據去運算的。  
      (二)開、高、低、收、量又分成下面四種型式出現:  
      開、高、低、收、量(基本的日K線數據)
      開、高、低、收、量(周K線數據)
      開、高、低、收、量(月K線數據)
      開、高、低、收、量(年K線數據)
      
      (三)所以當指針線公式運算,要代入下面數據時:
      
      開、高、低、收、量(周K線數據)
      開、高、低、收、量(月K線數據)
      
      #WEEK 和 #MONTH 就會派上用場。
      
      (四)舉例:  
      公式A.建立一個專門被用來引用(QUOTE)的公式區。  
      公式名稱:QU  
      A1:(OPEN+HIGH+LOW+CLOSE)/4;  
      說明:上面公式的運算,是代入開、高、低、收(當前周期K線數據)運算的。
      
      公式B.  
      公式名稱:AA  
      AA:"QU.A1#WEEK";  
      說明:將下面公式的運算,代入開、高、低、收(周K線數據)運算。
      
      (OPEN+HIGH+LOW+CLOSE) / 4
      
      公式C.
      
      公式名稱:BB
      
      BB:"QU.A1#MONTH";
      
      說明:將下面公式的運算,代入開、高、低、收(月K線數據)運算。
      
      (OPEN+HIGH+LOW+CLOSE)/4
      
      附注:
      
      可供引用的周期類型有:
      
      MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH
      
      分別表示將1,5,15,30,60分鐘K線數據,以及日,周,月K線數據,代入被引用的公式,進行運算。
      
      意義:
      
      可將大周期內跑的數據,引用到小周期內來跑。將小周期內跑的數據,引用到大周期內來跑,就會有問題,因為時間橫坐標不一樣了。
      
      公式(1):先建立即將被引用的表達式
      
      將公式建立在:技術指針 ( ●主圖疊加 ○主圖 )
      
      公式名稱:NH
      
      AA:=HIGH< REF(HIGH,1);{不輸出的表達式,如果被引用還是會變成不輸出的表達式}
      BB:=BARSLAST(AA=1);
      CC:REF(HIGH,BB); {輸出的表達式,如果被引用還是會變成輸出的表達式}
      
      說明:
      
      上面公式的運算,是以當周期時間數列數據運算的。
      
      公式(2):
      
      將公式建立在:技術指針 ( ●主圖疊加 ○主圖 )
      
      公式名稱:NHH
      
      AA:"NH.AA#WEEK";{不輸出的表達式}
      BB:"NH.BB#WEEK";
      CC:"NH.CC#WEEK";{輸出的表達式}
      DRAWNUMBER(ISLASTBAR,CC,CC,2);
      
      說明:上面公式的運算,是以周周期時間數列數據運算的。

    0064--未來數據、未知數據
      
      寫公式,首先要對已知數據(過去式)、未知數據(未完成式、現在進行式)有通盤的認知。
      
      可將"未來"分為兩種情況:
      
      1、實時行情中:在一根K線。
      
      以實時行情中的當前日K線為例。除了O之外,其它H、L、C全有未來之嫌。因為在收盤之前,拉高、打壓是司空見慣的事,誰也不能保證H、L不會創出當天的新高和新低,更不用說C了。又如日線周期公式"C>REF(C,1);",前一分鐘信號成立,后一分鐘可能信號就不成立了。另外,如引用了周K 和月K數據,因為當前周K和月K還在變動之中,所以也是未來資料。
      
      2、盤后中:在多根K線。
      
      因為在盤后,日K中的四大要素O、H、L、C就沒有未來之可能了。在盤后,除了周五之外,引用的周K指針也是未來數據。除了在月末,引用的月K指針也是未來數據。
      
      總而言之,指針公式就分這兩種:
      
      線圖信號的確定→全都用已知數據(過去式)來決定。
      線圖信號的確定→有用到未知數據(未完成式、現在進行式)來決定。
      
      ZIG函數
      
      ZX:ZIG(CLOSE,8);
      
      最近這次峰點、谷點的確定,也常處在未完成式的狀態中。
      
      打個比喻,線圖信號的確定→有用到未知數據(未完成式、現在進行式),例如,在實時盤中一根日K線的收盤價變來變去,指針線圖當然隨之而起舞。
      
      ZIG函數只是把格局放大,N的日K組合而成的一根多日K線,這一根多日K線的收盤價變來變去,指針線圖當然隨之而起舞。
      
      0065--主圖KD
      
      在主圖上,坐標是以K線的價格為主。如何將在0與100中游走的KD指針附加上去,這是寫作指針的基本邏輯觀念的運用。
      PARAM#1( N,9,2,100 )
      PARAM#2( M1,3,1,40 )
      PARAM#3( M2,3,1,40 )
      
      RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100 LINETHICK0;{:=運算過程不顯示值與圖}
      K:SMA(RSV,3,1),LINETHICK0,COLORWHITE;{LINETHICK0只顯值不顯圖}
      D:SMA(K,3,1),LINETHICK0,COLORYELLOW;
      
      HH:=SYSPARAM(4);{主圖可見K線最高價}
      LL:=SYSPARAM(5);{主圖可見K線最低價}
      
      KK:=K/100*(HH-LL)+LL;
      DD:=D/100*(HH-LL)+LL;
      
      PARTLINE(1=1,KK),COLORWHITE; {條件成立時,則顯示圖線形}
      PARTLINE(C>0,DD),COLORYELLOW;
      
      C;{顯示收盤價的值與圖線形}
      PARTLINE(C>=REF(C,1),C),COLORRED;{顯示收盤價的圖改成漲紅跌綠聯機圖}
      PARTLINE(C< REF(C,1),C),COLORGREEN;
     

      0066--描繪K線  
      例一:普通 
      將下列公式建立在:技術指針 ( ○主圖疊加 ●主圖 ) 
      公式名稱:KL
      
      STICKLINE( ISUP , HIGH , LOW , 0.1 , 0 ) , COLORRED ;
      STICKLINE( ISUP , CLOSE , OPEN , 8 , 1 ) , COLORRED ;
      STICKLINE( ISDOWN , HIGH , LOW , 0.1 , 0 ) , COLORCYAN ;
      STICKLINE( ISDOWN , CLOSE , OPEN , 8 , 0 ) , COLORCYAN ;
      
      STICKLINE( ISEQUAL AND C>REF( C , 1 ) , HIGH , LOW , 0.1 , 0 ) , COLORRED ;
      STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ) , COLORRED ;
      STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , HIGH , LOW , 0.1 , 0 ) , COLORCYAN ;
      STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ) , COLORCYAN ;
      
      X:=BARSCOUNT( CLOSE ) ;
      
      {以下是描繪第一個交易日的K線,以補前面含蓋的不足}
      
      STICKLINE( ISEQUAL AND X = 1 , HIGH, LOW, 0.1, 0 ) , COLORRED ;
      STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 8 , 0 ) , COLORRED ;
      
      說明:
      
      ISUP函數:相當于 IF( CLOSE>OPEN , 1 , 0 )。  
      ISEQUAL函數:相當于 IF( CLOSE=OPEN , 1 , 0 )。  
      ISDOWN函數:相當于 IF( CLOSE < OPEN , 1 , 0 )。  
      STICKLINE函數,畫出來的對象有重疊覆蓋性:→后畫的對象可覆蓋先畫的對象。
      
      例二:配色
      
      STICKLINE( ISUP , HIGH , LOW , 0.1 , 0 ),COLOR04FEFC ;
      STICKLINE( ISUP , CLOSE , OPEN , 8 , 0 ),COLOR0466FC ;
      STICKLINE( ISUP , CLOSE , OPEN , 3 , 0 ),COLOR04FEFC ;
      STICKLINE( ISDOWN , HIGH , LOW , 0.1 , 0 ),COLORFCFE04 ;
      STICKLINE( ISDOWN , CLOSE , OPEN , 8 , 0 ),COLORFC6604 ;
      STICKLINE( ISDOWN , CLOSE , OPEN , 3 , 0 ),COLORFCFE04 ;
      
      STICKLINE( ISEQUAL AND C>REF( C , 1 ) , HIGH , LOW , 0.1 , 0 ),COLOR04FEFC ;
      STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ),COLOR0466FC ;
      STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 3 , 0 ),COLOR04FEFC ;
      STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , HIGH , LOW , 0.1 , 0 ),COLORFCFE04 ;
      STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ),COLORFC6604 ;
      STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 3 , 0 ),COLORFCFE04 ;
      
      X:=BARSCOUNT( CLOSE ) ;
      
      {以下是描繪第一個交易日的K線,以補前面含蓋的不足}
      
      STICKLINE( ISEQUAL AND X = 1 , HIGH, LOW, 0.1, 0 ),COLOR04FEFC ;
      STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 8 , 1 ),COLOR0466FC ;
      STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 3 , 1 ),COLOR04FEFC ;
      

      0067--分時K線當天K線序號
      
      范例:開盤第一根分時K線,指定一個值=1給它,其它為0。  
      XA:REF(DATE,1)<>DATE, STICK;
      
      范例:每天的分時K線,指定它的當天K線序號給它  
      XA:=REF(DATE,1)<>DATE, STICK;   
      XB:BARSLAST(XA=1) + 1 ,STICK;
      
      應用:每天在分時K線,累計成交張數  
      XA:=REF(DATE,1)<>DATE , STICK;   
      XB:=BARSLAST(XA=1) + 1 ,STICK;  
      SV:SUM( VOL , XB ) ;
      
      范例:標記今天分時K線的今天K線序號。過了午夜12點,就又要等早盤開盤后序號數字才會出現
      
      XA:=CURRENTDATE=DATE ;
      XB:=REF(XA , 1)<>XA ;
      
      XC:HHVBARS(XB , 0) + XA ;
      
      應用:13均線今天當下最后數值向后延申,畫平臺線。
      
      XA:=CURRENTDATE=DATE ;
      XB:=REF(XA , 1)<>XA ;
      
      XC:=HHVBARS(XB , 0) + XA ;
      
      XD:=MA(C,13);
      
      XE:=REFX(XD , 300);
      XF:IF(XC>=0 , XE , 0) ,LINETHICK0,COLOR99FFFF;
      PARTLINE(XC>=1 , XF) ,COLOR99FFFF;
      

      0068--系統參數函數
      
      這組函數,應用在取得當前可視主圖區內的一些數字信息,如下所示:  
      1.當前十字光標所在位置,那根K線的序號;
      2.當前可視主圖區,最初那根K線的序號;
      3.當前可視主圖區,最后那根K線的序號;
      4.當前可視主圖區,最高價;
      5.當前可視主圖區,最低價。
      
      注:但須調出十字光標后,這組函數才能發生作用。否則回傳的值是不確定的。 
      SYSPARAM(1)
      SYSPARAM(2)
      SYSPARAM(3)
      SYSPARAM(4)
      SYSPARAM(5)
      
      函數:SYSPARAM(1)
      說明: 回傳當前 十字光標所在位置那根K線的序號
      
      函數:SYSPARAM(2)
      說明: 回傳當前可視主圖區 最初那根K線的序號
      
      函數:SYSPARAM(3)
      說明: 回傳當前可視主圖區 最后那根K線的序號
      
      函數:SYSPARAM(4)
      說明: 回傳當前可視主圖區 最高價
      
      函數:SYSPARAM(5)
      說明: 回傳當前可視主圖區 最低價
      
      范例:
      
      將公式建立在:技術指針 ( ●主圖疊加 ○主圖 )
      
      SS:=SYSPARAM( 1 ) ;
      DD:=SUM( 1 , 0 ) ;
      
      CC:CLOSE * 1.07 , LINETHICK0 , COLORYELLOW ;
      
      PARTLINE( SS>=DD , CC ) , COLORYELLOW ;
      
      注:
      
      DD:SUM( 1 , 0 ) ;
      SS:SYSPARAM( 1 ) ;
      
      上面兩者,顯然有明顯的不同之處。
      
      1.DD是一組變量型時間數列,代表K線的序號。
      
      2.SS是隱含有N組常數型時間數列(N=這支股票的K線總數)。
      
      DD:SUM(1,0)
      
      以數學的二維空間F(X)=Y表示:Y=X
      
      SS:SYSPARAM(1)
      
      以數學的二維空間F(X)=Y表示,其中A屬正整數:Y=A
      
      SUM(1,0)=SYSPARAM(1)意指,下面兩條線交叉成立的那一點:
      
      Y=X
      
      Y=A
      
      范例:
      
      MA1:=MA(CLOSE,5);
      MA2:=MA(CLOSE,13);
      
      XA:=CROSS(MA1,MA2) ;
      
      XB:IF(XA=1,SUM(1,0),0);{條件成立時回傳它的K線序號}

    [color=Indigo]0059--移動成本
      
      不知道函數算法,計算誤差在所難免。調整參數“%”可看到不同的移動成本。
      
      ///籌碼%
      INPUT:%(90,1,100);
      A:=AMOUNT/V/100;
      成本:FLOOR(COST(50-%/2)*100)/100,COLORYELLOW,LINETHICK0;
      ~:CEILING(COST(50+%/2)*100)/100,COLORYELLOW,LINETHICK0;
      集中度:INTPART((~-成本)/(~+成本)*1000)/10,COLORGREEN;
      平均成本:ROUND(COST(50)*100)/100,LINETHICK0;
      穿透力:(WINNER(C)-REF(WINNER(C),1))/V*CAPITAL,LINETHICK0;//計算誤差大
      //穿透力2:(WINNER(C)-WINNER(O))/V*CAPITAL,LINETHICK0;//這一寫法還是誤差大
      獲利比例:ROUND(WINNER(C)*1000)/10,LINETHICK0;
      
      0060--妙用SUMBARS()函數
      
      SUMBARS(X,N)
      
      函數的用法如下:
      
      向前累加到指定值到現在的周期數。
      
      用法:  
      SUMBARS(X,A)  
      將X向前累加直到大于等于A,返回這個區間的周期數
      
      例如:
        SUMBARS(VOL,CAPITAL)
      
      1、設計一個指標,計算當日成交量是幾天內的最高成交量? 
      2、設計一個指標,計算當日最高價是幾天內的最高價?  
      提示:直接用HHV()函數無法得到正確結果。
      
      例一:  
      B:=HHV(H,0);
      A:=IF(BARPOS=1,B[DATACOUNT]*1.2,H);
      價:SUMBARS(REF(A,1)-A,0);
      
      U:=HHV(V,0);
      S:=IF(BARPOS=1,U[DATACOUNT]*1.2,V);
      量:SUMBARS(REF(S,1)-S,0);
      
      或: 
      VH:=HHV(VOL,0);
      FV:=IF(BARPOS=1,VH[DATACOUNT]*1.2,VOL); //VH[DATACOUNT]是歷史最高成交量
      量創新高周期數:SUMBARS(REF(FV,1)-FV,0);
      {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
      
      另一種寫法:
      VH:=HHV(VOL,0);
      FV:=VOL;
      FV[1]:=VH[DATACOUNT]*1.2; //VH[DATACOUNT]是歷史最高成交量
      量創新高周期數:SUMBARS(REF(FV,1)-FV,0);
      {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
      
      代碼已經成功了,原理是什么呢?
      
      假設某日成交量是3日內的最大成交量,則必有:  
      REF(VOL,3)-VOL>=0
      等價于:  
      (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL) >=0
      
      意思就是說,“昨成交量與今成交量之差”逐日累加,直到某日累加和大于等于0,則這之間的天數,就是所要求的日數。
      
      我們再來看看SUMBARS()函數的含義:  
      SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區間的周期數。
      
      顯然上面的式子:  
      (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL)>=0
      
      可以寫成:  
      SUMBARS(REF(VOL,1)-VOL, 0);  
      為何第1周期的成交量要替換成比所有成交量都大的數值?最后,再來思考一個問題,把題目中的求“最大”,改成求“最小”,即多少天內是最小的?
      
      例二:  
      B:=HHV(H,0);
      A:=IF(BARPOS=1,9999,H);
      Z:SUMBARS(REF(A,1)-A,0);
      DRAWNUMBER(BARPOS=SYSPARAM(1),1,Z,0)ALIGN4,COLORWHITE;
      
      U:=HHV(V,0);
      S:=IF(BARPOS=1,999999999999,V)
      Y:SUMBARS(REF(S,1)-S,0);
      DRAWNUMBER(BARPOS=SYSPARAM(1),1,Y,0)ALIGN3,COLORYELLOW;
      
      例三:
      
      HH:=IF(BARSCOUNT(C)=1,9999,H);
      ZH:SUMBARS(REF(HH,1)-HH,0);//價創了N周期新高  
      VH:=IF(BARSCOUNT(C)=1,99999999,V);
      HV:SUMBARS(REF(VH,1)-VH,0);//量創了N周期新高
      
      LL:=IF(BARSCOUNT(C)=1,0,L);
      ZL:SUMBARS(LL-REF(LL,1),0);//價創了N周期新低
      
      VL:=IF(BARSCOUNT(C)=1,0,V);
      LV:SUMBARS(VL-REF(VL,1),0);//量創了N周期新低
      
      附注:  
      用99999999等具體數值,最好是盡可能大的數值(比如單精數的上限),否則仍有可能無法全部完成計算,比如上證指數的年線,成交量最大時,仍然超過了99999999。
      
      倒數第6天的最高價格怎么表示?
      
      FH:=HIGH;
      FH[DATACOUNT-5]; //倒數第6天的最高價格。
      
      [DATACOUNT]
      
      返回K線的數量,即總共有多少根K線。
      

      0061--取得K線的序號
      
      取得K線的序號,正序有下面幾種方法:(從1數起)
      
      BARPOS; 
      SX:BARSCOUNT(CLOSE);  
      SY:SUM(1,0);
      DATACOUNT;{不隨光標變動,只顯示最后K線序號}
      
      逆序可用下列方法取得:(從1數起)  
      (DATACOUNT-BARPOS)+1;   
      (DATACOUNT-BARSCOUNT(CLOSE))+1;  
      (DATACOUNT-SUM(1,0))+1;
      
      0062--變量宣告   
      指定敘述:經過指定宣告后,飛狐才認識AA、BB、CC,否則會出現"未定義的標示符號"。所謂"定義",程序語言的用語,就叫做"變量宣告"。  
      AA:OPEN;{宣告OPEN,指定給AA→輸出的表達式}   
      BB:HIGH,LINETHICK0;{宣告HIGH,指定給BB→輸出的表達式→秀數值但不秀線圖}   
      CC:=CLOSE;{宣告CLOSE,指定給CC→不輸出的表達式→不秀數值也不秀線圖}   
      DD:(AA+BB+CC)/3;{;分號,告訴程序要換行執行了}   
      EE:=(AA+CC)/2;
      PARTLINE(CLOSE>0,EE);{秀線圖但不秀數值}
      
      注:{ }大括號內或在//后面,可用來輸入公式批注。
      
      0063--跨周期引用數據   
      (一)指針線公式的運算,大部份都是代入開、高、低、收、量等數據去運%C[/color]

    0069--概率統計
      
      COUNT,計數。SUM,總數、和。
      
      當數組為邏輯運算判斷的結果時,COUNT和SUM的返回值是一樣的。一般習慣上,對于邏輯運算信號,用COUNT統計,返回其它數值的,用SUM統計。
      
      當COUNT統計一般數值時,數組大于等于1時,計入;小于1時,不計入。這兩個函數,主要用于統計。
      
      用COUNT(CROSS(MA(C,5),MA(C,10)),0);就可以統計出全部的五天均線上穿十天均線的金叉數。
      
      用SUM(CROSS(MA(C,5),MA(C,10)),0);和以上得出的結果應該是一樣的。
      
      股市的不隨機規律,隱藏在統計概率之中。用這兩個函數,可以統計很多概率性的規律。
      
      比如,以兩天的收盤價相比,昨天是下跌的,今天的下跌的概率是多少?
      
      A:=C< REF(C,1);
      B:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上漲}
      D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盤}
      E:=REF(A,1) AND C< REF(C,1);{昨天下跌,今天下跌}
      F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
      上升概率:100*COUNT(B,0)/F;
      下跌概率:100*COUNT(E,0)/F;
      平盤概率:100*COUNT(D,0)/F;
      
      從兩市指數看,昨天下跌,今天下跌的概率始終大于50%。那么連跌兩天之后,第三天收盤的各種概率是多少?
      
      A:=C< REF(C,1) AND REF(C,1)< REF(C,2);
      B:=REF(A,1) AND C>REF(C,1);{前兩天下跌,今天上漲}
      D:=REF(A,1) AND C=REF(C,1);{前兩天下跌,今天平盤}
      E:=REF(A,1) AND C< REF(C,1);{前兩天下跌,今天下跌}
      F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
      上升概率:100*COUNT(B,0)/F;
      下跌概率:100*COUNT(E,0)/F;
      平盤概率:100*COUNT(D,0)/F;
      
      從指數的輸出看,概率更明顯了。連跌三天之后呢?
      
      A:=C< REF(C,1) AND REF(C,1)< REF(C,2) AND REF(C,2)< REF(C,3);
      B:=REF(A,1) AND C>REF(C,1);{前三天下跌,今天上漲}
      D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盤}
      E:=REF(A,1) AND C< REF(C,1);{前三天下跌,今天下跌}
      F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
      上升概率:100*COUNT(B,0)/F;
      下跌概率:100*COUNT(E,0)/F;
      平盤概率:100*COUNT(D,0)/F;
      
      規律就更明顯了。
      
      不要小看這些數據。雖然沒有有些“高手”做出的成功率達百分之九十左右的公式那么夸張,但很有意義的。要知道股市中的隨機因素太多,平衡性很強,稍稍的統計偏向,足可作為有用的參考。
      
      這只是簡單的例子,用這兩個函數,可以做出很多的有用的統計數據。多數的交易系統的"勝率",可以由此統計出來。
      
      統計:  
      A:=CROSS(C,MA(C,3));
      B:=CROSS(MA(C,3),C);
      D:B*(C-REF(C,BARSLAST(A)));
      月:SUM(D,20);
      季:SUM(D,60);
      半:SUM(D,120);
      年:SUM(D,250);
      總和:SUM(D,0);


      0070--五彩K線常用顏色
      黑色 COLORBLACK 藍色 COLORBLUE
    棕色 COLORBROWN 青色 COLORCYAN
    灰色 COLORGRAY 綠色 COLORGREEN
    晶紅 COLORMAGENTA 紅色 COLORRED
    白色 COLORWHITE 黃色 COLORYELLOW
      

      0071--分析家公式設定注意事項
      參數 最多四個參數,每個有最大和最小及缺省值,須有自己名稱
    注釋 用大括號括起來放在被注釋語句之后
    公式名稱 由字母或數字組成,在同類公式中必須唯一,最多九個字符
    中間公式 使用":="來定義名字,不能與系統提供的函數同名
    Param#1-4 對應于參數1-4,大小寫敏感
    坐標線位置 最多七個,用分號分隔
    組合公式設置 小公式間用分號隔開
    繪圖參數使用 將其插入到指標公式的后面,用逗號分隔開
    區分多條指標線 在指標公式前寫上名稱并加上一個冒號
    指標線名字的使用 可以當函數名用
    指標線繪制的極限 可同圖顯示16條指標線
    五彩顏色參數使用 將其插入到指標公式的后面,用逗號分隔開
      

      0072--交易系統公式交易類型
      ENTERLONG 多頭買入 ENTERSHORT 空頭買入
    EXITLONG 多頭賣出 EXITSHORT 空頭賣出
      

      0073--可供引用的周期類型
      MIN1 1分鐘線 MIN60 60分鐘線
    MIN5 5分鐘線 DAY 日線
    MIN15 15分鐘線 WEEK 周線
    MIN30 30分鐘線 MONTH 月線
      

      0074--引用表達式
      引用指標公式 公式名稱.指標線名稱(參數表)
    引用交易系統公式 SYSTEM.公式名稱.交易類型(參數表)
    引用條件選股公式 EXPLORER.公式名稱(參數表)
    跨周期引用公式 各種類型公式名稱#周期類型(參數表)
    引用任意股票的數據 股票代碼$數據名稱
    引用擴展數據 EXTDATA(N) 分析家N=1-11 飛狐N=1-13
    引用橫向統計日線數據(1-N) ESTDATA(N)  
    引用類函數第二個變量參數 類函數名稱(第一參數,變量名或變量表達式)
      

      0075--符號一覽表
      符號 名稱 舉例 符號 名稱 舉例
    + 加 X + Y && 并且 X>Y && Y>Z
    - 減 X - Y || 或者 X>Y || Y>Z
    * 乘 X * Y $ 修飾符號 000014$CLOSE
    / 除 X / Y ( 括號 HIGH/(CLOSE+OPEN)
    < 小于 X < Y ) 反括號 HIGH/(CLOSE+OPEN)
    > 大于 X > Y , 逗號 MA(Close,3)
    <= 小于等于 X <= Y : 輸出 輸出:CLOSE+OPEN
    >= 大于等于 X >= Y := 賦值 變量1:=HIGH
    = 等于 X = Y " 雙引號 "000014$OPEN"
    {} 注釋符號 {注釋部分} . 點號 KDJ.K
    // 注釋符號 //注釋部分 ; 分號 A:=CLOSE;
    AND 并且 X>Y AND Y>Z # 變周期符號 TMP1:=CLOSE#WEEK
    OR 或者 X>Y OR Y>Z ## 變周期前一 VOL##DAY
    <> 非 X <> Y ' 單引號 '大陽線'
      

      0076--橫向統計
      
      函數:ESTDATA(N)
      描述:取得橫向統計日線數據(1-N)
      類別:擴展數據
      參數:N
      
      說明:在[橫向統計管理]中定義并計算數據(本函數僅在日線分析周期有效)。
      
      用基本公式做出的主圖公式和副圖公式,顯示在個股或指數中,是縱向的,遍歷當時顯示的個股或指數中的每根K線。然后指標大小、變化、交叉情況等,都體現在某一個股或指數中。甲股和乙股,哪個KDJ中的K值大?用縱向變量(指標),原來就一點招數都沒有。又比如,兩市A股中,今天有幾只個股的收盤價在 10日均線之上,用縱向變量(指標)也沒有辦法,因為縱向變量(指標)只能在某一個股或指數中才可以比較。而多股間橫向的比較和統計,是很有參考價值的。所以,相對于原來的縱向變量(指標),就有了橫向變量這一說。
      
      橫向指標用在公式中,也是遍歷每根K線的,與一般的基本函數的遍歷有點不同,因為它的數據來源不同,是對應于每根K線的日子以及哪個日子中對應板塊中的個股數和選擇條件等。
      
      橫向統計涉及全場數據的計算,而且可以增加到數千項之多,運算量驚人,目前無法做到實時刷新(動態顯示),只能手工刷新(建議盤后進行)。
      
      橫向變量主要用于盤后。要動態刷新,目前沒有即時刷新的設置,可能考慮到計算量較大吧。要是不怕麻煩,過幾分鐘就刷新一下(刷新一次,就相當于重新計算一遍),也可以看到"動態"漲跌值排名。
      
      橫向變量在公式中的輸出,與K線的日子有絕對的關系,與當時顯示的個股或指數沒有多大關系,在某個股中的輸出和其他任一個股中的輸出都一樣。
      
      橫向變量所用的統計方法,是對所選板塊中的個股或指數,進行全盤的統計。最近所加的"最大值"、"最小值"是兩個極值,是對排序頭尾的取值。而要取橫向排序中的第二名、第三名,單用橫向變量目前還做不到。但不排除此功能以后會開發出來。
      
      排名名次要用擴展數據!橫向變量目前做不到。
      
      如果做橫向變量或擴展數據,在當時選擇的計算周期如果是日線,則今天刷新,"原本排列"就保存在昨天。橫向變量實際上即是橫向的,從時間上又是縱向的。
      
      擴展數據是橫向的,引用時從時間上又是縱向

    0077--擴展數據
      
      函數:EXTDATA(N)
      描述:取得日線擴展數據(1-13); 分析家N取1--11
      類別:擴展數據
      參數:N取1--13
      
      說明:在[擴展數據管理]中定義并計算數據(本函數僅在日線分析周期有效)。
      
      有些數據,非常重要,可是隨著時間的推移,就再也找不到了。比如說某個股一天之中的總成交次數,又比如說某個股在上個月的1號,漲幅排名是第幾?這些信息,要么以后就查不到了,要么在公式中也無法引用。而擴展數據庫能解決這些問題。擴展數據庫能夠隨日線保存這些數據,而且是計算好了的結果,所以引用時速度也很快。
      
      擴展數據有兩個用處:1、保存計算值。2、保存計算值的排名結果。目前飛狐的擴展數據,可以最多做13個。太多了好象也沒有多大意思,因為擴展數據計算歷史數據有點慢,而且也較占空間。歷史的數據量大,當然慢了。可是計算好之后,以后只要更新當天的,速度還是較快的。計算擴展數據,某個股,一個交易日,一次只能得到一個結果數據,而且所選之指標,也應該是唯一的。
      
      想保存所有分筆成交記錄?擴展數據是做不到的。
      
      缺省數據:某一天,或者說個股停盤等原因,沒有計算結果,系統就將缺省數據保存到擴展數據庫中。
      
      在進行排序時,有兩種排序方式,一種為0-N自然排序,一種為1-1000歸一化排序,區別在于:自然排序按自然數來排列名次,排名在第幾結果就是幾,第一名,返回0;第二名,返回1;第N名,返回N-1。而歸一化排序時將排序歸一化到0-1000之間,第一位為0,最后一位為1000,采用公式" 排名*1000/參加排名的股票數"來進行計算。歸一化排序的好處是,不隨股票數目的增加而對排序結果有較大的影響。
      
      怎么引用擴展數據?EXTDATA(N);N指引用第幾組擴展數據,從1到13。比如把分筆成交次數的擴展數據建立在第一組中,引用時,就用 EXTDATA(1);這個公式,在某個股中,就輸出此股在當天的總成交次數。擴展數據,有橫向的性質,特別是用排名時。同時又是縱向的,只要有數據,以前的日子里,也可以返回所得值。而且從理論上說,擴展數據庫是可以永遠保存的。由于計算量較大,目前擴展數據不支持即時刷新。不過可以手工刷新。
      

      0078--峰點公式  
      為了能找到合適的COND,用于舉例子,先介紹一組概念:  
      高點:在2N+1根K線中,中間這根K線的H,要大于等于左右N根K線的H。在N+1根K線中,有等高點出現,取最先出現的。
      低點:在2N+1根K線中,中間這根K線的L,要小于等于左右N根K線的L。在N+1根K線中,有等低點出現,取最先出現的。
      峰點:高點和低點,合稱為峰點。
      
      這個定義,意合于技術分析的老祖宗道氏:"只要平均指數的最高點超過了前期的最高點,它就處于牛市時期;當最低點低于前期的最低點時,它處于熊市時期。"這里我們撇開向上、向下分形和分形峰狀點等概念,以免把概念復雜化。
      
      也為了不讓公式一來就過于復雜,我們先取N為2來做公式。簡介到后面,可以看到,N是可以作為峰點公式的參數進行調整的。
      
      公式名稱:FENG2
      公式說明:供引用
      公式內容:
      
      {峰點參數暫定為2}
      A:=REF(H,2);{中間K線的最高價}
      B:=A>=REF(H,4) AND A>=REF(H,3) AND A>=REF(H,1) AND A>=H;{中間K線的最高價大于等于兩邊共四根K線的最高價}
      D:=BACKSET(B,3);{將當前位置和之前2個周期的數值設為1}
      HD:FILTER(D,2);{找到高點后,過濾掉其后2周期內可能出現的等高點。輸出高點}
      A2:=REF(L,2);{中間K線的最低價}
      B2:=A2<=REF(L,4) AND A2<=REF(L,3) AND A2<=REF(L,1) AND A2<=L;{中間K線的最低價小于等于兩邊共四根K線的最低價}
      D2:=BACKSET(B2,3);{將當前位置和之前2個周期的數值設為1}
      LD:FILTER(D2,2);{找到低點后,過濾掉其后2周期內可能出現的等低點。輸出低點}
      {后面有些例子,就從這個公式中引用信號。}
      
      用法: DRAWICON(COND,PRICE,TYPE),當COND條件滿足時,在PRICE位置畫TYPE號圖標。15種圖標編碼為1-15(1-3為小臉,4-5為上下箭頭,6-7為紅綠小旗,8-9為三角形,10-12為信號燈,13-15為O、X、四方形)。TYPE為字符串時可顯示用戶自制BMP 圖。
      
      示例:DRAWICON(CLOSE>OPEN,LOW,4)表示當收陽時在最低價位置畫4號圖標。
      
      DRAWICON(C>O, L, 'MyBMP')表示當收陽時在最低價位置畫FmlDLL子目錄下的自制圖標MyBMP.BMP。
      
      1、COND條件,一般是指判斷的結果,不是0就是1。如用其它數據,大于等于1的,條件滿足;小于1,條件就不滿足。
      
      2、TYPE圖標,現在已經有12種,用下面的公式,在000829上可以全部顯示出來。當TYPE取大于等于12的數時,都顯示黃球。
      
      當TYPE取0時,顯示的是笑臉(這個公式中沒有做進去,自己可以試一下)。
      
      B:="FENG2.HD";
      D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      A:=D>REF(D,1);
      DRAWICON(REF(A,1),1.05*H,1);
      DRAWICON(REF(A,2),1.05*H,2);
      DRAWICON(REF(A,3),1.05*H,3);
      DRAWICON(REF(A,4),1.05*H,4);
      DRAWICON(REF(A,5),1.05*H,5);
      DRAWICON(REF(A,6),1.05*H,6);
      DRAWICON(REF(A,7),1.05*H,7);
      DRAWICON(REF(A,8),1.05*H,8);
      DRAWICON(REF(A,9),1.05*H,9);
      DRAWICON(REF(A,10),1.05*H,10);
      DRAWICON(REF(A,11),1.05*H,11);
      DRAWICON(REF(A,12),1.05*H,12);
      DRAWICON(REF(A,13),1.05*H,13);
      DRAWICON(REF(A,14),1.05*H,100);{主圖疊加}
      當紅球和綠球連續顯示時,立體感會強一些。
      DRAWICON(C>=MA(C,30),MA(C,30),10);
      DRAWICON(C< MA(C,30),MA(C,30),11);{主圖疊加}
      
      3、PRICE是用于定位圖標的位置的。一般用1.01*H,或者0.99*L等。現在可用ALIGN(0-5)指定對齊位置。
      
      用這個公式來試(主圖疊加)
      
      B:="FENG2.HD";
      D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      A:=D>REF(D,1);
      E:=REF(H,1);
      DRAWICON(A,E,10),ALIGN0;
      DRAWICON(A,E,11),ALIGN1;
      DRAWICON(A,E,12),ALIGN2;
      DRAWICON(A,E,3),ALIGN3;
      DRAWICON(A,E,4),ALIGN4;
      DRAWICON(A,E,5),ALIGN5;
      
      可以初步得出結論:
      
      ALIGN0:信號出現在PRICE的正中;
      ALIGN1:信號出現在PRICE下邊(十分靠近);
      ALIGN2:信號出現在PRICE上邊(十分靠近);
      ALIGN3:信號出現在主圖的中間;
      ALIGN4:信號出現在主圖的最上邊;
      ALIGN5:信號出現在主圖的最下邊;
      
      在高低點上作圖標,可以使高低點更明確了。
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,11),ALIGN1;
      DRAWICON(B,H,10),ALIGN2;{主圖疊加}
      
      4、可以自由調用MyBMP.BMP圖到顯示位置,大大增強了輸出的效果。你只要看到好看的圖,可以隨時抓拍過來,做成BMP文件,放到FmlDLL子目錄下,就可以調用了。
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,'PIG'),ALIGN1;
      DRAWICON(B,H,'PIG'),ALIGN2;{主圖疊加。如果你沒有PIG.BMP文件,則不可顯示。}
      DRAWICON(1,MA(C,5),'S28');
      DRAWICON(1,MA(C,10),'S31');
      DRAWICON(1,MA(C,20),'S14');
      DRAWICON(1,MA(C,30),'S25');{主圖疊加。如果你沒有PIG.BMP文件,則不可顯示。}
      
      舉個例子:
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,11),ALIGN1;
      DRAWICON(B,H,10),ALIGN2;
      D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      E:=D>REF(D,1);
      F:=BACKSET(E,REF(BARSLAST(B),1)+2);
      G:=F>REF(F,1);
      DRAWLINE(G,H,E,H,1),pointdot,linethick1,coloryellow;{主圖疊加}
      
      這根線有些趨勢線的意思了。由于趨勢線的主觀性頗強,只有多設參數才能滿足多數人的要求。
      
      DRAWLINE畫出的線,應該比手工畫出的線精確一些(DRAWLINE畫線的靈敏度,要比手工畫線低,所以說DRAWLINE畫出的線精確,就未必對)。
      
      主要用于畫斜線,水平線我們一般可以另想辦法。因為在圖中顯示直線,并非DRAWLINE的"專利"。
      
      比如:
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1);
      E:=D>REF(D,1);
      F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      G:=F>REF(F,1);
      前高:REF(H,BARSLAST(G));
      前低:REF(L,BARSLAST(E));{主圖疊加}
      
      說明:在圖形上顯示數字
      用法: DRAWNUMBER(COND,PRICE,NUMBER,PRECISION),當COND條件滿足時,在PRICE位置書寫數字NUMBER(可以為常數或數組序列),PRECISION為小數顯示位數(取值范圍0-3)。可ALIGN0-5定義對齊方式。
      示例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2)表示當日漲幅大于8%時在最高價位置顯示漲幅(相對開盤價的百分比)。
      
      這個函數的特色是,在NUMBER位置可以放變量。
      
      NUMBER,數字。DRAWNUMBER是DRAWTEXT的"兄弟",也可以用ALIGN(0-5)來定義水平位置,方法相同。
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,11),ALIGN1;
      DRAWICON(B,H,10),ALIGN2;
      D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      E1:=D1>REF(D1,1);{離目前最近的一個高點}
      D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
      E2:=D2>REF(D2,1);{倒數第二個高點}
      DRAWTEXT(E1,H*1.02,'高點價:'),COLORGREEN,ALIGN2;
      DRAWNUMBER(E1,H*1.02,H,2),COLORGREEN,ALIGN1;
      DRAWTEXT(E2,H*1.02,'高點價:'),COLORYELLOW,ALIGN2;
      DRAWNUMBER(E2,H*1.02,H,2),COLORYELLOW,ALIGN1;{主圖疊加}
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,11),ALIGN1;
      DRAWICON(B,H,10),ALIGN2;
      D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
      E1:=D1>REF(D1,1);{離目前最近的一個高點}
      D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
      E2:=D2>REF(D2,1);{倒數第二個高點}
      D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);
      E3:=D3>REF(D3,1);{倒數第三個高點}
      DRAWTEXT(E1,H*1.01,'☆TEXT:'),COLORRED,ALIGN0;
      DRAWTEXT(E2,H*1.01,'★TEXT:'),COLORGREEN,ALIGN1;
      DRAWTEXT(E3,H*1.01,'▓TEXT:'),COLORYELLOW,ALIGN2;{主圖疊加}
      
      描述:繪制折線段
      類別:繪圖
      說明:在圖形上繪制折線段
      用法: POLYLINE(COND,PRICE),當COND條件滿足時,以PRICE位置為頂點畫折線連接。
      示例:POLYLINE(HIGH>=HHV(HIGH,10),HIGH)表示在創10天新高點之間畫折線。
      POLY,多個的。
      
      支持POINTDOT、LINETHICK、COLOR、SHIFT這四個描述函數。
      
      A:="FENG2.LD";
      B:="FENG2.HD";
      DRAWICON(A,L,11),ALIGN1;
      DRAWICON(B,H,10),ALIGN2;
      POLYLINE(A,L),POINTDOT,COLORGREEN;
      POLYLINE(B,H),LINETHICK2,COLORMAGENTA;{主圖疊加}
      
      參數可調整的峰點公式:
      
      A:=REF(H,N)=HHV(H,2*N+1);{當前位置N天之前的最高價是最近2*N+1根K線中的最高價}
      B:=FILTER(A,N); {當高點附近有等高的K線出現時,會影響后續高點的判斷,所以要過濾}
      D:=BACKSET(B,N+1);{將當前位置及前N周期的數值設為1,所以要用N+1}
      HD:=FILTER(D,N); {當高點附近有等高的K線出現,取第一個,過濾掉后面N個周期之內出現的}
      A2:=REF(L,N)=LLV(L,2*N+1);{求低點的過程與求高點的過程同理}
      B2:=FILTER(A2,N);
      D2:=BACKSET(B2,N+1);{參數N:1,3,999}
      LD:=FILTER(D2,N);{主圖疊加}
      DRAWICON(HD,H,10),ALIGN2;{在高點附近顯示紅球}
      DRAWICON(LD,L,11),ALIGN1;{在低點附近顯示綠球}
      
      可以說,這個公式用了未來函數BACKSET,但是用在日K線中,盤后是沒有未來數據的,因為引用的全是已經發生過的不可變的數據了。
      
      至于即時盤中的未來數據,那是說不到底的事,基本所有的公式,都有即時盤中未來數據。
      
      紅球綠球作為峰點標志,在顯示K線不多的情況下,還比較清楚。但當K線數較多時,因為球的大小是不變的,所以看起來比較亂。故可用以下公式:
      
      A:=REF(H,N)=HHV(H,2*N+1); B:=FILTER(A,N); D:=BACKSET(B,N+1); HD:=FILTER(D,N);
      A2:=REF(L,N)=LLV(L,2*N+1);B2:=FILTER(A2,N); D2:=BACKSET(B2,N+1);LD:=FILTER(D2,N);
      STICKLINE(REF(HD,1),REF(H,1),REF(H,1),18,0),COLORMAGENTA;
      STICKLINE(REF(LD,1),REF(L,1),REF(L,1),18,0),COLORGREEN;
      
      函數:HHVBARS(X,N)
      描述:上一高點位置
      類別:引用
      參數:X為數組,N為計算周期
      返回:返回數組
      說明:求N周期內X最高值到當前周期數,N=0表示從第一個有效值開始統計
      示例:HHVBARS(HIGH,0)求得歷史新高到當前的周期數
      
      HHV、HHVBARS這兩個函數一起用,可以找到當前N天中的最高點。
      
      A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
      B:=COUNT(A,N)=1;{取得前N個周期內的最高點位置}
      REF(H,BARSLAST(B));
      DRAWICON(B,H,1),ALIGN2;{主圖疊加。N:30,1,9999}
      
      

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 人人妻人人澡人人爽欧美二区| 久久天天躁夜夜躁狠狠| 卡一卡2卡3卡精品网站| 人妻少妇精品久久久久久| 精品无码久久久久久尤物| 强行无套内大学生初次| 精品国产免费一区二区三区| 色欲国产精品一区成人精品| AV无码国产在线看免费网站| 国产不卡一区二区在线| 一本一本久久AA综合精品| 亚洲熟女精品一区二区| 青草青草久热精品视频在线观看 | 国内永久福利在线视频图片| 在厨房被C到高潮A毛片奶水| 又湿又紧又大又爽A视频男| 久久婷婷综合色丁香五月| 亚洲精品美女一区二区| 丰满少妇被猛男猛烈进入久久| 亚洲成人av在线资源| 男人把女人桶到喷白浆的软件免费| 国产成人精品视频不卡| 奇米影视7777狠狠狠狠色| 亚洲高潮喷水无码AV电影| 日本精品人妻无码77777| 第一亚洲中文久久精品无码| 亚洲综合精品第一页| 久久伊人色AV天堂九九小黄鸭| 92精品国产自产在线观看481页| 亚洲AV无码乱码国产麻豆| 亚洲性日韩精品一区二区三区| 无码人妻丝袜在线视频| 国产真实伦在线观看视频| 少妇办公室好紧好爽再浪一点| 精品成人乱色一区二区| 久久精品国产亚洲不AV麻豆| 日本熟妇XXXX潮喷视频| 国内精品久久久久影院网站| 久久精品国产久精国产一老狼 | 亚洲AV永久无码精品三区在线| 在线A毛片免费视频观看|