飛狐基本函數(shù)簡介之指標函數(shù) 我自己也是摸著石頭過河。 一、 函數(shù): ZIG(K,N) 參數(shù): N為常數(shù),參數(shù)K可為序列或常數(shù),K取0--3,表示0:開盤價,1:最高價,2:最低價,3:收盤價;也可為ma(close,5)等。 返回: 返回數(shù)組 說明: 當價格變化量超過N%時轉(zhuǎn)向 示例: ZIG(3,5) 表示收盤價的5%的ZIG轉(zhuǎn)向 ZIG(MA(C,20),5)表示均線的5%的ZIG轉(zhuǎn)向 ZIG,之字形。 1、K可以作為參數(shù)調(diào)整,也可以直接寫其它的指標線,如"kd.k"。N也可以做成參數(shù)調(diào)整。 2、在K線中,ZIG只能對一根指標線進行轉(zhuǎn)向處理。要想高點在H位置,低點在L位置,ZIG是做不到的。 3、ZIG到底是如何體現(xiàn)“未來”的?即它是怎么畫出來的?見最后的說明。 4、ZIG輸出的是數(shù)值,不是直線。 5、ZIG一般使用在看波浪、看形態(tài)上。 ZIG函數(shù)是未來函數(shù)之第二大嫌疑。在交易系統(tǒng)中用未來函數(shù),就是用BACKSET或ZIG,可以使許多人“夢想成真”。 由于“未來函數(shù)”在交易系統(tǒng)中可以大大作弊,才使其在指標和選股公式中也一起“臭名昭著”。
二、 函數(shù): PEAK(K,N,M) 參數(shù): N為常數(shù),參數(shù)K可為序列或常數(shù),K取0--3,表示0:開盤價,1:最高價,2:最低價,3:收盤價;也可為ma(close,5)等,M為大于等于1的整數(shù) 返回: 返回數(shù)組 說明: 表示之字轉(zhuǎn)向ZIG(K,N)的前M個波峰的數(shù)值 示例: PEAK(1,5,1) 表示%5最高價ZIG轉(zhuǎn)向的上一個波峰的數(shù)值 PEAK(MA(C,20),5,1) 表示均線的5%的ZIG轉(zhuǎn)向的上一個波峰的數(shù)值 PEAK,高峰。 這個函數(shù)可以取到ZIG波峰的數(shù)值。如果K取1,波峰取的是H。如果K取3,波峰是C的波峰,可不是H。 三、 函數(shù): PEAKBARS(K,N,M) 參數(shù): N為常數(shù),參數(shù)K可為序列或常數(shù),K取0--3,表示0:開盤價,1:最高價,2:最低價,3:收盤價;也可為ma(close,5)等,M為大于等于1的整數(shù) 返回: 返回數(shù)組 說明: 表示之字轉(zhuǎn)向ZIG(K,N)的前M個波峰到當前的周期數(shù) 示例: PEAKBARS(1,5,1) 表示%5開盤價ZIG轉(zhuǎn)向的上一個波峰到當前的周期數(shù) PEAKBARS(MA(C,20),5,1)表示均線的5%的ZIG轉(zhuǎn)向的上一個波峰到當前的周期數(shù) 這個函數(shù)用來定波峰的位置的。有了位置,畫兩根線試試。 ZIG(1,N); A1:=BACKSET(ISLASTBAR,PEAKBARS(1,N,1)+1); A2:=A1>REF(A1,1); B1:=BACKSET(ISLASTBAR,PEAKBARS(1,N,2)+1); B2:=B1>REF(B1,1); C1:=BACKSET(ISLASTBAR,PEAKBARS(1,N,3)+1); C2:=C1>REF(C1,1); DRAWLINE(B2,H,A2,H,1); DRAWLINE(C2,H,B2,H,1);{N:3.1.99,主圖疊加}
四、 函數(shù): TROUGH(K,N,M) 參數(shù): N為常數(shù),參數(shù)K可為序列或常數(shù),K取0--3,表示0:開盤價,1:最高價,2:最低價,3:收盤價;也可為ma(close,5)等,M為大于等于1的整數(shù) 返回: 返回數(shù)組 說明: 表示之字轉(zhuǎn)向ZIG(K,N)的前M個波谷的數(shù)值 示例: TROUGH(2,5,2) 表示%5最低價ZIG轉(zhuǎn)向的前2個波谷的數(shù)值 TROUGH(MA(C,20),5,2) 表示均線的5%的ZIG轉(zhuǎn)向的前2個波谷的數(shù)值 TROUGH,水槽,波谷。 與PEAK對應。 五、 函數(shù): TROUGHBARS(K,N,M) 參數(shù): N為常數(shù),參數(shù)K可為序列或常數(shù),K取0--3,表示0:開盤價,1:最高價,2:最低價,3:收盤價;也可為ma(close,5)等,M為大于等于1的整數(shù) 返回: 返回數(shù)組 說明: 表示之字轉(zhuǎn)向ZIG(K,N)的前M個波谷到當前的周期數(shù) 示例: TROUGHBARS(2,5,2) 表示%5最低價ZIG轉(zhuǎn)向的前2個波谷到當前的周期數(shù) TROUGHBARS(MA(C,20),5,2) 表示均線的5%的ZIG轉(zhuǎn)向的前2個波谷到當前的周期數(shù) 對應于PEAKBARS。 這樣在應用時,ZIG的各點的數(shù)值是知道的,波峰和波谷的數(shù)值和位置也可以引用到了。 “綜合運用”: ZIG(3,N),CROSSDOT;{主圖疊加} ZIG(3,N),CIRCLEDOT,COLORMAGENTA; A:=PEAKBARS(3,N,1); B:=TROUGHBARS(3,N,1); B>A,COLORGREEN; A>B,COLORRED;{五彩K線}
六、 函數(shù): SAR(N,S,M) 參數(shù): N為計算周期,S為步長,M為極值 返回: 返回數(shù)組 說明: 計算拋物轉(zhuǎn)向點 示例: SAR(10,2,20) 表示計算10日拋物轉(zhuǎn)向,步長為2%,極限值為20% STOP AND REVERSE,轉(zhuǎn)向點指標,停頓指標,又稱拋物線指標,全稱為拋物線轉(zhuǎn)向指標。 SAR指標,也是王爾德(RSI的發(fā)明人)發(fā)明的,主要用于與趨向指標DMI(DIRECTION MOVEMENT INDEX)結(jié)合使用。 SAR一般以圓圈的形式輸出,實際上也是輸出數(shù)值的,形式可以用描述函數(shù)進行改變。 說是拋物轉(zhuǎn)向,輸出的并不是標準的拋物線。 目前的轉(zhuǎn)向指標,典型的有三個,ZIG、SAR(因為做成基本函數(shù)了,所以有數(shù)值輸出),還有一個是結(jié)構波浪,可以用基本函數(shù)做出,但只能輸出直線,不能輸出完整的數(shù)值。 SAR的畫法,在眾多的股票軟件中,是一種百花齊放的局面。由于飛狐提供了開放可定制的公式平臺,所以,只要有明確思路的SAR畫法,都可以在飛狐實現(xiàn)。飛狐中基本函數(shù)SAR的具體畫法在最后介紹。 SAR的畫法,矛盾集中在數(shù)個方面,所以沒有一種方法能夠一統(tǒng)江山。 1、起算點,是從看漲開始還是從看跌開始?怎么判斷畫前的看漲和看跌? 2、轉(zhuǎn)向條件滿足時,是遲一個周期跳轉(zhuǎn)還是遲兩個周期跳轉(zhuǎn)? 3、跳轉(zhuǎn)后的第二個周期,以0步長計算,還是以STEP步長計算? 4、當N取1時,應不應該有輸出?等等 飛狐的主要問題是在起算點就滿足跳轉(zhuǎn)條件時,會延遲一個周期跳轉(zhuǎn),而后面的就不延遲跳轉(zhuǎn)了。分析家的問題是起算點有時是找不準前期極值的。這些都不是大問題,因為后面的計算是趨向于統(tǒng)一的,起算點附近的SAR問題,一般無人問津。 七、 函數(shù): SARTURN(N,S,M) 參數(shù): N為計算周期,S為步長,M為極值 返回: 返回數(shù)組 說明: 若發(fā)生向上轉(zhuǎn)向則返回1,若發(fā)生向下轉(zhuǎn)向則返回-1,否則為0 由于可以返回三個值,就可以判斷是向上的跳轉(zhuǎn)還是向下的跳轉(zhuǎn)。 SA:=SAR(3,2,20); A:=SARTURN(3,2,20); B:=A=1; D:=A=-1; E:=BARSLAST(B)>BARSLAST(D); F:=NOT(E); DRAWICON(E,SA,10); DRAWICON(F,SA,11);{主圖疊加}
如果想顏色更鮮艷一些,可調(diào)用BMP文件,把最后兩句改為: DRAWICON(E,SA,'S31'); DRAWICON(F,SA,'S28');
八、 函數(shù): COST(N) 參數(shù): N為常數(shù),表示百分比 返回: 返回數(shù)組 說明: 計算成本分布情況,該函數(shù)僅對日線分析周期有效 示例: COST(10) 表示10%獲利盤的價格是多少,即有10%的持倉量在該價格以下,其余90%在該價格以上,為套牢盤 函數(shù): WINNER(A) 參數(shù): A為數(shù)組或常數(shù) 返回: 返回數(shù)組 說明: 計算獲利盤比例,該函數(shù)僅對日線分析周期有效 示例: WINNER(CLOSE) 表示以當前收市價賣出的獲利盤比例,例如返回0.1表示10%獲利盤 WINNER(10.5) 表示10.5元價格的獲利盤比例 COST,成本。WINNER,優(yōu)勝者,獲利。 兩者互相換算。COST是根據(jù)獲利盤估算價格,WINNER是根據(jù)價格估算獲利盤。 之所以說估算,是因為要精確算,必須把每筆成交的價格和成交量都記錄下來,一般這是很難做到的。 就算能做到,籌碼分布方面的技術分析有效么?這就看各人自己的取舍了,股市中目前還沒有發(fā)現(xiàn)包賺不賠的技術指標。 COST(WINNER(C)*100); C; 此兩者趨于相等。也說明這兩個函數(shù)支持序列變量。 平均成本價的計算。將剛好完全換手的每筆成交量和成交價格相乘,然后除以這期間總的成交量,即為平均成本價。 平均成本價格:COST(50); AA:=SUMBARS(VOL,CAPITAL); 平均成本價:SUM(C*V,AA)/SUM(V,AA); 實際上這兩種方法都是估算出來的,后者的誤差可能更大一些。 相當于一箱蘋果是2元一斤,另兩箱蘋果是5元一斤。三箱蘋果的平均價格就是(2*1+5*2)/(1+2)=4元。 這有點統(tǒng)計學中的調(diào)和平均值的味道了?;I碼分布,要搞得復雜,可以計算中位值、眾位值,研究正態(tài)分布、偏態(tài)分布,還有集中度、穿透力,當真是花樣繁多,只能留給有興趣的朋友自己研究了。 籌碼分布的峰位在哪個價格區(qū)域,是籌碼分布愛好者很想知道的一個指標。用COST可以估算出來,留作思考題吧。 九、 函數(shù): PPART(N) 參數(shù): N為常數(shù) 返回: 返回數(shù)組 說明: 遠期成本比例,表示N周期前的成本占總成本的比例,如返回0.3表示30% 示例: PPART(20); 20天前的成本占總成本的比例 遠期成本比例,只要把近N天之成本比例算出來,遠期的自然就出來的。因為總成本為百分之百的換手率。 遠期成本比例:PPART(N)*100; A:=100*V/CAPITAL; 遠期成本:100-SUM(A,N);{參數(shù)N:10.1.999} 兩者基本相等。 十、 函數(shù): PWINNER(N,X) 參數(shù): N為常數(shù),X為數(shù)組或常數(shù) 返回: 返回數(shù)組 說明: 遠期獲利盤比例 示例: PWINNER(20,CLOSE);表示20天前的那部分成本以當前收市價賣出的獲利盤比例,例如返回0.2表示20%獲利盤
附一、ZIG線的畫法。 假設在手工畫線年代,ZIG線是怎么畫出來的,實際上也介紹了算法。 以zig(3,5),即收盤價轉(zhuǎn)向,轉(zhuǎn)向要求5%,在600036招商銀行上為例。 從第一根K線上的收盤價,慢慢往后看。直到當天的C,和以前的K線的最低C值相比的漲幅,或與最高C值相比的跌幅超過5%時,才在當天作出記號,稱之為拐點。漲幅超過5%的,稱為向上的拐點,跌幅超過5%的,稱為向下的拐點。 例中,先有向下的拐點,于是第一根K線上的C值,就是高點了。在向下的拐點出現(xiàn)之后的每根K線上,相比較記錄最低之C值。然后把當天的C值,與記錄的最低C值比較,看有沒有漲幅超過5%。例中,到6月24日,才產(chǎn)生滿足條件之向上的拐點。向上的拐點出現(xiàn)之后,回過頭,在與上一個向下的拐點之間,找到一個最低的C,作為ZIG的低點。 產(chǎn)生向上拐點之后,就在之后的K線中記錄C的最大值。當出現(xiàn)當天的C值,與最大C值相比,跌幅超過5%時,記為向下的拐點。例中,到7月12日,產(chǎn)生向下的拐點。于是從向下的拐點回過頭來,在與上一個向上的拐點之間,找到一個最高的C,作為ZIG的高點。如此循環(huán)。也就是說,ZIG的高點和低點,是根據(jù)向上和向下的拐點出來之后,回溯過去才找到的。這就是ZIG未來數(shù)據(jù)的實質(zhì)所在。 在最近期間,ZIG的未來數(shù)據(jù),要追溯到最近的一個拐點之前的一個峰點。且看最近期間的ZIG線是怎么畫出的。 從最后一根K線往前,如果先出現(xiàn)向下的拐點,則在此拐點到目前的K線中求出最小收盤價所在的K線,為低點。這個低點可能與目前的K線重合。重合的話目前的K線為低點,不重合的話目前K線為高點。 如果先出現(xiàn)向上的拐點,則在此拐點到目前的K線中求出最高收盤價所在的K線,為高點。此高點與目前的K線重合,則目前的K線為高點,否則為低點。 附二、SAR的畫法。 SAR(N,S,M),參數(shù):N為計算天數(shù),STEP=調(diào)整系數(shù)×100,MAXP=調(diào)整系數(shù)上限×100。 以sar(5,2,20),circledot;用在日線中為例。 SAR只跟K線中的H、L有關,與O、C無關。 一、起畫點 當N取5時,起畫點就在第六根K線上。第一步要做的事,就是由第一根K線到第五根K線判斷是看漲還是看跌。如是看漲,就要把起畫點畫成看漲SAR,如是看跌,就要把起畫點畫成看跌SAR。 A:(H-REF(H,1)+L-REF(L,1))>0 AND BARSCOUNT(C)=2; 如果A成立,則先畫看跌SAR(SAR在K線之上);如果A不成立,則先畫看漲SAR(SAR在K線之下)。這是我的觀察所得,各位不妨去看看是不是如此。就是說不管N取多少,起畫點是根據(jù)第一、二根K線上的H、L決定的。 二、看漲SAR 第一個看漲SAR的值,是前五天的最低價,即REF(LLV(L,5),1);然后看看SAR值是不是比L小,是的話繼續(xù),否則在下一天跳轉(zhuǎn)。 第二個看漲SAR的值,是 SAR(2)=SAR(1)+AF1*(REF(HHV(H,5),1)-SAR(1)), SAR(1)即為第一個看漲SAR的值。AF1是調(diào)整系數(shù),如果當天的H比前五天的最高H大,則要+0.02(得0.04),否則還是取0.02。然后看看SAR值是不是比L小,是的話繼續(xù),否則在下一天跳轉(zhuǎn)。 第三個看漲SAR的值,是 SAR(3)=SAR(2)+AF2*(REF(HHV(H,5),1)-SAR(2)), 計算方法與求第二個看漲SAR類同,只是當天的H是否比前五天的最高H大還要判斷,是的話AF2=AF1+0.02,否則取AF1。 然后看看SAR值是不是比L小,是的話繼續(xù),否則在下一天跳轉(zhuǎn)。 因為沒有跳轉(zhuǎn)的話,REF(HHV(H,5),1)-SAR(2)的值肯定大于0,所以看漲SAR一直是向上升的。 如此循環(huán)往復,直到跳轉(zhuǎn)條件成立就跳轉(zhuǎn),去畫看跌SAR了。而調(diào)整系數(shù)AF的值,經(jīng)過反復累積的話,最大是不能超過0.2的。 三、看跌SAR 第一個看跌SAR的值,是前五天的最高價,即REF(HHV(H,5),1);然后看看SAR值是不是比H大,是的話繼續(xù),否則要在下一天跳轉(zhuǎn)。 第二個看跌SAR的值,是 SAR(2)=SAR(1)+AF1*(REF(LLV(L,5),1)-SAR(1)), SAR(1)即為第一個看跌SAR的值。AF1是調(diào)整系數(shù),如果當天的L比前五天的最低L小,則要+0.02(得0.04),否則還是取0.02。然后看看SAR值是不是比H大,是的話繼續(xù),否則在下一天跳轉(zhuǎn)。 第三個看跌SAR的值,是 SAR(3)=SAR(2)+AF2*(REF(LLV(L,5),1)-SAR(2)), 計算方法與求第二個看跌SAR類同,只是當天的L是否比前五天的最低L小還要判斷,是的話AF2=AF1+0.02,否則取AF1。 然后看看SAR值是不是比H大,是的話繼續(xù),否則在下一天跳轉(zhuǎn)。 因為沒有跳轉(zhuǎn)的話,REF(LLV(L,5),1)-SAR(2)的值肯定小于0,所以看跌SAR一直是向下跌的。 如此循環(huán)往復,直到跳轉(zhuǎn)條件成立就跳轉(zhuǎn),去畫看漲SAR了。而調(diào)整系數(shù)AF的值,經(jīng)過反復累積的話,最大是不能超過0.2的。 SAR沒有未來之嫌,但是N、S、M的調(diào)整對SAR影響都很大,感覺靈敏性過大。 |
|