午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

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

 振波浪清 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日出現(xiàn)過均線死叉(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線數(shù)量
  BV:=HHV(V,N);
  BI:=BC/BV;//疊加比 
  B:=BI[DATACOUNT];//最后一根K線的疊加比,保證疊加比前后統(tǒng)一
  成交量:V,VOLSTICK;
  F:=C/REF(C,1);
  JC:=REF(C,1)*(1+A*F)*B/A;//A-放大倍數(shù),將C的漲跌幅度F放大
  JL:=LLV(JC,N);//平移量。請去掉JC句的=看JL的作用
  收盤價:C,LINETHICK0,COLORYELLOW;//只顯示數(shù)值,不畫線
  PARTLINE(C>0,JC-JL[DATACOUNT]),COLORYELLOW;//收盤價趨勢線,只畫線,不顯示數(shù)值
  
  通式:  
  曲線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為系數(shù)順序加足,如:OR 250 OR 265……等等。
  

  0059--移動成本
  
  不知道函數(shù)算法,計算誤差在所難免。調整參數(shù)“%”可看到不同的移動成本。
  
  ///籌碼%
  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--移動成本
  
  不知道函數(shù)算法,計算誤差在所難免。調整參數(shù)“%”可看到不同的移動成本。
  
  ///籌碼%
  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()函數(shù)
  
  SUMBARS(X,N)
  
  函數(shù)的用法如下:
  
  向前累加到指定值到現(xiàn)在的周期數(shù)。
  
  用法:  
  SUMBARS(X,A)  
  將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù)
  
  例如:
    SUMBARS(VOL,CAPITAL)
  
  1、設計一個指標,計算當日成交量是幾天內的最高成交量? 
  2、設計一個指標,計算當日最高價是幾天內的最高價?  
  提示:直接用HHV()函數(shù)無法得到正確結果。
  
  例一:  
  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]是歷史最高成交量
  量創(chuàng)新高周期數(shù):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]是歷史最高成交量
  量創(chuàng)新高周期數(shù):SUMBARS(REF(FV,1)-FV,0);
  {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
  
  代碼已經(jīng)成功了,原理是什么呢?
  
  假設某日成交量是3日內的最大成交量,則必有:  
  REF(VOL,3)-VOL>=0
  等價于:  
  (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL) >=0
  
  意思就是說,“昨成交量與今成交量之差”逐日累加,直到某日累加和大于等于0,則這之間的天數(shù),就是所要求的日數(shù)。
  
  我們再來看看SUMBARS()函數(shù)的含義:  
  SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù)。
  
  顯然上面的式子:  
  (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL)>=0
  
  可以寫成:  
  SUMBARS(REF(VOL,1)-VOL, 0);  
  為何第1周期的成交量要替換成比所有成交量都大的數(shù)值?最后,再來思考一個問題,把題目中的求“最大”,改成求“最小”,即多少天內是最小的?
  
  例二:  
  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);//價創(chuàng)了N周期新高  
  VH:=IF(BARSCOUNT(C)=1,99999999,V);
  HV:SUMBARS(REF(VH,1)-VH,0);//量創(chuàng)了N周期新高
  
  LL:=IF(BARSCOUNT(C)=1,0,L);
  ZL:SUMBARS(LL-REF(LL,1),0);//價創(chuàng)了N周期新低
  
  VL:=IF(BARSCOUNT(C)=1,0,V);
  LV:SUMBARS(VL-REF(VL,1),0);//量創(chuàng)了N周期新低
  
  附注:  
  用99999999等具體數(shù)值,最好是盡可能大的數(shù)值(比如單精數(shù)的上限),否則仍有可能無法全部完成計算,比如上證指數(shù)的年線,成交量最大時,仍然超過了99999999。
  
  倒數(shù)第6天的最高價格怎么表示?
  
  FH:=HIGH;
  FH[DATACOUNT-5]; //倒數(shù)第6天的最高價格。
  
  [DATACOUNT]
  
  返回K線的數(shù)量,即總共有多少根K線。
  

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

