引用函數(shù)主要是向前引用數(shù)據(jù)。BACKSET可以理解為向后引用某些判斷信號,并不能引用具體數(shù)據(jù)。 股市技術(shù)分析主要是根據(jù)已經(jīng)發(fā)生的數(shù)據(jù),來推測未來走向的可能,所以引用函數(shù)在公式中應(yīng)用得最多,具體使用時,奧妙也最多。
一、 函數(shù): COUNT(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 統(tǒng)計N周期中滿足X條件的周期數(shù),若N=0則從第一個有效值開始。 示例: COUNT(CLOSE>OPEN,20) 表示統(tǒng)計20周期內(nèi)收陽的周期數(shù)
函數(shù): SUM(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 統(tǒng)計N周期中X的總和,N=0則從第一個有效值開始。 示例: SUM(VOL,0) 表示統(tǒng)計從上市第一天以來的成交量總和
COUNT,計數(shù)。SUM,總數(shù)、和。 當(dāng)數(shù)組為邏輯運算判斷的結(jié)果時,COUNT和SUM的返回值是一樣的。一般習(xí)慣上,對于邏輯運算信號,用COUNT統(tǒng)計,返回其它數(shù)值的,用SUM統(tǒng)計。當(dā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);和以上得出的結(jié)果應(yīng)該是一樣的。 股市的不隨機規(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)計出來。 出個“難題”吧: 有個MA5金叉MA10作為買入條件,死叉為賣出條件的交易系統(tǒng),試做一個副圖公式,以每次買一股計算,統(tǒng)計出最后的交易結(jié)果(暫不考慮手續(xù)費)。買入賣出均以收盤價計算。 二、 函數(shù): REF(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 引用N周期前的X值。 示例: REF(CLOSE,1) 表示上一周期的收盤價,在日線上就是昨收 REF:REFERENCED,參考的、引用的。 N可以為變量,常用BARSLAST(X)等。 三、 函數(shù): MA(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 求X的N日移動平均值。 算法: (X1+X2+X3+...+Xn)/N 示例: MA(CLOSE,10),表示求10日均價
MA:MOVING AVERAGE,移動平均。 目前飛狐的MA(X,N)函數(shù)支持N為序列變量。 這個簡單移動平均值,僅僅覆蓋最近的N個周期,并且在每個周期中分配的權(quán)重是一模一樣的,均為1/N。 移動平均線實質(zhì)上是一種追蹤趨勢的工具,而且滯后于市場的變化。這些結(jié)果的原因,就是它的計算方法了。 從輸出看,N所取周期越長,曲線就越平滑。 平滑和敏感是一對矛盾,請看: A:MA(C,5); B:MA(A,5); D:MA(B,5);{主圖疊加} 輸出線越來越平滑,但敏感性越來越差。 兩條簡單移動平均線的交叉,何時、何地所選的參數(shù)最優(yōu),可以參考飛狐中的“探索最佳參數(shù)”功能。 線性加權(quán)移動平均值的算法函數(shù),飛狐并未提供。 以五天的線性加權(quán)移動平均的算法為例: 五天線性加權(quán):(C*5+REF(C,1)*4+REF(C,2)*3+REF(C,3)*2+REF(C,4)*1)/(5+4+3+2+1); MA(C,5);{主圖疊加} 由于算法的原因,線性加權(quán)移動平均線由于日子越近的權(quán)重越大,比簡單移動平均線,跟隨趨勢要緊密一些,敏感一些。 從圖上看,兩者的交叉也是極為敏感的。 四、 函數(shù): EMA(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 求X的N日指數(shù)平滑移動平均。 算法: 若Y=EMA(X,N) 則Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。 示例: EMA(CLOSE,30) 表示求30日指數(shù)平滑均價 EMA中的E,可能是EXPONENT,指數(shù)、冪。 把算法寫成這個樣子:Y=2*X/(N+1)+(N-1)/(N+1)*Y',就可以看出,當(dāng)前周期數(shù)組值所占的權(quán)重是2/(N+1),而上一周期Y值所占的權(quán)重是(N-1)/(N+1)。注意,這兩個權(quán)重相加,結(jié)果為1:2/(N+1)+(N-1)/(N+1)=1。 由于一個很經(jīng)典的指標(biāo)指數(shù)平滑異同平均線MACD(1979年就發(fā)明出來了)里面,要用到EMA,才使EMA還在基本函數(shù)中占有一席之地。后面我們可以看到,用SMA也可以達到相同的算法。 N可以取到1,不過輸出就沒有加權(quán)的效果了。 五、 函數(shù): SMA(X,N,M) 參數(shù): X為數(shù)組,N為計算周期,M為權(quán)重 返回: 返回數(shù)組 說明: 求X的N日移動平均,M為權(quán)重。 算法: 若Y=SMA(X,N,M) 則 Y=[M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必須大于M。 示例: SMA(CLOSE,30,1) 表示求30日移動平均價 SMA中的S,不會是SIMPLE(簡單)的意思吧?由于我們習(xí)慣稱MA為簡單移動平均線,所以稱SMA為什么就大傷腦筋。 我的理解,SMA應(yīng)該稱為指數(shù)加權(quán)移動平均線。不對之處請方家指出。
把算法寫成這個樣子:Y=M/N*X+(N-M)/N*Y',就可以看出,當(dāng)前周期數(shù)組值所占的權(quán)重是M/N,而上一周期Y值所占的權(quán)重是(N-M)/N。注意,這兩個權(quán)重相加,結(jié)果為1:M/N+(N-M)/N=1。 看出來了吧?SMA(X,N+1,2)=EMA(X,N); A:SMA(C,N+1,2); B:EMA(C,N);{N:5,2,99。主圖疊加} 兩條線輸出一樣。在SMA的參數(shù)中,N必須大于M,否則沒有輸出。
SMA中,數(shù)組每天所占的權(quán)重,是較為復(fù)雜的。總的來說,日子越近,所占的權(quán)重越大,當(dāng)天所占的權(quán)重是M/N,前一天所占的權(quán)重是M*(N-M)/(N*N);日子越遠,所占的權(quán)重就越小,上市第一天的K線數(shù)據(jù)中,在目前還有權(quán)重的體現(xiàn),不過已經(jīng)非常非常小了。 SMA看似解決了MA的兩大缺點:1、只有N天內(nèi)的數(shù)據(jù)占有權(quán)重;2、N天內(nèi)數(shù)據(jù)所占權(quán)重比重一樣。有所得必有所失,SMA自己的缺點體現(xiàn)在光滑有余,敏感不足。
有一項檢測系統(tǒng)得出的結(jié)論稱:“簡單移動平均值方法既勝過線性加權(quán)平均值法,也勝過指數(shù)加權(quán)平均值法。”(<期貨市場技術(shù)分析>P231),當(dāng)然他們不是檢測中國股市。有興趣的朋友,可以用這些移動平均函數(shù),做出交易系統(tǒng),然后進行檢測。 六、 函數(shù): DMA(X,A) 參數(shù): X為數(shù)組,A為計算周期 返回: 返回數(shù)組 說明: 求X的動態(tài)移動平均。 算法: 若Y=DMA(X,A) 則 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必須小于1。 示例: DMA(CLOSE,VOL/CAPITAL) 表示求以換手率作平滑因子的平均價 呵呵,均線函數(shù)還有。 DMA中的D,是中文的拼音:DONG。也可能是DYNAMIC。 這個函數(shù),與SMA是一家的,看: Y=M/N*X+(N-M)/N*Y'; Y=A*X+(1-A)*Y'; 前者說,N必須大于M,后者說,A必須小于1。然后兩者就一樣了:A=M/N。 說“A為計算周期”似乎不妥,A明明要取小數(shù)才行。DMA在第一根K線就開始起算,SMA要到第二根K線開始起算。 七、 函數(shù): HHV(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 求N周期內(nèi)X最高值,N=0則從第一個有效值開始。 示例: HHV(HIGH,30) 表示求30日最高價
函數(shù): HHVBARS(X,N) 返回: X為數(shù)組,N為計算周期 參數(shù): 返回數(shù)組 說明: 求N周期內(nèi)X最高值到當(dāng)前周期數(shù),N=0表示從第一個有效值開始統(tǒng)計 示例: HHVBARS(HIGH,0) 求得歷史新高到到當(dāng)前的周期數(shù) 這兩個函數(shù)一起用,可以找到當(dāng)前N天中的最高點。 A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1); B:=COUNT(A,N)=1;{取得前N個周期內(nèi)的最高點位置} REF(H,BARSLAST(B)); DRAWICON(B,H,1),ALIGN2;{主圖疊加。N:30,1,9999} 八、 函數(shù): LLV(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 求N周期內(nèi)X最低值,N=0則從第一個有效值開始。 示例: LLV(LOW,0) 表示求歷史最低價 函數(shù): LLVBARS(X,N) 參數(shù): X為數(shù)組,N為計算周期 返回: 返回數(shù)組 說明: 求N周期內(nèi)X最低值到當(dāng)前周期數(shù),N=0表示從第一個有效值開始統(tǒng)計 示例: LLVBARS(HIGH,20) 求得20日最低點到當(dāng)前的周期數(shù) 當(dāng)前N天之內(nèi)的最高點和最低點就一目了然了: A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1); B:=COUNT(A,N)=1;{取得前N個周期內(nèi)的最高點位置} REF(H,BARSLAST(B)); DRAWICON(B,H,1),ALIGN2; A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1); B2:=COUNT(A2,N)=1;{取得前N個周期內(nèi)的最低點位置} REF(L,BARSLAST(B2)); DRAWICON(B2,L,2),ALIGN1;{主圖疊加。N:30,1,9999} A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1); B:=COUNT(A,N)=1;{取得前N個周期內(nèi)的最高點位置} REF(H,BARSLAST(B)); DRAWICON(B,H,1),ALIGN2; A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1); B2:=COUNT(A2,N)=1;{取得前N個周期內(nèi)的最低點位置} REF(L,BARSLAST(B2)); DRAWICON(B2,L,2),ALIGN1;{主圖疊加。N:30,1,9999} 這個公式求前期高低點,在600036等次新股上試調(diào)整參數(shù)就露馬腳了,并不完善。 問題出在HHVBARS起算點等原因上。 南客剛發(fā)表了一個公式,就順手牽羊牽過來吧。這個公式可以說是完美解決方案: HH:HHV(H,N),LINETHICK2; LL:LLV(L,N),LINETHICK2;{主圖疊加,參數(shù)N:30,1,9999} <% VH=FFL.VARDATA("HH") VL=FFL.VARDATA("LL") VN=FFL.VARDATA("N") LAST=UBOUND(VH) IF VN>LAST THEN VN=LAST+1 FOR I=LAST TO LAST-VN+1 STEP-1 VH(I)=VH(LAST) VL(I)=VL(LAST) NEXT FFL.VARDATA("HH")=VH FFL.VARDATA("LL")=VL FFL.VARSTARTINDEX("HH")=LAST-VN+1 FFL.VARSTARTINDEX("LL")=LAST-VN+1 %> 當(dāng)N個周期之內(nèi),有兩個最高價,即有等高的情況出現(xiàn),HHVBARS會返回哪個最高價到當(dāng)前的周期數(shù)呢? 用副圖公式觀察一下,N取10: HHVBARS(H,N); 如圖,我們可以得出結(jié)論,返回的是前一個最高價到當(dāng)前的周期數(shù)。 同樣,當(dāng)在N個周期之內(nèi),有兩個等低的最低價出現(xiàn)時,LLVBARS會返回前一個最低價到當(dāng)前的周期數(shù)。 九、 函數(shù): SUMBARS(X,A) 參數(shù): X為數(shù)組 返回: 返回數(shù)組 說明: 將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù) 示例: SUMBARS(VOL,CAPITAL) 求完全換手到現(xiàn)在的周期數(shù) 這個函數(shù)好用,在于它不但能精確地得到統(tǒng)計結(jié)果,而且能得到“模糊”的結(jié)果。 就以SUMBARS(VOL,CAPITAL)為例: 日期數(shù):SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盤的日期數(shù)} 驗證:SUM(V,日期數(shù))/CAPITAL;{把返回的日期數(shù)之內(nèi)的成交量累計,再除以流通盤} 運行的結(jié)果中,我們可以看到,“驗證”的輸出,除了SUMBARS起算點附近之外,從來沒有小于1的。可見SUMBARS只往多算,不往少算,非常“精明”。 十、 函數(shù): BARSCOUNT(X) 參數(shù): X為數(shù)組 返回: 返回數(shù)組 說明: 第一個有效數(shù)據(jù)到當(dāng)前的天數(shù) 示例: BARSCOUNT(CLOSE) 對于日線數(shù)據(jù)取得上市以來總交易日數(shù),對于分筆成交取得當(dāng)日成交筆數(shù),對于1分鐘線取得當(dāng)日交易分鐘數(shù) BARS是什么?我們看到,關(guān)于取得相隔時間周期的函數(shù)中,多數(shù)以BARS開頭。 查字典,BAR的意思有很多,有條、條形、酒巴、巴等。后來才恍然大悟:相隔時間周期,不就是中間相隔幾根條形K線么? BARSCOUNT(X)是第一個有效數(shù)據(jù)到當(dāng)前的天數(shù)。那么什么是有效數(shù)據(jù)? A:BACKSET(ISLASTPERIOD,10); 零:BARSCOUNT(A); 很小:BARSCOUNT(C/10000000000000); 負數(shù):BARSCOUNT(-C); 不存在:BARSCOUNT(MA(C,10)); 可見,有效數(shù)據(jù)并不是全是大于等于1的數(shù)據(jù),只要有輸出的數(shù)據(jù),不管是零,還是負數(shù),均為有效數(shù)據(jù)。 而MA(C,10)是從第十根K線開始起算的,所以一直要到第十根K線,BARSCOUNT(MA(C,10))才輸出1。 這樣找一些指標(biāo)的起算點時間位置,用BARSCOUNT函數(shù)就很管用了。 一般找第一根K線的位置,就可以寫為BARSCOUNT(C)=1; 十一、 函數(shù): BARSSINCE(X) 參數(shù): X為數(shù)組 返回: 返回數(shù)組 說明: 第一次X不為0到現(xiàn)在的天數(shù) 示例: BARSSINCE(HIGH>20) 表示股價第一次超過20元時到當(dāng)前的周期數(shù) SINCE,自...以后。BARSSINCE和BARSCOUNT很象,不過它找的是非零信號。 A:BACKSET(ISLASTPERIOD,10); 零:BARSsince(A); 很小:BARSsince(C/10000000000000); 負數(shù):BARSsince(-C); 不存在:BARSsince(MA(C,10)); 可見,零和無效數(shù)據(jù),均不被計數(shù)。一般BARSSINCE是針對邏輯運算的結(jié)果的,因為邏輯運算的結(jié)果輸出,不是0,就是1。 十二、 函數(shù): BARSLAST(X) 參數(shù): X為數(shù)組 返回: 返回數(shù)組 說明: 上一次X不為0到現(xiàn)在的天數(shù) 示例: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一個漲停板到當(dāng)前的周期數(shù) 條件滿足的當(dāng)前周期,BARSLAST返回0。 是“不為0”到現(xiàn)在的天數(shù)么?運行這個公式試試: A:=C>O; A1:=0.5*A; A2:=3*A; A3:=-3*A; 一:BARSLAST(A1); 二:BARSLAST(A2); 三:BARSLAST(A3); 如圖,“一”根本就沒有輸出。初步可得出結(jié)論:其絕對值大于等于1的數(shù)組信號,BARSLAST(數(shù)組)才有輸出。 十三、 函數(shù): BACKSET(X,N) 參數(shù): X為數(shù)組,N為正整數(shù) 返回: 返回數(shù)組 說明: 若X非0,則將當(dāng)前位置到N周期前的數(shù)值設(shè)為1。 示例: BACKSET(CLOSE>OPEN,2) 若收陽則將該周期及前一周期數(shù)值設(shè)為1,否則為0 如果公式檢測出來有未來數(shù)據(jù),則BACKSET是第一個嫌疑。 BACKSET是往前倒推信號(數(shù)據(jù)1)的,僅此而已。由于所有基本函數(shù)都是序列變量,所以要用基本函數(shù),把當(dāng)前的數(shù)據(jù)(比如最高價)往前推是做不到的。所以說,基本函數(shù)要往后引用具體數(shù)據(jù)是做不到的,往后引用信號是可能用BACKSET做到的。 說BACKSET不可或缺,是因為用基本函數(shù)在找歷史峰點等公式中,如果沒有它將一籌莫展。 這個“說明: 若X非0,則將當(dāng)前位置到N周期前的數(shù)值設(shè)為1。”有點問題,如果數(shù)組X是邏輯運算的結(jié)果是對的,如果不是就難說了,比如: A:BACKSET(0.1*ISLASTPERIOD,10); B:BACKSET(100*ISLASTPERIOD,20); D:B>REF(B,1); “A”的輸出全為0,“B”的輸出就正常了。 十四、 函數(shù): FILTER(X,N) 參數(shù): X為數(shù)組,N為正整數(shù) 返回: 返回數(shù)組 說明: 過濾連續(xù)出現(xiàn)的信號,X滿足條件后,刪除其后N周期內(nèi)的數(shù)據(jù)置為0 示例: FILTER(CLOSE>OPEN,5) 查找陽線,5天內(nèi)再次出現(xiàn)的陽線不被記錄在內(nèi) 如果說BACKSET能夠向后引用信號,那么FILTER就能向后過濾信號--即把有效信號去掉。比如N取3,就把以后3個周期內(nèi)的有效信號去掉了,所以從連續(xù)信號上看,兩個信號之間的間隔不可能小于3的。用這個公式觀察一下就容易明白了: A:=C>O; FILTER(A,3); 十五、 舉兩個綜合運用引用函數(shù)的例子。 1、RSI(相對強弱指標(biāo)(Relative Strenth Index),1978年由韋爾斯·王爾德發(fā)明) A、飛狐的反趨向指標(biāo)中的RSI是這樣寫的: LC := REF(CLOSE,1); RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100; RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100; RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100; {N1:6,2,100 N2:12,2,100 N3:24,2,100} RSI1、RSI2、RSI3三根線是一樣的算法,只是所取參數(shù)不同。 MAX,在兩者之間取大者。ABS,取絕對值。以日K周期為例,LC是昨天的收盤價,C-LC即為兩天之間的收盤價差值。 RSI的分母是這個差值的絕對值,進行指數(shù)加權(quán)平均處理。 RSI的分子是上漲中的差值,進行指數(shù)加權(quán)平均處理。 分子所占分母的比重的百分比,即得出RSI的值。 B、原始RSI的算法是這樣的: 設(shè)A為N天內(nèi)上漲收盤價的平均值,B為N天內(nèi)下跌收盤價的平均值。 RSI=100-100/(1+RS),其中的RS=A/B。 經(jīng)過化簡,RSI=100*A/(A+B)。寫成公式: LC:=REF(C,1); D:=IF(C>LC,C-LC,0); E:=IF(C<LC,LC-C,0); A:=SUM(D,N)/N; B:=SUM(E,N)/N; RSI:100*A/(A+B); {N:6,2,100} 好了,將兩種算法寫在一起: LC:=REF(C,1); D:=IF(C>LC,C-LC,0); E:=IF(C<LC,LC-C,0); A:=SUM(D,N)/N; B:=SUM(E,N)/N; 原始RSI:100*A/(A+B); {N:6,2,100} 飛狐RSI:SMA(MAX(C-LC,0),N,1)/SMA(ABS(C-LC),N,1)*100; {坐標(biāo)線位置:0; 20; 50; 80; 100; } 如圖,原始RSI要比飛狐RSI要敏感一些,因為飛狐的RSI經(jīng)過了指數(shù)加權(quán)平均處理。 我沒有說指數(shù)加權(quán)平均處理就不好了,經(jīng)過處理后,指標(biāo)會平滑、穩(wěn)定一些。 2、參數(shù)可調(diào)整的峰點公式 A:=REF(H,N)=HHV(H,2*N+1);{當(dāng)前位置N天之前的最高價是最近2*N+1根K線中的最高價} B:=FILTER(A,N); {當(dāng)高點附近有等高的K線出現(xiàn)時,會影響后續(xù)高點的判斷,所以要過濾} D:=BACKSET(B,N+1);{將當(dāng)前位置及前N周期的數(shù)值設(shè)為1,所以要用N+1} HD:=FILTER(D,N); {當(dāng)高點附近有等高的K線出現(xiàn),取第一個,過濾掉后面N個周期之內(nèi)出現(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ù),詳見簡介二中的探討說明。 紅球綠球作為峰點標(biāo)志,在顯示K線不多的情況下,還比較清楚。但當(dāng)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; |
|