指南針自定義指標(biāo)簡(jiǎn)介(compass網(wǎng)站)_第1頁(yè)
指南針自定義指標(biāo)簡(jiǎn)介(compass網(wǎng)站)_第2頁(yè)
指南針自定義指標(biāo)簡(jiǎn)介(compass網(wǎng)站)_第3頁(yè)
指南針自定義指標(biāo)簡(jiǎn)介(compass網(wǎng)站)_第4頁(yè)
指南針自定義指標(biāo)簡(jiǎn)介(compass網(wǎng)站)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、指南針自定義指標(biāo)簡(jiǎn)介目錄1.指南針自定義指標(biāo)語(yǔ)法1.1 指標(biāo)文件結(jié)構(gòu)1.2 運(yùn)算符1.3 賦值語(yǔ)句 1.4 條件跳轉(zhuǎn)語(yǔ)句1.5 循環(huán)語(yǔ)句1.6 指標(biāo)的引用1.7 注釋2.自定義指標(biāo)語(yǔ)法范式3.函數(shù)列表3.1 引用函數(shù) 3.2 大盤(pán)函數(shù)3.3 數(shù)學(xué)函數(shù)3.4 統(tǒng)計(jì)函數(shù)3.5 三角函數(shù)4.指標(biāo)點(diǎn)評(píng)4.1 AR、BR、CR指標(biāo)4.2 SRDM(動(dòng)向速比率)指標(biāo)5.指標(biāo)進(jìn)階5.1 常見(jiàn)錯(cuò)誤5.2 用指標(biāo)速度測(cè)試提高指標(biāo)計(jì)算速度 1. 指南針自定義指標(biāo)語(yǔ)法指南針自定義指標(biāo)平臺(tái)以高級(jí)程序語(yǔ)言語(yǔ)法為模板,定義了功能強(qiáng)大的自定義指標(biāo)語(yǔ)法,支持高級(jí)語(yǔ)言的所有主要的程序結(jié)構(gòu)順序、循環(huán)和條件跳轉(zhuǎn)。指南針自定義指標(biāo)語(yǔ)

2、法以語(yǔ)句為單位,每個(gè)語(yǔ)句都需要以“;”作結(jié)尾。在自定義指標(biāo)的語(yǔ)法中,有三種語(yǔ)句:賦值語(yǔ)句、條件跳轉(zhuǎn)語(yǔ)句和循環(huán)語(yǔ)句。1.1. 指標(biāo)文件結(jié)構(gòu)指南針指標(biāo)文件(zbt或者zbu)可以直接用文本編輯器打開(kāi)。但是不提倡直接在文本編輯器中改寫(xiě)指標(biāo)文件,因?yàn)檫@樣做容易發(fā)生語(yǔ)法錯(cuò)誤,而且無(wú)法使用指標(biāo)平臺(tái)編輯環(huán)境的提示功能。指標(biāo)文件的結(jié)構(gòu)如下(括號(hào)中是注釋說(shuō)明): _ZBT (指南針指標(biāo)文件起始標(biāo)志)_NAME (指標(biāo)文件名稱(chēng),不能為空)_COMM (指標(biāo)文件注釋?zhuān)梢詾榭眨PAR (指標(biāo)的參數(shù)列表,如果有多個(gè)參數(shù),用逗號(hào)“,”分割)_VAR (指標(biāo)的局部變量列表,如果有多個(gè),用逗號(hào)“,”分割)_ZB (指標(biāo)的

3、參數(shù)指標(biāo)列表,即需要用到的指標(biāo)列表)_RES (指標(biāo)文件的結(jié)果指標(biāo)列表,即本文件能計(jì)算的指標(biāo)列表)_DEF (指標(biāo)的默認(rèn)值,如果在計(jì)算中發(fā)生錯(cuò)誤,則指標(biāo)值填為默認(rèn)值)_CODE (指標(biāo)文件代碼段起始標(biāo)志)(代碼段)_END (指標(biāo)文件結(jié)束標(biāo)志)1.2. 運(yùn)算符指南針自定義指標(biāo)中支持以下運(yùn)算符(按優(yōu)先級(jí)從高到低排列):l “(”、“)” 左右括號(hào)l “*”、“/” 乘、除l “+”、“-” 加、減l “>”、“<”、“>=”、“<=” 大于、小于、大于或等于、小于或等于l “=” 、“<>” 等于、不等于l “&” 與,邏輯運(yùn)算符,僅當(dāng)兩l “|” 或