0064--未來數(shù)據(jù)、未知數(shù)據(jù)
  
  寫公式,首先要對已知數(shù)據(jù)(過去式)、未知數(shù)據(jù)(未完成式、現(xiàn)在進行式)有通盤的認知。
  
  可將"未來"分為兩種情況:
  
  1、實時行情中:在一根K線。
  
  以實時行情中的當前日K線為例。除了O之外,其它H、L、C全有未來之嫌。因為在收盤之前,拉高、打壓是司空見慣的事,誰也不能保證H、L不會創(chuàng)出當天的新高和新低,更不用說C了。又如日線周期公式"C>REF(C,1);",前一分鐘信號成立,后一分鐘可能信號就不成立了。另外,如引用了周K 和月K數(shù)據(jù),因為當前周K和月K還在變動之中,所以也是未來資料。
  
  2、盤后中:在多根K線。
  
  因為在盤后,日K中的四大要素O、H、L、C就沒有未來之可能了。在盤后,除了周五之外,引用的周K指針也是未來數(shù)據(jù)。除了在月末,引用的月K指針也是未來數(shù)據(jù)。
  
  總而言之,指針公式就分這兩種:
  
  線圖信號的確定→全都用已知數(shù)據(jù)(過去式)來決定。
  線圖信號的確定→有用到未知數(shù)據(jù)(未完成式、現(xiàn)在進行式)來決定。
  
  ZIG函數(shù)
  
  ZX:ZIG(CLOSE,8);
  
  最近這次峰點、谷點的確定,也常處在未完成式的狀態(tài)中。
  
  打個比喻,線圖信號的確定→有用到未知數(shù)據(jù)(未完成式、現(xiàn)在進行式),例如,在實時盤中一根日K線的收盤價變來變去,指針線圖當然隨之而起舞。
  
  ZIG函數(shù)只是把格局放大,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;{顯示收盤價的圖改成漲紅跌綠聯(lián)機圖}
  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函數(shù):相當于 IF( CLOSE>OPEN , 1 , 0 )?! ?
  ISEQUAL函數(shù):相當于 IF( CLOSE=OPEN , 1 , 0 )?! ?
  ISDOWN函數(shù):相當于 IF( CLOSE < OPEN , 1 , 0 )。  
  STICKLINE函數(shù),畫出來的對象有重疊覆蓋性:→后畫的對象可覆蓋先畫的對象。
  
  例二:配色
  
  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線,累計成交張數(shù)  
  XA:=REF(DATE,1)<>DATE , STICK;   
  XB:=BARSLAST(XA=1) + 1 ,STICK;  
  SV:SUM( VOL , XB ) ;
  
  范例:標記今天分時K線的今天K線序號。過了午夜12點,就又要等早盤開盤后序號數(shù)字才會出現(xiàn)
  
  XA:=CURRENTDATE=DATE ;
  XB:=REF(XA , 1)<>XA ;
  
  XC:HHVBARS(XB , 0) + XA ;
  
  應用:13均線今天當下最后數(shù)值向后延申,畫平臺線。
  
  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--系統(tǒng)參數(shù)函數(shù)
  
  這組函數(shù),應用在取得當前可視主圖區(qū)內的一些數(shù)字信息,如下所示:  
  1.當前十字光標所在位置,那根K線的序號;
  2.當前可視主圖區(qū),最初那根K線的序號;
  3.當前可視主圖區(qū),最后那根K線的序號;
  4.當前可視主圖區(qū),最高價;
  5.當前可視主圖區(qū),最低價。
  
  注:但須調出十字光標后,這組函數(shù)才能發(fā)生作用。否則回傳的值是不確定的?!?
  SYSPARAM(1)
  SYSPARAM(2)
  SYSPARAM(3)
  SYSPARAM(4)
  SYSPARAM(5)
  
  函數(shù):SYSPARAM(1)
  說明: 回傳當前 十字光標所在位置那根K線的序號
  
  函數(shù):SYSPARAM(2)
  說明: 回傳當前可視主圖區(qū) 最初那根K線的序號
  
  函數(shù):SYSPARAM(3)
  說明: 回傳當前可視主圖區(qū) 最后那根K線的序號
  
  函數(shù):SYSPARAM(4)
  說明: 回傳當前可視主圖區(qū) 最高價
  
  函數(shù):SYSPARAM(5)
  說明: 回傳當前可視主圖區(qū) 最低價
  
  范例:
  
  將公式建立在:技術指針 ( ●主圖疊加 ○主圖 )
  
  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是一組變量型時間數(shù)列,代表K線的序號。
  
  2.SS是隱含有N組常數(shù)型時間數(shù)列(N=這支股票的K線總數(shù))。
  
  DD:SUM(1,0)
  
  以數(shù)學的二維空間F(X)=Y表示:Y=X
  
  SS:SYSPARAM(1)
  
  以數(shù)學的二維空間F(X)=Y表示,其中A屬正整數(shù):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--移動成本
  
  不知道函數(shù)算法,計算誤差在所難免。調整參數(shù)“%”可看到不同的移動成本。
  
  ///籌碼%
  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()函數(shù)
  
  SUMBARS(X,N)
  
  函數(shù)的用法如下:
  
  向前累加到指定值到現(xiàn)在的周期數(shù)。
  
  用法:  
  SUMBARS(X,A)  
  將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù)
  
  例如:
    SUMBARS(VOL,CAPITAL)
  
  1、設計一個指標,計算當日成交量是幾天內的最高成交量? 
  2、設計一個指標,計算當日最高價是幾天內的最高價?  
  提示:直接用HHV()函數(shù)無法得到正確結果。
  
  例一:  
  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]是歷史最高成交量
  量創(chuàng)新高周期數(shù):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]是歷史最高成交量
  量創(chuàng)新高周期數(shù):SUMBARS(REF(FV,1)-FV,0);
  {這里的關鍵是 REF(FV,1)-FV ,想想看寫成 FV-REF(FV,1) 行不行?}
  
  代碼已經(jīng)成功了,原理是什么呢?
  
  假設某日成交量是3日內的最大成交量,則必有:  
  REF(VOL,3)-VOL>=0
  等價于:  
  (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL) >=0
  
  意思就是說,“昨成交量與今成交量之差”逐日累加,直到某日累加和大于等于0,則這之間的天數(shù),就是所要求的日數(shù)。
  
  我們再來看看SUMBARS()函數(shù)的含義:  
  SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù)。
  
  顯然上面的式子:  
  (REF(VOL,3)-REF(VOL,2))+(REF(VOL,2)-REF(VOL,1))+(REF(VOL,1)-VOL)>=0
  
  可以寫成:  
  SUMBARS(REF(VOL,1)-VOL, 0);  
  為何第1周期的成交量要替換成比所有成交量都大的數(shù)值?最后,再來思考一個問題,把題目中的求“最大”,改成求“最小”,即多少天內是最小的?
  
  例二:  
  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);//價創(chuàng)了N周期新高  
  VH:=IF(BARSCOUNT(C)=1,99999999,V);
  HV:SUMBARS(REF(VH,1)-VH,0);//量創(chuàng)了N周期新高
  
  LL:=IF(BARSCOUNT(C)=1,0,L);
  ZL:SUMBARS(LL-REF(LL,1),0);//價創(chuàng)了N周期新低
  
  VL:=IF(BARSCOUNT(C)=1,0,V);
  LV:SUMBARS(VL-REF(VL,1),0);//量創(chuàng)了N周期新低
  
  附注:  
  用99999999等具體數(shù)值,最好是盡可能大的數(shù)值(比如單精數(shù)的上限),否則仍有可能無法全部完成計算,比如上證指數(shù)的年線,成交量最大時,仍然超過了99999999。
  
  倒數(shù)第6天的最高價格怎么表示?
  
  FH:=HIGH;
  FH[DATACOUNT-5]; //倒數(shù)第6天的最高價格。
  
  [DATACOUNT]
  
  返回K線的數(shù)量,即總共有多少根K線。
  

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

