【數據弟】選股公式詳解

第一財經今日股市2018-06-12 02:42:16

    不少朋友在自編公式的時候都會遇到各種各樣的難點,本週數據弟就給大家逐字逐句地解釋一下我們目前為止用到的兩個公式。

01

中線模型

  低位啟動突破年線三天模型是我們用來篩選中線品種的公式,它的選股條件是這樣的:

選股邏輯

1

短期均線多頭排列;

2

近期上穿年線,且三日內收盤不低於年線;

3

近期有漲停基因;

4

量價配合理想,近期有量堆。

     選股公式是:

A1:=MA(C,5);

A2:=MA(C,10);

A3:=MA(C,20);

A4:=MA(C,30);

A5:=MA(C,250);

ZT:=C>REF(C,1)*1.095;

A1>A2 AND A2>A3 AND A3>A4 AND REF(A5,2)>REF(O,2) AND EVERY(C>A5,3) AND COUNT(ZT,80)>0 AND MA(V,BARSSINCEN(ZT,80))>2*REF(MA(V,80), BARSSINCEN(ZT,80));

    本週參數已經需要改成80了,因為距離創業板1571低點目前經過了79個交易日。

    首先,給大家解釋一下,在公式之中輸出只能有一個,也就是說如果我們需要在條件選股中用到這個公式,那必須把所有的條件糅雜在一起,形成一個總的條件。為了把多個條件連在一起,比較常用的是“AND”和“OR”,前者代表“而且”,後者代表“或者”。但“OR”用多了在執行的時候容易形成邏輯錯誤,需要特別小心。

    雖然選股的輸出條件只能有一個,但是我們可以用賦值的方式進行過渡,比如在上面的公式中“ZT:=CLOSE>REF(CLOSE,1)*1.095;”一句就是標準的賦值語句。它的作用是把“漲停”這個條件單獨拎出來,這樣在後續彙總條件的時候不需要每次都贅述整個語句,而可以用“ZT”兩個字母直接來代替漲停的情況。“:=”的符號就是賦值語句的專用標誌,與之相對的是“:”代表了條件輸出,每個公式中只能出現一次。

    用張圖來說明一下公式編寫的結構:

    在上述的公式中出現了以下這些函數:

C:收盤價;

O:開盤價;

V:成交量;

MA(X,N): X的N日簡單移動平均;

REF(X,N):引用N週期前的X值;

EVERY(X,N):N個週期內條件X一直都滿足;

COUNT(X,N):統計N週期中滿足X條件的週期數;

BARSSINCEN (X,N):N週期內第一次條件X成立到當前的週期數。

    接下來我們就來逐句分析一下公式的意義。

A1:=MA(C,5)

    給A1賦值為收盤價的5日簡單移動平均(也就是我們常用的“五天線”)

A2:=MA(C,10)

    給A2賦值為收盤價的10日簡單移動平均(也就是我們常用的“十天線”)

A3:=MA(C,20)

    給A3賦值為收盤價的20日簡單移動平均(也就是我們常用的“二十天線”)

A4:=MA(C,30)

    給A4賦值為收盤價的30日簡單移動平均(也就是我們常用的“三十天線”)

A5:=MA(C,250)

    給A5賦值為收盤價的250日簡單移動平均(也就是我們常用的“年線”)

ZT:=C>REF(C,1)*1.095

    給ZT賦值為收盤上漲9.5%以上

A1>A2

    五天線在十天線之上

A2>A3

    十天線在二十天線之上

A3>A4

    二十天線在三十天線之上(以上三個條件的意思是短期均線多頭排列)

REF(A5,2)>REF(O,2)

    倒數第三根K線的開盤價在當時的年線之下

EVERY(C>A5,3)

    最近三根K線的收盤價都在年線之上(以上兩個條件的意思三天前上穿年線,且三日收盤在年線之上)

COUNT(ZT,80)>0

    最近80個交易日中出現過漲停(有漲停基因)

MA(V,BARSSINCEN(ZT,80))>2*REF(MA(V,80), BARSSINCEN(ZT,80))

    最近八十天內第一次出現漲停之後的平均量能大於這一天之前80個交易日平均量能的兩倍(近期有量堆)

    以上便是中線選股公式每一個語句的具體含義,如果您對公式設置還有疑問,請點擊下方的傳送門,回看《自編公式選股的常見問題》一文。

傳送門

《自編公式選股的常見問題》

02

盤中選股

    上週我們對盤中尋找具有漲停基因的選股模型進行了升級,除了本來的四個選股條件外還增加了三個輔助條件。

