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