0069--概率統(tǒng)計
  
  COUNT,計數(shù)。SUM,總數(shù)、和。
  
  當數(shù)組為邏輯運算判斷的結果時,COUNT和SUM的返回值是一樣的。一般習慣上,對于邏輯運算信號,用COUNT統(tǒng)計,返回其它數(shù)值的,用SUM統(tǒng)計。
  
  當COUNT統(tǒng)計一般數(shù)值時,數(shù)組大于等于1時,計入;小于1時,不計入。這兩個函數(shù),主要用于統(tǒng)計。
  
  用COUNT(CROSS(MA(C,5),MA(C,10)),0);就可以統(tǒng)計出全部的五天均線上穿十天均線的金叉數(shù)。
  
  用SUM(CROSS(MA(C,5),MA(C,10)),0);和以上得出的結果應該是一樣的。
  
  股市的不隨機規(guī)律,隱藏在統(tǒng)計概率之中。用這兩個函數(shù),可以統(tǒng)計很多概率性的規(guī)律。
  
  比如,以兩天的收盤價相比,昨天是下跌的,今天的下跌的概率是多少?
  
  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;
  
  從兩市指數(shù)看,昨天下跌,今天下跌的概率始終大于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;
  
  從指數(shù)的輸出看,概率更明顯了。連跌三天之后呢?
  
  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;
  
  規(guī)律就更明顯了。
  
  不要小看這些數(shù)據(jù)。雖然沒有有些“高手”做出的成功率達百分之九十左右的公式那么夸張,但很有意義的。要知道股市中的隨機因素太多,平衡性很強,稍稍的統(tǒng)計偏向,足可作為有用的參考。
  
  這只是簡單的例子,用這兩個函數(shù),可以做出很多的有用的統(tǒng)計數(shù)據(jù)。多數(shù)的交易系統(tǒng)的"勝率",可以由此統(tǒng)計出來。
  
  統(tǒng)計:  
  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--分析家公式設定注意事項
  參數(shù) 最多四個參數(shù),每個有最大和最小及缺省值,須有自己名稱