4、l “=” 賦值,注意賦值號(hào)和等于號(hào)是一樣的為了兼容中文輸入的使用習(xí)慣,下列運(yùn)算符“()*/+-=”支持中文全角輸入。1.3. 賦值語(yǔ)句賦值語(yǔ)句的語(yǔ)法非常簡(jiǎn)單,沒(méi)有關(guān)鍵字。賦值語(yǔ)句的型式有:a = b + c;a = 系統(tǒng)函數(shù)();系統(tǒng)函數(shù)();1.4. 條件跳轉(zhuǎn)語(yǔ)句條件跳轉(zhuǎn)語(yǔ)句有4個(gè)關(guān)鍵字:IF (表示如果)、THEN (表示則)、ELSE (表示否則)、ENDIF (表示條件語(yǔ)句結(jié)束)。完整的條件跳轉(zhuǎn)語(yǔ)句的形式是:IF 條件THEN語(yǔ)句1;語(yǔ)句2;ELSE語(yǔ)句1;語(yǔ)句2;ENDIF;“條件”的形式是型如 “a > b”、“a < b”、“a = b”(注意這里的“=”是相等而不

5、是賦值的意思),也可以用與和或把簡(jiǎn)單條件串連起來(lái),型如:“(a > b) & ( b > c)”、“(a = b) | (b < c)”?!罢Z(yǔ)句1”、“語(yǔ)句2”可以是任何語(yǔ)句,包括賦值、條件跳轉(zhuǎn)或者循環(huán)語(yǔ)句。注意條件跳轉(zhuǎn)語(yǔ)句必須包含“THEN”分支,但是可以沒(méi)有“ELSE”分支,型如:IF 條件THEN語(yǔ)句1;語(yǔ)句2;ENDIF;1.5. 循環(huán)語(yǔ)句循環(huán)語(yǔ)句有3個(gè)關(guān)鍵字:LOOPBEGIN (表示開(kāi)始循環(huán))、LOOP (表示返回上一個(gè)LOOPBEGIN處繼續(xù)執(zhí)行)、BREAK (表示結(jié)束循環(huán))。循環(huán)語(yǔ)句的一般形式是:LOOPBEGIN語(yǔ)句1;語(yǔ)句2;LOOP;循環(huán)語(yǔ)句一

6、般是在滿(mǎn)足一定條件時(shí)退出循環(huán),所以循環(huán)語(yǔ)句一般都需要和條件語(yǔ)句組合使用,型如LOOPBEGINIF 條件THEN BREAK;ENDIF;語(yǔ)句1;語(yǔ)句2;LOOP;1.6. 指標(biāo)的引用自定義指標(biāo)中需要引用其他指標(biāo)。指標(biāo)的引用分為兩類(lèi):引用參數(shù)指標(biāo)和引用結(jié)果返回指標(biāo)。1. 參數(shù)指標(biāo)的引用引用參數(shù)指標(biāo)時(shí)的一般形式是:指標(biāo)名稱(chēng)日期偏移(參數(shù)列表)。日期偏移是指需要引用當(dāng)前天往前幾天的指標(biāo)數(shù)值,如果為0則表示引用當(dāng)前天的指標(biāo)數(shù)值,1則表示當(dāng)前天往前1天的指標(biāo)數(shù)值,一次類(lèi)推,注意日期偏移為0時(shí)可以不寫(xiě);參數(shù)列表標(biāo)示所引用的指標(biāo)的參數(shù),如果所引用的指標(biāo)沒(méi)有參數(shù)則不能寫(xiě)該項(xiàng),如果指標(biāo)有多個(gè)參數(shù),則中間用逗號(hào)

7、(半角)分割。例如CYF指標(biāo)需要有一個(gè)參數(shù),當(dāng)引用兩天前以22為參數(shù)的CYF指標(biāo)應(yīng)該表述為:CYF2(22);收盤(pán)價(jià)指標(biāo)沒(méi)有參數(shù),需要引用當(dāng)前天的收盤(pán)價(jià)應(yīng)該表述為:CLOSE0或者CLOSE。2. 結(jié)果返回指標(biāo)的引用引用結(jié)果返回指標(biāo)分為兩種情況,即結(jié)果返回指標(biāo)出現(xiàn)在等號(hào)右側(cè)和出現(xiàn)在等號(hào)左側(cè)。結(jié)果返回指標(biāo)出現(xiàn)在等號(hào)右側(cè)時(shí),含義是引用結(jié)果返回指標(biāo)的數(shù)值,引用的一般形式是:指標(biāo)名稱(chēng)引用日期注意此時(shí)不能有參數(shù)列表;結(jié)果返回指標(biāo)出現(xiàn)在等號(hào)左側(cè)時(shí),含義是給結(jié)果返回指標(biāo)賦值,引用的一般形式是:指標(biāo)名稱(chēng),注意此時(shí)不能有日期偏移和參數(shù)列表。1.7. 注釋指南針自定義指標(biāo)語(yǔ)法中,允許使用注釋來(lái)標(biāo)識(shí)語(yǔ)句的具體意義。

