通達信函數詳解
K線數據,可以只寫開頭第一個字母。
開盤價:OPEN;{O}
收盤價:CLOSE;{C}
最高價:HIGH;{H}
最低價:LOW;{L}
大盤K線數據,必須下載完整盤后數據。Drawkline——畫K線,數據順序——最高價、開盤價、最低價、收盤價。
DRAWKLINE(INDEXH,INDEXO,INDEXL,INDEXC);
{H、O、L、C}
上漲家數和下跌家數,第一組只在大盤窗口才有數據,第二組哪個窗口都有數據。
漲家1:ADVANCE;
跌家1:DECLINE;
漲家2:INDEXADV;
跌家2:INDEXDEC;
在一定周期內某項數據的最大值——hhv,在一定周期內某項數據的最小值——llv。
HH:HHV(H,10);
LL:LLV(L,10);
MA1:MA(C,5);
HHMA:HHV(MA1,10);
LLMA:LLV(MA1,10);
創新高或者創新低。
創新高:H=HHV(H,60);
創新低:L=LLV(L,60);
當前位置取得以前位置數據——ref,取得指定日期數據——refdate,注意日期的格式。
以前數據:REF(C,1);
{以前數據:REF(H,2);}
指定日期數據:REFDATE(C,1090508);
{1998年5月25日——980525、2011年12月8日——1111208}
成交量——vol,可寫成V,單位是手。成交金額——amount,單位是元。Indexv——大盤成交量, indexa——大盤成交金額。Buyvol——外盤
, sellvol——內盤,只能取得與最后一根K線相對應的數據。
成交量:VOL;{V}
成交金額:=AMOUNT;
大盤成交量:=INDEXV;
大盤成交金額:=INDEXA;
外盤:BUYVOL;
內盤:SELLVOL;
漲幅、振幅、均價,成交量復權:工具——系統設置——設置1——勾選“分析圖成交量復權”——按確定——再按確定——退出K線圖——重
新進入K線圖。
漲幅:=(C-REF(C,1))/REF(C,1)*100;
振幅:=(H-L)/L*100;
均價1:(H+L+O+C)/4;
均價2:AMOUNT/(V*100);
即時行情函數只取得與最后一根K線相對應的數據。
振幅1:DYNAINFO(13)*100;
振幅2:(H-L)/L*100;
finance(7)的單位是股,根據流通盤變化而變化。capital的單位是手,只取得最新流通盤。
流通盤1:FINANCE(7);
流通盤2:CAPITAL;
換手率,finance(7)寫的換手率更合理。
換手率1:V*100/FINANCE(7)*100;
換手率2:V/CAPITAL*100;
FINANCE(42)——上市日期,date——日期,date加19六個0,一號的日為0, year——年份,month——月份,day——日,weekday——星期。
上市日期:FINANCE(42);
日期1:DATE;
日期2:DATE+19000000;
年:YEAR;
月:MONTH;
日:DAY;
日期3:YEAR*10000+MONTH*100+DAY;
星期:WEEKDAY;
Time——時間,hour——小時,MINUTE——分鍾,只在日線以下周期有效。FROMOPEN——當前時刻距離開盤分鍾數。
時間:TIME;
小時:HOUR;
分鍾:MINUTE;
距開盤分鍾數:FROMOPEN;
BARSCOUNT——某數據從第一個有效值到現在的周期數,TOTALBARSCOUNT——總周期數,下載完整盤后數據、不連接行情使用。CURRBARSCOUNT
——當前K線到最后交易日周期數。
有效數據周期數:BARSCOUNT(C);
總周期數:TOTALBARSCOUNT;
到最后周期數:CURRBARSCOUNT;
Cross——是否發生交叉,兩條指標線不一定全是變化的曲線。Barslast——上一次條件成立到當前的周期數,BARSSINCE——第一次條件成立
到當前的周期數,count——統計在一定周期內滿足條件的周期數。
K1:KDJ.K;
D1:KDJ.D;
金叉:CROSS(K1,D1)*10;
死叉:CROSS(D1,K1)*-10;
{K1上穿60:CROSS(K1,60);
K1下穿20:CROSS(20,K1);}
上次到現周期數:BARSLAST(金叉);
首次到現周期數:BARSSINCE(金叉),NODRAW;
統計{N周期內滿足條件}次數:COUNT(金叉=10,20);
Hhvbars——某數據在一定周期內的最大值到當前的周期數,llvbars——某數據在一定周期內的最小值到當前的周期數。
上一高點{到現在}周期:HHVBARS(H,20);
上一低點{到現在}周期:LLVBARS(L,20);
某數據是近多少周期內的最大值——TOPRANGE,某數據是近多少周期內的最小值——LOWRANGE。
多少周期的最大:TOPRANGE(H);
多少周期的最小:LOWRANGE(L);
BARSLASTCOUNT——統計連續滿足條件的周期數,sumbars——某數據向前累加到指定值到當前的周期數。
統計{連續滿足條件}周期數:BARSLASTCOUNT(C>REF(C,1));
加到指定值周期:SUMBARS(V,CAPITAL);
PERIOD——當前窗口的周期類型。
窗口周期類型:PERIOD;
在不同周期類型使用不同參數。
參數:=IF(PERIOD=5,20,IF(PERIOD=6,10,0));
MA1:MA(C,參數);
最基本的比較判斷是用大於、小於、等於等等。某數據是否在某個范圍之內——RANGE,某數據是否在某個范圍——BETWEEN。
寬幅震盪:(H-L)/L*100>12;
是否在某個范圍1:RANGE(C,8,10);{X>A AND A<B}
是否在某個范圍2:BETWEEN(C,10,13);{X>=A AND X<=B};
是否發生交叉——cross,LONGCROSS——是否維持一定周期后發生交叉。
上穿:CROSS(MA(C,5),MA(C,10));
{持續}一段時間后上穿:LONGCROSS(MA(C,5),MA(C,10),10)*2;
UPNDAY——某數據在一定周期內是否連漲,DOWNNDAY——某數據在一定周期內是否連跌,NDAY——是否在一定周期內前面的數據都大於后面的
數據,ISLASTBAR——當前周期是否是最后一個周期。
連漲:UPNDAY(C,5);
連跌:DOWNNDAY(C,5);
連大:NDAY(C,O,5);
是否最后周期:ISLASTBAR;
EXIST——是否在一定周期內存在符合某種條件的情況,EVERY——是否在一定周期內一直存在符合條件的情況,LAST——是否在某一段周期內
一直存在符合某種條件的情況,not——是否不符合條件。
存在:EXIST(C>REF(C,1)*1.099,10);
一直存在:EVERY(C>O,5);
持續存在:LAST(C>O,10,5);
並非:NOT(C>O);
If——是否符合條件,符合條件輸出前面的數據,不符合條件輸出后面的數據, max——哪個更大輸出哪個,min——哪個更小輸出哪個。
條件:=CROSS(MA(C,5),MA(C,10));
如果:IF(條件,5,-5);
較大者:MAX(C,O);
較小者:MIN(C,O);
FILTER——過濾連續出現的信號。
J大於80:"KDJ.J">80;
過濾:FILTER(J大於80,10)*2;
Abs——取得數據的絕對值,sum——求的數據在一定周期內的總和。
漲幅:(C-REF(C,1))/REF(C,1)*100;
零軸:0;
絕對值:ABS(漲幅);
求和:SUM(漲幅,5);
Ma——簡單移動平均值,ema——指數移動平均值,sma——加權移動平均值(前面參數大於后面參數),dma——動態移動平均值(參數小於1
),后面三個函數降低本周期的權重、減少波動性而使輸出變得相對平滑穩定,同時也降低了靈敏度。
簡單移動平均:MA(C,5);{(C0+C1+C2+…+C(N-1))/N}
指數移動平均:EMA(C,5);{Y=2*X/(N+1)+(N-1)/(N+1)*Y',Y'上一周期Y}
加權移動平均:SMA(C,5{N},1{M});{Y=(M*X+(N-M)*Y')/N, Y'上一周期Y,N必須大於M}
動態移動平均:DMA(C,0.5);{Y=N*X+(1-N)*Y',Y'上一周期Y,N必須小於1};
LINETHICK——粗細,color——顏色,stick——柱狀線,CROSSDOT——小交叉線,CIRCLEDOT——小圓圈線,POINTDOT——小圓點線。
MA1:MA(C,5);
MA2:MA(C,20),LINETHICK3,COLORRED;
均線差值1:(MA1-MA2)*1,STICK;
均線差值2:(MA1-MA2)*3,CROSSDOT;
均線差值3:(MA1-MA2)*6,CIRCLEDOT;
均線差值4:(MA1-MA2)*9,POINTDOT;
LINESTICK——指標線加柱狀線。
MA1:=MA(C,5);
MA2:=MA(C,10);
均線差值:MA1-MA2,LINESTICK;
COLORSTICK——彩色柱狀線。
MA1:=MA(C,5);
MA2:=MA(C,10);
均線差值:MA1-MA2,COLORSTICK;
VOLSTICK——成交量柱狀線。
MA1:=MA(C,5);
MA2:=MA(C,10);
均線差值:MA1-MA2,VOLSTICK;
DRAWTEXT——寫文字(必須寫在一對單引號內),DRAWICON——畫圖標。
MA1:MA(C,5);
MA2:MA(C,10);
金叉:=CROSS(MA1,MA2);
寫文字:DRAWTEXT(金叉,MA1,'金叉');
畫圖標:DRAWICON(金叉,MA2,1);
STICKLINE——畫柱線,0實心柱,-1虛線空心柱,1實線空心柱。后面的輸出會遮擋住前面的輸出。
MA5:MA(C,5);
畫柱線1:STICKLINE(C>O,C,O,2,0);
畫柱線2:STICKLINE(C>O,H,L,0,0),COLORBLUE;
畫柱線3:STICKLINE(C<O,H,L,1,1);
畫柱線4:STICKLINE(C<O,C,O,3,-1);
MA10:MA(C,10),COLORGREEN;
DRAWLINE——繪制直線段,0不延長,1向右延長。PLOYLINE——繪制折線。
畫直線:DRAWLINE(L=LLV(L,10),L,H=HHV(H,10),H,0);
畫折線:PLOYLINE(H=HHV(H,30),H);
均線變色,DRAWNULL——返回無效值。nodraw——只輸出數值、不輸出線條,不影響公式坐標。LINETHICK0——只輸出數值、不輸出線條,在
其它軟件中不影響公式坐標,在通達信中影響公式坐標。
MA1:MA(C,5);
MA2:MA(C,10);
變色:IF(MA1>REF(MA1,1),MA1,DRAWNULL),LINETHICK2,COLORRED;
成交量:V,NODRAW;
MA1:MA(C,5);
MA2:MA(C,10);
變色:IF(MA1>MA2,MA1,DRAWNULL),LINETHICK2,COLORRED;
成交量:V,LINETHICK0;
Winner——獲利盤,cost——成本分布情況。
獲利盤:WINNER(C)*100;
成本分布:COST(80);
Zig——之字轉向,1最高價、2最低價、3收盤價。PEAK——波峰價格,1最高價、2最低價、3收盤價。TROUGH——波谷價格,1最高價、2最低價
、3收盤價。
之字轉向:ZIG(3,10);
波峰:PEAK(3,10,1);
波谷:TROUGH(3,10,1);
波峰到現在的周期數——PEAKBARS,波谷到現在的周期數——TROUGHBARS。
波峰到現在周期:PEAKBARS(3,10,1);
波谷到現在周期:TROUGHBARS(3,10,1);
BACKSET——回設,馬后炮。
MA10:MA(C,10);
回設:=BACKSET(C/REF(C,1)>1.09,2);
A:=IF(REF(回設,1)=0 AND 回設=1,1,0);
DRAWICON(A,L*0.98,1);
跨周期引用的公式也具有未來性質。
周J:"KDJ.J#WEEK";
周D:"KDJ.D#WEEK";
金叉:CROSS(周J,周D)*30;
還有一種作弊手法——將公式信號限制在有行情的時段發出。
另外一種作弊:O<REF(C,1) AND DATE=1080918;
建議暫時關閉本教程,把講義中這一節的內容挨個復制到你自己的軟件中,按照這一節開始時所講的函數學習方法復習一遍。
要將自己的思路用公式去表達出來,首先是確定需要哪些數據,然后觀察這些數據之間的關系,再按語句規則的要求用函數去定義觀察到的關
系。
{K線形態}
陰線:C<O;
陽線:C>O;
上漲:C>REF(C,1);
下跌:C<REF(C,1);
平盤:C=REF(C,1);
大陽線:C/REF(C,1)>1.05;
大陰線:C/REF(C,1)<0.95;
高開:O>REF(C,1);
低開:O<REF(C,1);
高開高走:O>REF(C,1) AND C>O;
高開低走:O>REF(C,1) AND C<O;
低開低走:O<REF(C,1) AND C<O;
低開高走:O<REF(C,1) AND C>O;
上跳空:L>REF(H,1);
下跳空:H<REF(L,1);
長上影:H/MAX(O,C)>1.03;
長下影:MIN(O,C)/L>1.03;
十字星:MAX(O,C)/MIN(O,C)<1.02 AND H/MAX(O,C)>1.01 AND MIN(O,C)/L>1.01;
正T字:O=C AND C=H AND L<H;
倒T字:O=C AND C=L AND H>L;
一字漲停:O=C AND C=H AND L=H AND C>REF(C,1);
一字跌停:O=C AND C=L AND L=H AND C<REF(C,1);
橫盤:HHV(H,20)/LLV(L,20)<1.15;
均線狀況——金叉和死叉。
MA1:MA(C,5);
MA2:MA(C,10);
金叉:CROSS(MA1,MA2);
死叉:CROSS(MA2,MA1);
均線上拐、下拐、將死未死。
MA1:MA(C,5);
MA2:MA(C,10);
上拐:=REF(MA1,1)<REF(MA1,2) AND MA1>REF(MA1,1);
下拐:=REF(MA1,1)>REF(MA1,2) AND MA1<REF(MA1,1);
將死未死:=COUNT(MA1>MA2,5)=5 AND 上拐;
DRAWICON(上拐,MA1*0.98,1);
DRAWICON(下拐,MA1*1.01,2);
DRAWICON(將死未死,MA1*0.96,11);
多頭排列、空頭排列。
MA1:MA(C,5);
MA2:MA(C,10);
MA3:MA(C,20);
多頭排列:=MA1>MA2 AND MA2>MA3;
空頭排列:=MA1<MA2 AND MA2<MA3;
STICKLINE(多頭排列,MA1,MA3,0,0),COLORRED;
STICKLINE(空頭排列,MA1,MA3,0,0),COLORGREEN;
均線粘合、粘合一段時間。
MA1:MA(C,5);
MA2:MA(C,10);
MA3:MA(C,20);
粘合:=MAX(MAX(MA1,MA2),MA3)/MIN(MIN(MA1,MA2),MA3)<1.02;
粘合一段時間:=COUNT(粘合,10)=10;
STICKLINE(粘合,MAX(MAX(MA1,MA2),MIN(MIN(MA1,MA2),MA3)),MA3,1,0),COLORRED;
DRAWICON(粘合一段時間,MA3*0.98,1);
三金叉。
DIF2:"MACD.DIF";
DEA2:"MACD.DEA";
單金叉:CROSS(DIF2,DEA2);
三金叉:(單金叉 AND COUNT(單金叉,10)>=3)*2;
成交量狀況——主要觀察成交量之間、成交量與均量線之間以及換手率之間的關系。放量、歷史天量。
放量1:V>REF(V,1)*2;
放量2:V>MA(V,60);
放量3:V*100/FINANCE(7)*100>8;
歷史天量:V=HHV(V,0);
連續放量。
連續放量1:COUNT(V>REF(V,1),5)=5;
連續放量2:(COUNT(V>MA(V,60),5)=5)*2;
連續放量3:(COUNT(V*100/FINANCE(7)*100>8,5)=5)*3;
縮量、歷史地量。
縮量1:V<REF(V,1)*0.5;
縮量2:V<MA(V,60);
縮量3:V*100/FINANCE(7)*100<1;
歷史地量:V=LLV(V,0);
連續縮量。
連續縮量1:COUNT(V<REF(V,1),5)=5;
連續縮量2:(COUNT(V<MA(V,60),5)=5)*2;
連續縮量3:(COUNT(V*100/FINANCE(7)*100<1,5)=5)*3;
籌碼低位密集。
籌碼密集:=(WINNER(C*1.1)-WINNER(C*0.9))*100>50;
相對低位:=(C-COST(0.01))/(COST(99.99)-COST(0.01))*100<10;
低位密集:籌碼密集 AND 相對低位;