注釋 用大括號括起來放在被注釋語句之后
公式名稱 由字母或數(shù)字組成,在同類公式中必須唯一,最多九個字符
中間公式 使用":="來定義名字,不能與系統(tǒng)提供的函數(shù)同名
Param#1-4 對應于參數(shù)1-4,大小寫敏感
坐標線位置 最多七個,用分號分隔
組合公式設置 小公式間用分號隔開
繪圖參數(shù)使用 將其插入到指標公式的后面,用逗號分隔開
區(qū)分多條指標線 在指標公式前寫上名稱并加上一個冒號
指標線名字的使用 可以當函數(shù)名用
指標線繪制的極限 可同圖顯示16條指標線
五彩顏色參數(shù)使用 將其插入到指標公式的后面,用逗號分隔開
  

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

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

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

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

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

  0078--峰點公式  
  為了能找到合適的COND,用于舉例子,先介紹一組概念:  
  高點:在2N+1根K線中,中間這根K線的H,要大于等于左右N根K線的H。在N+1根K線中,有等高點出現(xiàn),取最先出現(xiàn)的。
  低點:在2N+1根K線中,中間這根K線的L,要小于等于左右N根K線的L。在N+1根K線中,有等低點出現(xiàn),取最先出現(xiàn)的。
  峰點:高點和低點,合稱為峰點。
  
  這個定義,意合于技術分析的老祖宗道氏:"只要平均指數(shù)的最高點超過了前期的最高點,它就處于牛市時期;當最低點低于前期的最低點時,它處于熊市時期。"這里我們撇開向上、向下分形和分形峰狀點等概念,以免把概念復雜化。
  
  也為了不讓公式一來就過于復雜,我們先取N為2來做公式。簡介到后面,可以看到,N是可以作為峰點公式的參數(shù)進行調整的。
  
  公式名稱:FENG2
  公式說明:供引用
  公式內容:
  
  {峰點參數(shù)暫定為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個周期的數(shù)值設為1}
  HD:FILTER(D,2);{找到高點后,過濾掉其后2周期內可能出現(xiàn)的等高點。輸出高點}
  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個周期的數(shù)值設為1}
  LD:FILTER(D2,2);{找到低點后,過濾掉其后2周期內可能出現(xiàn)的等低點。輸出低點}
  {后面有些例子,就從這個公式中引用信號。}
  
  用法: 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。如用其它數(shù)據(jù),大于等于1的,條件滿足;小于1,條件就不滿足。
  
  2、TYPE圖標,現(xiàn)在已經(jīng)有12種,用下面的公式,在000829上可以全部顯示出來。當TYPE取大于等于12的數(shù)時,都顯示黃球。
  
  當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);{主圖疊加}
  當紅球和綠球連續(xù)顯示時,立體感會強一些。
  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等。現(xiàn)在可用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:信號出現(xiàn)在PRICE的正中;
  ALIGN1:信號出現(xiàn)在PRICE下邊(十分靠近);
  ALIGN2:信號出現(xiàn)在PRICE上邊(十分靠近);
  ALIGN3:信號出現(xiàn)在主圖的中間;
  ALIGN4:信號出現(xiàn)在主圖的最上邊;
  ALIGN5:信號出現(xiàn)在主圖的最下邊;
  
  在高低點上作圖標,可以使高低點更明確了。
  
  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;{主圖疊加}
  
  這根線有些趨勢線的意思了。由于趨勢線的主觀性頗強,只有多設參數(shù)才能滿足多數(shù)人的要求。
  
  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));{主圖疊加}
  
  說明:在圖形上顯示數(shù)字
  用法: DRAWNUMBER(COND,PRICE,NUMBER,PRECISION),當COND條件滿足時,在PRICE位置書寫數(shù)字NUMBER(可以為常數(shù)或數(shù)組序列),PRECISION為小數(shù)顯示位數(shù)(取值范圍0-3)??葾LIGN0-5定義對齊方式。
  示例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2)表示當日漲幅大于8%時在最高價位置顯示漲幅(相對開盤價的百分比)。
  
  這個函數(shù)的特色是,在NUMBER位置可以放變量。
  
  NUMBER,數(shù)字。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);{倒數(shù)第二個高點}
  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);{倒數(shù)第二個高點}
  D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);
  E3:=D3>REF(D3,1);{倒數(shù)第三個高點}
  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)表示在創(chuàng)10天新高點之間畫折線。
  POLY,多個的。
  
  支持POINTDOT、LINETHICK、COLOR、SHIFT這四個描述函數(shù)。
  
  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;{主圖疊加}
  
  參數(shù)可調整的峰點公式:
  
  A:=REF(H,N)=HHV(H,2*N+1);{當前位置N天之前的最高價是最近2*N+1根K線中的最高價}
  B:=FILTER(A,N); {當高點附近有等高的K線出現(xiàn)時,會影響后續(xù)高點的判斷,所以要過濾}
  D:=BACKSET(B,N+1);{將當前位置及前N周期的數(shù)值設為1,所以要用N+1}
  HD:=FILTER(D,N); {當高點附近有等高的K線出現(xiàn),取第一個,過濾掉后面N個周期之內出現(xiàn)的}
  A2:=REF(L,N)=LLV(L,2*N+1);{求低點的過程與求高點的過程同理}
  B2:=FILTER(A2,N);
  D2:=BACKSET(B2,N+1);{參數(shù)N:1,3,999}
  LD:=FILTER(D2,N);{主圖疊加}
  DRAWICON(HD,H,10),ALIGN2;{在高點附近顯示紅球}
  DRAWICON(LD,L,11),ALIGN1;{在低點附近顯示綠球}
  
  可以說,這個公式用了未來函數(shù)BACKSET,但是用在日K線中,盤后是沒有未來數(shù)據(jù)的,因為引用的全是已經(jīng)發(fā)生過的不可變的數(shù)據(jù)了。
  
  至于即時盤中的未來數(shù)據(jù),那是說不到底的事,基本所有的公式,都有即時盤中未來數(shù)據(jù)。
  
  紅球綠球作為峰點標志,在顯示K線不多的情況下,還比較清楚。但當K線數(shù)較多時,因為球的大小是不變的,所以看起來比較亂。故可用以下公式:
  
  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;
  
  函數(shù):HHVBARS(X,N)
  描述:上一高點位置
  類別:引用
  參數(shù):X為數(shù)組,N為計算周期
  返回:返回數(shù)組
  說明:求N周期內X最高值到當前周期數(shù),N=0表示從第一個有效值開始統(tǒng)計
  示例:HHVBARS(HIGH,0)求得歷史新高到當前的周期數(shù)
  
  HHV、HHVBARS這兩個函數(shù)一起用,可以找到當前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}
  
  

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多