8、注釋以雙斜杠“/”開(kāi)始到本行的結(jié)束。在指標(biāo)文本窗口中注釋以綠色字體顯示。2.自定義指標(biāo)語(yǔ)法范式3. 函數(shù)列表3.1. 引用函數(shù) BLAST( X, N )求0N-1周期中,最近一次條件X成立的周期到當(dāng)前天的日期偏移。如果N為0,則一直搜索到第一個(gè)有效周期(上市第一天)。X是條件表達(dá)式,例如CLOSE > OPEN、CYF13 > CYF34等;N是搜索的范圍。如果當(dāng)前天即滿(mǎn)足條件X,返回0,在搜索范圍內(nèi)條件X沒(méi)有滿(mǎn)足則返回N舉例:BLAST( CYF13 > CYF34, 10 ),表示求當(dāng)前天和過(guò)去9天中最近一次CYF13 > CYF34的日期偏移。 COST( N

9、)取得成本分布情況。N是一個(gè)表示百分比的表達(dá)式,如20、漲跌幅等。合法的N必須是0100間的數(shù),如果N小于0,則視為0,如果N大于100,則視為100。舉例:COST(20),表示20獲利盤(pán)的價(jià)格是多少,即有20的流通盤(pán)成本在該價(jià)格以下(獲利盤(pán)),其余80的流通盤(pán)成本在該價(jià)格以上(套牢盤(pán))。 COSTD( X, N )取得價(jià)格分布情況。X是一個(gè)表示價(jià)格的表達(dá)式,如15、CLOSE、HIGH等;N是一個(gè)表示百分比的表達(dá)式,表示相對(duì)價(jià)格X的偏移。合法的N值應(yīng)該是一個(gè)-100到100的數(shù)值,如果N<-100,則視為-100,N大于100,則視為100。舉例:COSTD( CLOSE, 15 )

10、,表示求當(dāng)天收盤(pán)價(jià)(1 + 15) =115的價(jià)格上的獲利盤(pán)是多少,即有多少流通盤(pán)的成本在當(dāng)天收盤(pán)價(jià)115以下。COSTD( HIGH1, -10 ),表示求昨天最高價(jià)(1 - 10) =90的價(jià)格上的獲利盤(pán)是多少。 COUNT( X, N )求0N-1周期中,條件X成立的周期數(shù)。如果N為0,則從第一個(gè)有效周期(上市第一天)開(kāi)始搜索。X是條件表達(dá)式,例如CLOSE > OPEN、CYF13 > CYF34等;N是搜索的范圍。舉例:COUNT( CLOSE > OPEN, 10 ),表示10日內(nèi)K線(xiàn)收陽(yáng)的天數(shù)。 DMA( Z, X, A )求X的以A為平滑因子的指數(shù)移動(dòng)平均。其

