|
目前大多數(shù)證券分析軟件都具有指標(biāo)分析和條件選股的功能,但只有用戶可以自己編制算法公式的系統(tǒng)才是真正實(shí)用的,因?yàn)椋涸S多軟件的指標(biāo)和選股功能是黑箱操作,也就是說,其內(nèi)部算法是不公開的。這樣用戶并不知道其指標(biāo)和選股到底是如何運(yùn)作的、可靠性有多高、前提條件是什么,因而也難以決定是否采用指標(biāo)或選股的結(jié)果。這樣的指標(biāo)和選股只有宣傳上的意義而沒有任何實(shí)際意義。許多軟件的選股功能都不夠強(qiáng)大和靈活。例如有些軟件的條件選股功能只能讓用戶按照特定的模式進(jìn)行設(shè)定,適用面很窄。公式系統(tǒng)類似于一種編程語言,用戶可以數(shù)學(xué)公式的形式實(shí)現(xiàn)任何自己期望的技術(shù)指標(biāo)和選股條件等。可編制的公式可以完全公開算法,用戶可以自行分析、評價(jià)和修改,做到心中有數(shù)。
公式系統(tǒng)的作用是什么呢?公式系統(tǒng)其實(shí)就是對一系列隨時(shí)間變化的原始數(shù)據(jù)組序列進(jìn)行代數(shù)和邏輯計(jì)算。為什么是數(shù)據(jù)組序列呢?因?yàn)槊恳粋€(gè)時(shí)間周期(即相鄰兩組數(shù)據(jù)間的時(shí)間間隔)都包含了一組原始數(shù)據(jù),如開高低收量額,公式系統(tǒng)能對其中的任何原始數(shù)據(jù)進(jìn)行操作。使用者定義出如何對原始數(shù)據(jù)進(jìn)行處理得到一個(gè)新的數(shù)據(jù),公式系統(tǒng)讀出原始數(shù)據(jù)并按要求計(jì)算出使用者定制的數(shù)據(jù),并以曲線、圖形、指示等形式顯示出來。 公式系統(tǒng)可以編輯四種類型的公式,分別是技術(shù)指標(biāo)、交易系統(tǒng)、條件選股和五彩K線公式。技術(shù)指標(biāo)公式是最基本的公式,它用于指標(biāo)圖形的繪制。技術(shù)指標(biāo)公式結(jié)合選股條件邏輯判斷表達(dá)式,即得到條件選股公式,用于條件選股。技術(shù)指標(biāo)公式結(jié)合買賣邏輯判斷表達(dá)式,得到交易系統(tǒng)公式,用于交易系統(tǒng)指示。技術(shù)指標(biāo)公式結(jié)合色彩邏輯判斷表達(dá)式,即得到K線模式公式,用于描述特定的K線模式。公式的編輯在公式編輯器中成。 公式系統(tǒng)處理的原始數(shù)據(jù)的分析周期(即相鄰兩組數(shù)據(jù)間的時(shí)間間隔)可以從1分鐘到1000天間的任意值,也可以是分筆成交數(shù)據(jù),我們用鼠標(biāo)把一個(gè)公式拖到某只證券的某個(gè)周期的圖形分析窗口,則該公式處理這個(gè)周期的原始數(shù)據(jù),如開高低收量額,改變分析窗口顯示的分析周期,則公式處理新的分析周期的數(shù)據(jù)。 公式系統(tǒng)對數(shù)據(jù)的運(yùn)算是基于一系列函數(shù),函數(shù)中除ZIG之字轉(zhuǎn)向函數(shù)類和BACKSET函數(shù)外,其余函數(shù)均滿足時(shí)間不變性,即時(shí)間靠后的數(shù)據(jù)不對時(shí)間靠前的結(jié)果產(chǎn)生影響。 公式設(shè)定步驟 1.設(shè)定公式名稱:每個(gè)公式都有自己的名稱,它由字母或數(shù)字組成,最多可以有9個(gè)字符。請注意,公式名稱在同類公式中不能重復(fù)。 2.描述公式:用于簡單描述該公式的含義,若輸入,則在公式列表中會顯示這段文字。 3.注釋公式:用于描述一個(gè)公式如何使用、計(jì)算方法等內(nèi)容。輸入后,在有關(guān)窗口按“用法注釋”按鈕可以查看公式注釋。 4. 設(shè)計(jì)技術(shù)指標(biāo)公式語句:公式的形式由若干語句組成。每個(gè)語句得到一個(gè)計(jì)算結(jié)果,對于技術(shù)指標(biāo),就是一條指標(biāo)線,語句間用分號隔開。一個(gè)語句由若干函數(shù)通過四則運(yùn)算或邏輯運(yùn)算而組成。函數(shù)是公式系統(tǒng)的基本成分,它是對數(shù)據(jù)做某種操作,如CLOSE()函數(shù)表示調(diào)用該分析周期的收盤價(jià)。函數(shù)由函數(shù)名稱和參數(shù)組成,參數(shù)用函數(shù)名后的括號括起來,每個(gè)函數(shù)調(diào)用的參數(shù)可以是變量或常量,變量是一個(gè)隨著時(shí)間變化而變化的數(shù)據(jù),例如收盤價(jià);常量是一個(gè)不隨時(shí)間變化而變的數(shù)據(jù)。例如函數(shù)REF(X,N)用于引用N周期前的X值,X是一個(gè)變量,N是一個(gè)常量,REF(close(),1)表示計(jì)算上一周期的收盤價(jià)。函數(shù)若需調(diào)用幾個(gè)參數(shù),則它們在括號內(nèi)是有順序的。若沒有參數(shù)則可以省去括號,例如CLOSE()函數(shù)沒有參數(shù),所以寫成 CLOSE和 CLOSE()都可以。函數(shù)計(jì)算得到的結(jié)果是一個(gè)變量。計(jì)算符將函數(shù)連接成為語句。計(jì)算符分為算術(shù)計(jì)算符和邏輯計(jì)算符。算術(shù)計(jì)算符有+、-、*、/,分別是對計(jì)算符兩邊的數(shù)值進(jìn)行加減乘除計(jì)算;邏輯計(jì)算符有>、<、<>、>=、<=、=、AND、OR,分別是對計(jì)算符兩邊的數(shù)值做大于、小于、不等于、大于等于、小于等于、等于、邏輯與、邏輯或的邏輯運(yùn)算,如果邏輯條件成立返回的計(jì)算結(jié)果為1,否則為0。例如:2>1的邏輯運(yùn)算結(jié)果等于1,1>2的邏輯運(yùn)算結(jié)果就等于0。語句得到的計(jì)算結(jié)果連成線就是所謂的指標(biāo)線,不同的語句就得到不同的線,為了在指標(biāo)圖形中互相區(qū)分,不同的線有不同的顏色,而且語句還可以有自己的名稱,在指標(biāo)圖形中顯示在左上角位置。語句名寫在語句的前面,用一個(gè)冒號將它與語句隔開。語句“上日收盤價(jià):REF(close,1)”就表示該語句REF(close,1)的名稱為“上日收盤價(jià)”。該語句后而的語句若需引用它,則寫公式名即可,如MA(上日收盤價(jià),20)意思是對上日收盤價(jià)求20日平均。 5、設(shè)計(jì)中間語句:一個(gè)語句將顯示一條指標(biāo)線,一個(gè)復(fù)雜的公式往往有很多語句,而且有些語句沒必要顯示出來。這時(shí)我們可以把不需要顯示語句定義為中間語句,中間語句的寫法只需在一般語句的名稱與語句之間的冒號后加個(gè)等號,即“:=”即可。例如,語句“上日收盤價(jià):=REF(close,1)”就表示該語句為中間語句。重復(fù)使用的語句也可以定義成中間語句。 6、設(shè)計(jì)其他公式語句:其他類型的公式顯示的不是指標(biāo)線,而是相應(yīng)的操作,如條件選股公式顯示的是選股結(jié)果,交易系統(tǒng)公式顯示的是交易指示,五彩K線公式顯示的是K線顏色。這些公式需要有一條或幾條邏輯表達(dá)式表示這些操作的語句,當(dāng)語句返回0時(shí)表示不需要進(jìn)行相應(yīng)的操作,當(dāng)返回非0時(shí)表示需要進(jìn)行相應(yīng)的操作。其他的語句都應(yīng)設(shè)定為中間語句。條件選股公式只有一條邏輯表達(dá)式語句,用來表示選股條件是否成立,例如CLOSE>REF(close,1)語句,表示選出當(dāng)期收盤價(jià)高于上日收盤價(jià)的股票。其他的語句必須設(shè)定為中間語句,否則編輯器出現(xiàn)“只能有一個(gè)輸出結(jié)果”的警示。 交易系統(tǒng)公式需要1-4條邏輯表達(dá)式語句,分別為多頭和空頭的切入切出條件語句,分別用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多頭買入、多頭賣出、空頭切入、空頭切出條件,當(dāng)這些語句返回非0時(shí),表示需要進(jìn)行相應(yīng)的操作。其他的語句必須設(shè)定為中間語句,否則編輯器出現(xiàn)“非交易信號變量只能用:=賦值”的警示。這四個(gè)條件中必須至少設(shè)定一個(gè)條件。 五彩K線公式可以有1-6條邏輯表達(dá)式語句,最多描述6種不同的顏色。 7、設(shè)計(jì)計(jì)算參數(shù):我們有時(shí)需要調(diào)節(jié)公式中的常數(shù)來看公式的表現(xiàn),可以直接進(jìn)入公式修改,更方便的方法是用計(jì)算參數(shù)來指代公式中的常數(shù),需要調(diào)節(jié)公式時(shí)不需進(jìn)公式只需調(diào)節(jié)參數(shù)就可以了。比如,經(jīng)常要修改REF(close,1)中的第二個(gè)參數(shù)1,這時(shí)可以把它設(shè)為一個(gè)計(jì)算參數(shù)N,公式寫成REF(close,N),到時(shí)調(diào)節(jié)N即可。計(jì)算參數(shù)包括參數(shù)名稱、最小值、最大值、缺省值四個(gè)部分。參數(shù)名稱用于標(biāo)識參數(shù),本例我們將參數(shù)名定位N,計(jì)算公式時(shí)采用缺省值計(jì)算,而最小值和最大值是參數(shù)的調(diào)整范圍。設(shè)定參數(shù)后,在圖形分析窗口顯示該指標(biāo)時(shí),指標(biāo)名跟著有參數(shù),右鍵點(diǎn)擊參數(shù)即可對它進(jìn)行修改。對于交易系統(tǒng)公式,每個(gè)參數(shù)還包括一個(gè)測試步長,在優(yōu)化參數(shù)時(shí)系統(tǒng)從最小值到最大值逐一調(diào)整參數(shù),每次調(diào)整的增量就是測試步長。例如最小值1,最大值30,步長10,則系統(tǒng)將測試參數(shù)1,11,21。最大測試步數(shù)為10000次。每個(gè)公式可以帶有最多16個(gè)計(jì)算參數(shù)。 8、其他語句:有時(shí)我們想指定技術(shù)指標(biāo)線的畫法,這時(shí)我們可以在語句后加上線形描述符,描述該語句對應(yīng)的指標(biāo)線畫法。線形描述符包括STICK:柱狀線;COLORSTICK:彩色柱狀線,當(dāng)語句結(jié)果為正時(shí)顯示紅色,否則顯示綠色;VOLSTICK:成交量柱狀線,股價(jià)上漲時(shí)顯示紅色空心柱,下跌時(shí)顯示綠色實(shí)心柱;LINESTICK:同時(shí)畫出柱狀線和指標(biāo)線;CROSSDOT:小叉線;CIRCLEDOT:小圓圈線;POINTDOT:小圓點(diǎn)線。 五彩K線公式有用來描述顯示K線顏色的語句,其實(shí)就是在語句后加上色彩描述符,之間用逗號隔開,表示當(dāng)該句返回非0時(shí)K線的顏色。色彩描述符有:COLORRED:紅色;COLORGREEN:綠色;COLORBLUE:藍(lán)色;COLORBLACK:黑色:COLORWHITE:白色;COLORYELLOW:黃色:COLORYELLOW:青色;COLORF0F000:晶紅色;COLORBROWN:棕色。 技術(shù)指標(biāo)公式還可以主動設(shè)定欲顯示的坐標(biāo)線,例如我們在坐標(biāo)線位置輸入框中寫入-10;O;10,則顯示該指標(biāo)時(shí)出現(xiàn)-10,0,10三條坐標(biāo)線。 特殊數(shù)據(jù)引用 (1)、指標(biāo)數(shù)據(jù)引用 在編制公式過程中,有時(shí)需要使用另外一個(gè)指標(biāo)的值,如果按照通常的做法,重新編制這個(gè)指標(biāo)就顯得很麻煩,因此很有必要學(xué)習(xí)使用如何調(diào)用別的指標(biāo)公式。 調(diào)用其他指標(biāo)的基本格式:”指標(biāo).指標(biāo)線”(參數(shù)) A、指標(biāo)與指標(biāo)線之間用點(diǎn)“.”分開,一個(gè)指標(biāo)不一定只有一條指標(biāo)線,所以有必要在指標(biāo)后標(biāo)注指標(biāo)線的名稱,但是如果缺失則表示引用最后一條指標(biāo)線。 B、參數(shù)在表達(dá)式的末尾,必須用括號括起來,參數(shù)之間用“,”號分開,通過參數(shù)設(shè)置可選擇設(shè)定該指標(biāo)的參數(shù),如果參數(shù)缺失則表示使用該指標(biāo)的默認(rèn)參數(shù)設(shè)置(不過我在使用過程中發(fā)現(xiàn),如不寫參數(shù),測試就通不過)。 C、整個(gè)表達(dá)式用引號引在其中,除參數(shù)以外。 例如:”MACD.DEF”(26,12,9)表示計(jì)算MACD指標(biāo)的DEA指標(biāo)線,計(jì)算參數(shù)為26、12、9,”MACD”(26,12,9)表示該指標(biāo)的最后一條指標(biāo)線,計(jì)算參數(shù)是26、12、9,”MACD”表示該指標(biāo)的最后一條指標(biāo)線,并且使用公式的默認(rèn)參數(shù)。 (2)、其他股票數(shù)據(jù)引用 使用以下的格式可以在當(dāng)前的分析界面下引用大盤的數(shù)據(jù)或者其他個(gè)股的數(shù)據(jù)實(shí)現(xiàn)橫向上的對比。 A、引用大盤數(shù)據(jù) 引用大盤數(shù)據(jù)時(shí)使用下列函數(shù):INDEXC、INDEXV等等。 B、引用個(gè)股數(shù)據(jù) 引用個(gè)股數(shù)據(jù)時(shí)使用下列格式:”股票代碼$數(shù)據(jù)”,在以上格式當(dāng)中調(diào)用CLOSE、VOL、AMOUNT等等,例如,”Z000002$VOL”表示000002該股本周期的成交量。同時(shí)大盤也可視為一只個(gè)股來引用,例如,上證”H000001$CLOSE”表示為大盤本周期的收盤價(jià),深市”Z399001$CLOSE”同樣表法大盤本周期的收盤價(jià)。 (3)、注意事項(xiàng) 在編公式中所運(yùn)用的標(biāo)點(diǎn)符號均是在英語狀態(tài)下的符號。 在編制公式中,有要顯示的句子和不顯示的句子,要顯示用“:”不要顯示用“:=”,一個(gè)源碼中最多只能有16個(gè)可顯示的句子,并且每句結(jié)束后要加分號“;”。 另外,開盤價(jià)、收盤價(jià)、最高價(jià)、最低價(jià),在公式中可用該函數(shù)的第一個(gè)字母代替。因此在編公式時(shí)不要單獨(dú)用這幾個(gè)字母,請要注意。 9、引用其他公式、周期或股票的數(shù)據(jù): (注意:本點(diǎn)只作為參考,因大智慧未設(shè)有引用其它周期的數(shù)據(jù)功能) 可以在一個(gè)公式中引用其他公式、周期或股票的數(shù)據(jù),具體做法如下。 1)引用指標(biāo)公式/交易系統(tǒng)/條件選股公式 可以引用其他技術(shù)指標(biāo)的指標(biāo)線,寫法是"公式名稱.指標(biāo)線名稱"(參數(shù)表),請注意,參數(shù)表中的參數(shù)個(gè)數(shù)應(yīng)該與該公式的實(shí)際參數(shù)數(shù)量一致,若不寫參數(shù)表,則表示使用缺省參數(shù)。例如:"KDJ.K(9,6,6)",表示引用根據(jù)(9,6,6)參數(shù)計(jì)算出KDJ指標(biāo)中的K指標(biāo)線數(shù)值。 可以引用交易系統(tǒng)公式,寫法為"SYSTEM.公式名稱.交易類型"(參數(shù)表),交易類型包括ENTERLONG、EXITLONG、ENTERSHORT、EXITSHORT,分別表示引用多頭買入、多頭賣出、空頭買入、空頭賣出條件。例如:"SYSTEM.KDJ.ENTERLONG",表示引用根據(jù)缺省參數(shù)計(jì)算的KDJ交易系統(tǒng)的多頭買入條件。 可以引用條件選股公式,寫法為"EXPLORER.公式名稱"(參數(shù)表),例如:"EXPLORER.KDJ",表示引用根據(jù)缺省參數(shù)計(jì)算的KDJ買入條件選股條件。 2)跨周期引用公式 可以引用其他周期的數(shù)據(jù),寫法為"公式名稱.指標(biāo)線名稱#周期"(參數(shù)表),跨周期引用只能從較短周期引用較長周期,反方向的引用不允許。例如"KDJ.K#WEEK"(9,6,6),表示引用根據(jù)(9,6,6)參數(shù)計(jì)算周線周期的KDJ指標(biāo)公式K指標(biāo)線的數(shù)值。 其中周期包括MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,分別表示1、5、15、30、60分鐘線,以及日線、周線、月線。 3)引用任意股票的數(shù)據(jù) 可以引用其它股票的數(shù)據(jù),寫法為:"股票代碼$數(shù)據(jù)名稱",其中數(shù)據(jù)名稱包括OPEN、HIGH、LOW、CLOSE、VOL、AMOUNT,分別表示開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、成交量、成交額。 01-行情函數(shù) 這些行情函數(shù)所取得的數(shù)據(jù),是我們所編寫的公式的原材料。 如果說公式是衣服,這些行情函數(shù)就是布。 open-o close-c 開盤價(jià) 收盤價(jià) 開盤價(jià):o,colorred,linethick2; 收盤價(jià):c,colorgreen; |
|
|