選股條件

1

開盤的60分鐘內完成一波拉昇(10:30前);

2

拉昇幅度大於5%(計算的是開盤後的低點和拉昇後的高點);

3

 回調後在均線附近盤整60分鐘以上;

4

最大偏離均線幅度小於1.5%。

   輔助條件

1

拉昇之後回踩幅度小於拉昇幅度的一半;

2

沒有衝擊過漲停;

3

 回調後在均線附近盤整60分鐘以上;

4

排除開盤低開之後拉起,最高點漲幅不到2%的情況。

    升級後的選股公式是:

開盤至今:=BARSLAST(DATE>REF(DATE,1))+1;

均價:=SUM(V*C,開盤至今)/SUM(V,開盤至今);

HHV(H,開盤至今)>HHV(H,開盤至今-60) AND HHV(H,開盤至今)/REF(O,開盤至今-1)>1.035 AND HHV(H,開盤至今)/LLV(L,開盤至今)>1.05 AND EVERY(BETWEEN(C,均價*0.985,均價*1.015),60) AND BARSLAST(L=LLV(L, 開盤至今))>BARSLAST(H=HHV(H,開盤至今)) AND LLV(L, BARSLAST(H=HHV(H,開盤至今)))>( HHV(H,開盤至今)+ LLV(L, 開盤至今))/2 AND 1.09*REF(C,開盤至今)>HHV(H,開盤至今) AND HHV(H,開盤至今)>1.02*REF(C,開盤至今);

    公式中出現了以下函數:

C:收盤價;

O:開盤價;

H:最高價;

L:最低價;

V:成交量;

DATE:日期;

REF(X,N):引用N週期前的X值;

BARSLAST(X):最近一次X條件成立到現在的週期數;

HHV(X,N):N個週期裡X的最大值;

LLV(X,N):N個週期裡X的最小值;

SUM(X,N):N週期裡所有X的總和;

EVERY(X,N):N個週期內條件X一直都滿足;

BETWEEN(A,B,C):A的值在B和C之間。

    每句的具體意義是:

開盤至今:=BARSLAST(DATE>REF(DATE,1))+1

    給“開盤至今”賦值為最近一次滿足比前一個1分鐘K線日期大的1分鐘K線至今的週期數加一(其實就是開盤第一根1分鐘K線至今的週期數)

均價:=SUM(V*C,開盤至今)/SUM(V,開盤至今)

    給“均價”賦值為開盤至今的加權平均收盤價

HHV(H,開盤至今)>HHV(H,開盤至今-60)

    開盤以來的最高價比開盤60分鐘之後再出現的最高價高(到目前為止最高價出現在開盤後的頭60分鐘內)

HHV(H,開盤至今)/REF(O,開盤至今-1)>1.035

    開盤至今的最高點比開盤價至少高3.5%

HHV(H,開盤至今)/LLV(L,開盤至今)>1.05

    開盤至今的最高點比最低點至少高5%(拉昇幅度大於5%)

EVERY(BETWEEN(C,均價*0.985,均價*1.015),60)

    60分鐘內的1分鐘K線收盤價都在均價線的上下1.5%之間(回調後在均線附近盤整60分鐘以上且最大偏離均線幅度小於1.5%)

BARSLAST(L=LLV(L, 開盤至今))>BARSLAST(H=HHV(H,開盤至今))

    開盤至今的最低點早於最高點出現(回調不破開盤後的低點)

LLV(L, BARSLAST(H=HHV(H,開盤至今)))>( HHV(H,開盤至今)+ LLV(L, 開盤至今))/2

    最高點之後的低點高於最高點和最低點的半分位(回踩幅度小於拉昇幅度的一半)

1.09*REF(C,開盤至今)>HHV(H,開盤至今)

    開盤至今最高點的漲幅不到9%(未衝擊漲停)

HHV(H,開盤至今)>1.02*REF(C,開盤至今)

    開盤至今最高點的漲幅大於2%(排除開盤低開之後拉起,最高點漲幅不到2%的情況)

    以上就是公式中所有語句的解釋。用盤中1分鐘級別的選股要特別注意設置問題,具體注意事項和步驟請回看《盤中尋找具有漲停基因的個股》一文。

傳送門

《盤中尋找具有漲停基因的個股》

    另外,數據弟將休假一週,所以下週的文章就只得暫停一次,和大家事先打聲招呼,十分抱歉!


閱讀原文

TAGS:漲停簡單移動平均拉昇幅度漲停基因