11、中Z是必須是結(jié)果返回指標(biāo),X是一個(gè)不為常數(shù)的表達(dá)式,A是平滑因子,其合理范圍應(yīng)該在01之間,如果A小于0則視為0,大于1則視為1。DMA的具體算法: Z = (1-A) × Z1 + X × A 。 Z1表示前一天指標(biāo)Z的數(shù)值。舉例:DMA( Z, CLOSE + OPEN, 0.2 ),表示求以0.2為平滑因子的開(kāi)盤(pán)價(jià)與收盤(pán)價(jià)之和的指數(shù)移動(dòng)平均值,結(jié)果存放在指標(biāo)Z中。 EMA( Z, X, N )求X的N日指數(shù)平滑移動(dòng)平均。N是一個(gè)非負(fù)整數(shù),如果N小于0,則視為0。EMA的具體算法:Z = (N-1)× Z1+ 2×X/(N+2)舉例:EMA( Z,

12、CYF131, 10 ),表示對(duì)當(dāng)前天的前一天的CYF13指標(biāo)作10日指數(shù)平滑移動(dòng)平均,結(jié)果存放在指標(biāo)Z中。 HHV( X, N )求N周期內(nèi)X的最大值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示周期范圍,如果N為0表示從第一個(gè)有效周期(上市第一天)開(kāi)始計(jì)算。舉例:HHV( (OPEN + HIGHT + LOW + CLOSE) / 4, 10 ),表示求10天內(nèi)的最高均價(jià)。 HHVB( X, N )求N周期內(nèi)X值最大的周期到當(dāng)前周期的日期偏移。X和N的含義同HHV(X,N)。如果X的最大值出現(xiàn)在當(dāng)前周期,函數(shù)返回0。舉例:HHVB( (OPEN + HIGHT + LOW +

13、CLOSE) / 4, 10 ),表示求10天內(nèi)的最高均價(jià)出現(xiàn)日期到當(dāng)前天的偏移值。 KLINEINDEX求當(dāng)前周期是K線(xiàn)鏈上的第一個(gè)節(jié)點(diǎn)。如果當(dāng)前是上市第一個(gè)周期,函數(shù)返回0;第二個(gè)周期,函數(shù)返回1; LFCAST( X, N )求X的N周期線(xiàn)形回歸值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作線(xiàn)性擬合,如果N為0表示從第一個(gè)有效周期(上市第一天)開(kāi)始擬合。舉例:LFCAST( CYF34, 0 ),表示對(duì)股票上市以來(lái)指標(biāo)CYF34的線(xiàn)性擬合值。 LLV( X, N )求N周期內(nèi)X的最小值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示周期范圍,如果N為0表

14、示從第一個(gè)有效周期(上市第一天)開(kāi)始計(jì)算。舉例:LLV( (OPEN + HIGHT + LOW + CLOSE) / 4, 20 ),表示求20天內(nèi)的最低均價(jià)。 LLVB( X, N )求N周期內(nèi)X值最小的周期到當(dāng)前周期的日期偏移。X和N的含義同LLV(X,N)。如果X的最小值出現(xiàn)在當(dāng)前周期,函數(shù)返回0。舉例:LLVB( (OPEN + HIGHT + LOW + CLOSE) / 4, 20 ),表示求20天內(nèi)的最低均價(jià)出現(xiàn)日期到當(dāng)前天的偏移值 LSLOPE( X, N )求X的N周期線(xiàn)形回歸線(xiàn)的斜率。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作線(xiàn)性擬合,如果N為0

15、表示從第一個(gè)有效周期(上市第一天)開(kāi)始擬合。舉例:LSLOPE( CYF13, 0 ),表示對(duì)股票上市以來(lái)指標(biāo)CYF13的數(shù)值作線(xiàn)性擬合后的直線(xiàn)斜率。 MA( X, N )求X的N周期簡(jiǎn)單平均值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作平均,如果N為0表示從第一個(gè)有效周期(上市第一天)開(kāi)始計(jì)算。MA的具體算法是: 舉例:MA( CLOSE1 + OPEN, 20 ),表示20個(gè)周期內(nèi),每日的前收加上今開(kāi)的平均值。 SMA( Z, X, N, M )求X的N日指數(shù)移動(dòng)平均,平滑因子a = M / N。其中Z是必須是結(jié)果返回指標(biāo),X是一個(gè)不為常數(shù)的表達(dá)式,M的數(shù)值應(yīng)該小

16、于N的數(shù)值。SMA的具體算法是: 舉例:SMA( Z, CYF13, 10, 5 ),表示對(duì)CYF13作平滑因子為5/10=0.5的指數(shù)移動(dòng)平均。 SUM( X, N )求X的N周期簡(jiǎn)單累加值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作簡(jiǎn)單累加,如果N為0表示從第一個(gè)有效周期(上市第一天)開(kāi)始計(jì)算。 舉例:SUM( CLOSE1 + OPEN, 20 ),表示20個(gè)周期內(nèi),每日的前收加上今開(kāi)的簡(jiǎn)單累加值。 SUMD( X, N, D )求X的N周期衰減累加值。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式;N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作簡(jiǎn)單累加,如果N為0表示從第一個(gè)有效周期(

17、上市第一天)開(kāi)始計(jì)算;D是相對(duì)日期偏移的衰減系數(shù),D應(yīng)該小于N。 舉例:SUMD( CLOSE - OPEN, 5, 1 ),表示5個(gè)周期內(nèi)的當(dāng)日漲的衰減累加,即 (CLOSE - OPEN) + (CLOSE1 - OPEN1) * 4 / 5 + (CLOSE2 - OPEN2) * 3 / 5 + (CLOSE3 - OPEN3) * 2 / 5 + (CLOSE4 - OPEN4) / 53.2. 大盤(pán)函數(shù) S0( X )引用指南針0號(hào)指數(shù)的數(shù)值,X是一個(gè)不為常數(shù)的表達(dá)式。舉例:S0( CLOSE1 + OPEN ),表示求0號(hào)指數(shù)當(dāng)前周期的前收加今開(kāi)的數(shù)值。 S0A01( X )引用

18、指南針0A01指數(shù)的數(shù)值,X是一個(gè)不為常數(shù)的表達(dá)式。舉例:S0A01( 成交量 ),表示求0A01指數(shù)當(dāng)前周期的成交量的數(shù)值。 S0AMV( X ) 引用指南針0AMV指數(shù)的數(shù)值,X是一個(gè)不為常數(shù)的表達(dá)式。 S0DMV( X ) 引用指南針0DMV指數(shù)的數(shù)值,X是一個(gè)不為常數(shù)的表達(dá)式。3.3. 數(shù)學(xué)函數(shù) ABS( X )取絕對(duì)值,ABS(X) = |X|。 DERIV( Z, X )求X的導(dǎo)數(shù),結(jié)果存放在Z中。Z應(yīng)該是結(jié)果返回指標(biāo),X是一個(gè)不為常數(shù)的表達(dá)式。舉例:DERIV( Z, CLOSE1 ),表示求前收的導(dǎo)數(shù)。 EXP( X )求e的X次方,EXP(X)=ex 。 INTEGER( X

19、 )X向下取整, 。 LN( X ) 求X的自然對(duì)數(shù)。 LOG( X ) 求X的以10為底的對(duì)數(shù)。 MAX( A, B )求A、B中的較大值。 MIN( A, B )求A、B中的較小值。 MOD( X, N )求X模N的值, POW( X, N )求X的N次方, SGN( X )取X的符號(hào),如果X是正數(shù),返回1;如果X是負(fù)數(shù)返回-1;如果X是0,返回0。 SQRT( X )取X的平方根, 3.4. 統(tǒng)計(jì)函數(shù) AVEDEV( X, N )求X的N日平均絕對(duì)差。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例AVEDEV( CLOSE OPEN, 10 ),表示統(tǒng)計(jì)

20、10日內(nèi)的當(dāng)日漲跌的平均絕對(duì)差。 DEVSQ( X, N )求X的N日偏差均方和。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例DEVSQ( CLOSE OPEN, 10 ),表示統(tǒng)計(jì)10日內(nèi)的當(dāng)日漲跌的偏差均方和。 STD( X, N )求X的N日估算標(biāo)準(zhǔn)差。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例STD( CLOSE OPEN, 10 ),表示統(tǒng)計(jì)10日內(nèi)的當(dāng)日漲跌的估算標(biāo)準(zhǔn)差。 STDP( X, N )求X的N日總體標(biāo)準(zhǔn)差。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例STDP(

21、CLOSE OPEN, 10 ),表示統(tǒng)計(jì)10日內(nèi)的當(dāng)日漲跌的估算標(biāo)準(zhǔn)差。 VAR( X, N )求X的N日估算樣本方差。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例VAR( CLOSE OPEN, 10 ),表示統(tǒng)計(jì)10日內(nèi)的當(dāng)日漲跌的估算樣本方差。 VARP( X, N )求X的N日總體樣本方差。X應(yīng)該是一個(gè)不為常數(shù)的表達(dá)式,N是一個(gè)非負(fù)表達(dá)式,表示在多少周期內(nèi)作統(tǒng)計(jì)。 舉例VARP( CLOSE OPEN, 10 ),表示統(tǒng)計(jì)10日內(nèi)的當(dāng)日漲跌的總體樣本方差。3.5. 三角函數(shù) ACOS( X )求X的反余弦值。X取值應(yīng)該在01范圍內(nèi),如果X小于0,則

22、視為0;如果X大于1,則視為1。返回值在0 之間。 ASIN( X )求X的反正弦值。X取值應(yīng)該在01范圍內(nèi),如果X小于0,則視為0;如果X大于1,則視為1。返回值在 之間。 ATAN( X )求X的反正切值。返回值在0 之間。 COS( X )求X的余弦值,X的單位是弧度,返回值在-11之間。 SIN( X )求X的正弦值,X的單位是弧度,返回值在-11之間。 TAN( X )求X的正切值,X的單位是弧度。4. 指標(biāo)點(diǎn)評(píng)4.1. AR、BR、CR指標(biāo)我們通過(guò)介紹AR、BR、CR指標(biāo)的實(shí)現(xiàn)代碼,進(jìn)一步說(shuō)明賦值、條件跳轉(zhuǎn)和循環(huán)三種基本語(yǔ)句的應(yīng)用。指標(biāo)的代碼如下:指標(biāo)名稱(chēng):ABCR 指標(biāo)注釋?zhuān)海?/p>

23、) 默認(rèn)值:0輸入?yún)?shù):M 局部變量:V1, V2, V3, V4, V5, V6, AV, I參數(shù)指標(biāo):開(kāi)盤(pán)價(jià), 最高價(jià), 最低價(jià), 收盤(pán)價(jià) 結(jié)果指標(biāo):AR, BR, CR指標(biāo)文本:T1 = 0;T2 = 0;T3 = 0;T4 = 0;T5 = 0;T6 = 0;I = 0;LOOPBEGINIF( I = M ) THEN BREAK;ENDIF;T1 = T1 + HIGHI - OPENI;T2 = T2 + OPENI - LOWI;IF( HIGHI > CLOSEI+1 )THEN T3 = T3 + HIGHI - CLOSEI+1;ENDIF;IF( OPENI &g

24、t; CLOSEI+1 )THEN T4 = T4 + OPENI - CLOSEI+1;ENDIF;AV = (HIGHI+1 + LOWI+1) / 2;IF( HIGHI > AV )THEN T5 = T5 + HIGHI - AV;ENDIF;IF( AV > LOWI )THEN T6 = T6 + AV - LOWI;ENDIF;I = I + 1;LOOP;AR = T1 / T2;BR = T3 / T4;CR = T5 / T6;下面詳細(xì)分析指標(biāo)的代碼段,文本的一開(kāi)始是7條賦值語(yǔ)句,分別把7個(gè)局部初始化為0;T1 = 0; /賦值語(yǔ)句T2 = 0;T3 = 0;

25、T4 = 0;T5 = 0;T6 = 0;I = 0;接下來(lái)是一個(gè)循環(huán)體:LOOPBEGIN /循環(huán)開(kāi)始,I是循環(huán)控制變量IF( I = M ) /條件跳轉(zhuǎn)語(yǔ)句,控制循環(huán)結(jié)束THEN BREAK; /結(jié)束循環(huán)的分支ENDIF;I = I + 1; /賦值語(yǔ)句,循環(huán)控制變量賦值LOOP; /循環(huán)結(jié)束聯(lián)系前面的賦值語(yǔ)句I=0 、循環(huán)中的賦值語(yǔ)句I=I+1以及控制循環(huán)的條件跳轉(zhuǎn)語(yǔ)句可以發(fā)現(xiàn),這是一個(gè)參數(shù)M次的循環(huán),例如如果參數(shù)M為10時(shí),這個(gè)循環(huán)需要執(zhí)行10次。在循環(huán)體中有4條賦值語(yǔ)句和5條條件判斷語(yǔ)句我們舉例說(shuō)明,T1 = T1 + HIGHI - OPENI;意思是把當(dāng)前天的前面第I天的最高價(jià)和

26、開(kāi)盤(pán)價(jià)的差值加到局部變量T1中;T2 = T2 + OPENI - LOWI;是說(shuō)把當(dāng)前天往前第I天的開(kāi)盤(pán)價(jià)和最低價(jià)的差值加到局部變量T2中;IF( HIGHI > CLOSEI+1 )THEN T3 = T3 + HIGHI - CLOSEI+1;ENDIF;如果當(dāng)前天前面第I天的最高價(jià)大于第I+1天的收盤(pán)價(jià),則把當(dāng)前天往前第I天的最高價(jià)和第I+1天的收盤(pán)價(jià)的差值加到局部變量T3中;AV = (HIGHI+1 + LOWI+1) / 2;是說(shuō)把前天往前第I+1天的最高價(jià)和最低價(jià)的平均值賦給局部變量AV;最后是三句賦值語(yǔ)句,分別給三個(gè)結(jié)果返回指標(biāo)賦值。AR = T1 / T2;BR =

27、T3 / T4;CR = T5 / T6;4.2. SRDM(動(dòng)向速比率)指標(biāo)SRDM(動(dòng)向速比率)指標(biāo)是一個(gè)經(jīng)典指標(biāo),我們通過(guò)這個(gè)指標(biāo)的實(shí)現(xiàn)代碼,進(jìn)一步說(shuō)明指南針指標(biāo)平臺(tái)中函數(shù)的應(yīng)用。指標(biāo)名稱(chēng):SRDM 指標(biāo)注釋?zhuān)簞?dòng)向速比率 默認(rèn)值:1.000輸入?yún)?shù):N 局部變量:參數(shù)指標(biāo):最高價(jià), 最低價(jià) 結(jié)果指標(biāo):SRDM_DMZ, SRDM_DMF, SRDM_SRDM, SRDM_ASRDM, SRDM_ADMZ, SRDM_ADMF指標(biāo)文本:IF( (最高價(jià) + 最低價(jià)) <= (最高價(jià)1 + 最低價(jià)1) )THEN SRDM_DMZ = 0;ELSE SRDM_DMZ = MAX( AB

28、S(最高價(jià) - 最高價(jià)1), ABS(最低價(jià) - 最低價(jià)1) );ENDIF;IF( (最高價(jià)+最低價(jià)) >= (最高價(jià)1+最低價(jià)1) )THEN SRDM_DMF = 0;ELSE SRDM_DMF = MAX( ABS(最高價(jià) - 最高價(jià)1), ABS(最低價(jià) - 最低價(jià)1) );ENDIF;SRDM_ADMZ = MA( SRDM_DMZ, 10 );SRDM_ADMF = MA( SRDM_DMF, 10 );IF( SRDM_ADMZ > SRDM_ADMF )THEN SRDM_SRDM = (SRDM_ADMZ - SRDM_ADMF) / SRDM_ADMZ;ELS

29、EIF( SRDM_ADMZ = SRDM_ADMF )THEN SRDM_SRDM = 0;ELSE SRDM_SRDM = (SRDM_ADMZ - SRDM_ADMF) / SRDM_ADMF;ENDIF;ENDIF;SMA( SRDM_ASRDM, SRDM_SRDM, N, 1 );這里著重分析指標(biāo)代碼中的函數(shù)調(diào)用。在第一個(gè)條件跳轉(zhuǎn)語(yǔ)句IFENDIF的ELSE分支是一個(gè)賦值語(yǔ)句:SRDM_DMZ = MAX( ABS(最高價(jià) - 最高價(jià)1), ABS(最低價(jià) - 最低價(jià)1) );語(yǔ)句的含義是取相鄰兩天最高價(jià)差值的絕對(duì)值與最低價(jià)差值絕對(duì)值中較大的數(shù)值,賦給指標(biāo)SRDM_DMZ。從這里可

30、以發(fā)現(xiàn),指標(biāo)平臺(tái)支持多重函數(shù)調(diào)用,即函數(shù)中再套函數(shù),這種調(diào)用的套用次數(shù)沒(méi)有限制。代碼的的最后是一個(gè)調(diào)用SMA函數(shù)的賦值語(yǔ)句:SMA( SRDM_ASRDM, SRDM_SRDM, N, 1 );這個(gè)語(yǔ)句的含義是對(duì)指標(biāo)SRDM_SRDM作N日指數(shù)移動(dòng)平均,平滑系數(shù)是1/N。注意,DMA、EMA、SMA這一類(lèi)函數(shù)的第一個(gè)參數(shù)必須是結(jié)果返回指標(biāo),函數(shù)計(jì)算是會(huì)把結(jié)果直接賦給第一個(gè)參數(shù),所以可以不寫(xiě)賦值部分,這條語(yǔ)句也可以這樣寫(xiě):SRDM_ASRDM = SMA( SRDM_ASRDM, SRDM_SRDM, N, 1 );實(shí)際上這兩種寫(xiě)法是完全等價(jià)的。5. 指標(biāo)進(jìn)階5.1. 常見(jiàn)錯(cuò)誤技術(shù)指標(biāo)是量化分析

31、和設(shè)計(jì)操作方法的基礎(chǔ),每個(gè)自定義指標(biāo)都可以反映作者對(duì)股市的獨(dú)特簡(jiǎn)介。指南針自定義指標(biāo)平臺(tái)推出以來(lái),廣大網(wǎng)員編寫(xiě)了許多指標(biāo),其中有許多精品,但是也有一些普遍性的錯(cuò)誤,在本章中列舉一些常見(jiàn)的錯(cuò)誤類(lèi)型,供廣大網(wǎng)員參考。5.1.1. 條件語(yǔ)句沒(méi)有考慮所有情況條件跳轉(zhuǎn)語(yǔ)句屬于分支結(jié)構(gòu),每個(gè)條件跳轉(zhuǎn)語(yǔ)句都應(yīng)該有兩個(gè)分支條件滿(mǎn)足和條件不滿(mǎn)足,原則上兩個(gè)分支都需要考慮。請(qǐng)看下面指標(biāo)TEST的實(shí)現(xiàn)代碼(結(jié)果指標(biāo)是TEST和AA):IF( CLOSE > OPEN )THEN AA = CLOSE;ENDIF;TEST = MA( AA, 10 );這種類(lèi)型的代碼在指標(biāo)平臺(tái)的實(shí)際使用中很常見(jiàn)。我們先看條件跳

32、轉(zhuǎn)語(yǔ)句,如果今天K線(xiàn)收陽(yáng)(CLOSE > OPEN),則結(jié)果指標(biāo)AA賦值為CLOSE,下面直接把AA作簡(jiǎn)單移動(dòng)平均賦值給結(jié)果指標(biāo)TEST。但是如果今天K線(xiàn)不收陽(yáng)(CLOSE<=OPEN)那?此時(shí)結(jié)果指標(biāo)AA沒(méi)有被賦值,接下來(lái)對(duì)AA作MA運(yùn)算是沒(méi)有意義的,此時(shí)指標(biāo)TEST的數(shù)值可能會(huì)和用戶(hù)原來(lái)的設(shè)想大相徑庭。依據(jù)實(shí)際情況,這段代碼有多種修改方法,例如:IF( CLOSE > OPEN )THEN AA = CLOSE;ELSE AA = OPEN;ENDIF;TEST = MA( AA, 10 );或者AA = 0;IF( CLOSE > OPEN )THEN AA =

33、CLOSE;ENDIF;TEST = MA( AA, 10 );可以看出,第一種修改方法把條件跳轉(zhuǎn)的兩個(gè)分支都考慮進(jìn)去了,而第二種方法則是先對(duì)指標(biāo)AA賦初始值,然后無(wú)論接下來(lái)的條件跳轉(zhuǎn)語(yǔ)句是否會(huì)對(duì)AA賦值,AA的數(shù)值都是有意義的。5.1.2. 循環(huán)語(yǔ)句不能正常退出技術(shù)指標(biāo)是量化分析和設(shè)計(jì)操作方法的基礎(chǔ),每個(gè)自定義指標(biāo)都可以反映作者對(duì)股市的獨(dú)特簡(jiǎn)介。指南針自定義指標(biāo)平臺(tái)推出以來(lái),廣大網(wǎng)員編寫(xiě)了許多指標(biāo),其中有許多精品,但是也有一些普遍性的錯(cuò)誤,在本章中列舉一些常見(jiàn)的錯(cuò)誤類(lèi)型,供廣大網(wǎng)員參考。有兩種循環(huán)語(yǔ)句:一種明確知道循環(huán)次數(shù),另一種則不明確知道循環(huán)次數(shù)。無(wú)論哪種循環(huán)語(yǔ)句,在實(shí)際使用中都經(jīng)常出現(xiàn)

34、循環(huán)不能正常退出的錯(cuò)誤。1) 明確知道循環(huán)次數(shù)的循環(huán)語(yǔ)句明確知道循環(huán)次數(shù)的循環(huán)語(yǔ)句的一般形式如下(I是局部變量,用來(lái)控制循環(huán)次數(shù),稱(chēng)為循環(huán)控制變量):I = 0;LOOPBEGINIF( I >= 10 )THEN BREAK;ENDIF; /I = I + 1;LOOP;具體來(lái)說(shuō),這種循環(huán)語(yǔ)句由三部分構(gòu)成:循環(huán)控制變量(I)賦初值;通過(guò)I值判斷是否需要退出循環(huán);累加I。這三個(gè)部分是缺一不可的。但是,實(shí)際使用中缺經(jīng)常出現(xiàn)類(lèi)似下面的代碼:LOOPBEGINIF( I >= 10 )THEN BREAK;ENDIF; I = I + 1;LOOP;或者I = 0;LOOPBEGINIF( I >= 10 )THEN BREAK;ENDIF; LOOP;第一中情況中,循環(huán)控制變量I沒(méi)有賦初值就直接進(jìn)入循環(huán),此時(shí)I值沒(méi)有意義,所以無(wú)論是接下來(lái)的條件判斷語(yǔ)句或者累加I的操作都變成沒(méi)有意義了。第二種情況則是忘了寫(xiě)累加I的語(yǔ)句,此時(shí)I一直是0,條件語(yǔ)句恒不滿(mǎn)足,是個(gè)不能退出的死循環(huán)。2) 不明確知道循環(huán)次數(shù)的循環(huán)語(yǔ)句先觀察一個(gè)實(shí)際指標(biāo)的實(shí)現(xiàn)代碼(F、N是局部變

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論