這兩天盤的波動較大,非經濟因素帶來的衝擊,對一些長期趨勢型的分析工具可能比較容易失真,透過1到數根K棒的型態分析,再搭配籌碼及基本面因素的選股方式,變成短期因應之道,但坊間的選股工具,一般都是K線型態歸一類,籌碼與基本面分析的歸另一類,較少組合起來選股的工具,於是有XS的User反映能否把K線型態內建成函數,以利於跟其他選股條件組合使用,今天就來回應這個需求
首先,我寫了一個樣本函數如下:
bKpatterm型態函數 settotalbar(5); condition2 = (minlist(open,close)-Low) > absvalue(open-close)*3; condition3 = minlist(open, close) > low* (100 + 2)/100; if trueall( condition2 and condition3, 3) then bkpatterm="三長下影線"; {[檔名:] 紅三兵 [說明:] 連續三根上漲實體K棒 } condition1= ( close - open ) >(high -low) * 0.75; //狀況1:實體上漲K棒 condition4= ( close[1] - open[1] ) >(high[1] -low[1]) * 0.75; //狀況2:前一根也是實體上漲K棒 condition5= ( close[2] - open[2] ) >(high[2] -low[2]) * 0.75; //狀況3:前前根也是實體上漲K棒 condition6= close > close[1]; //狀況4: 上漲 condition7= close[1] > close[2];//狀況5:上漲 {結果判斷} IF condition1 and condition4 and condition5 and condition6 and condition7 THEN bkpatterm="紅三兵"; condition8= ( open[2] - close[2] ) >(high[2] -low[2]) * 0.75; //狀況1:實體下跌K棒 condition9= ( close[1] - open[1] ) >(high[1] -low[1]) * 0.75; //狀況2:實體上漲K棒 condition10= high[1] < high[2] and low[1] > low[2]; //狀況3:前期內包於前前期 condition11=( close - open ) > 0.75 *(high -low); //狀況4:當期實體上漲K棒 condition12=close > open[2]; //狀況5:現價突破前前期開盤價 IF condition8 and condition9 and condition10 and condition11 and condition12 THEN bkpatterm="內困三日翻紅"; condition13=open = High and close < open ;//狀況1: 開高收低留黑棒 condition14=(high -low) > 2 *(high[1]-low[1]) ;//狀況2: 波動倍增 condition15=(close-low)> (open-close) *2 ;//狀況3: 下影線為實體兩倍以上 IF condition13 and condition14 and condition15 THEN bkpatterm="吊人線"; condition16=(open[1] - close[1] ) >(high[1] -low[1])*0.75; //狀況1:前期出黑K棒 condition17=( close - open ) >(high -low) * 0.75; //狀況2:當期紅棒 condition18=high > high[1]; //狀況3:高過昨高 condition19=open<low[1]; //狀況4:開低破昨低 IF condition16 and condition17 and condition18 and condition19 THEN bkpatterm="多頭吞噬"; { [檔名:] 多頭執帶 [說明:] 開在最低點一路走高收在最高點附近的K棒 } condition20=close>open; condition21=(Close-Open)>(high-low)*0.9; condition22=Close>Close[1]+high[1]-low[1]; IF condition20 and condition21 and condition22 THEN bkpatterm="多頭執帶"; { [檔名:] 多頭母子 [說明:] 前期收長黑K棒 今期開高小幅收紅不過昨高 } condition23=( open[1] - close[1] ) >(high[1] -low[1])*0.75; //狀況1:前期出長黑K棒 condition24=close[3]-close[2]<close[2]-close[1]; //狀況2:前期呈波動放大下跌 condition25=( close - open ) >(high -low) * 0.75; //狀況3:當期紅棒 condition26=high < high[1]; //狀況4:高不過昨高 condition27=low>low[1]; //狀況5:低不破昨低 IF condition23 and condition24 and condition25 and condition26 and condition27 THEN bkpatterm="多頭母子"; { [檔名:] 多頭遭遇 [說明:] 前期收黑K棒 當期開低走高紅棒嘗試反攻昨收 } condition28= (open[1] - close[1] ) >(high[1] -low[1]) * 0.75; //狀況1:前期出黑K棒 condition29= close[1] < close[2]; //狀況2:前期收跌 condition30= ( close - open ) >(high -low) * 0.75; //狀況3:當期收紅K棒 condition31= open < close[1] and close < close[1]; //狀況4:開低且收跌 condition32= low < low[1];//狀況5:破前期低點 {結果判斷} IF condition28 and condition29 and condition30 and condition31 and condition32 THEN bkpatterm="多頭遭遇";
有了這個函數,我就可以把型態跟其他選股條件組合在一起,成為一個新的選股策略。
舉個例子,K線型態上有個叫多頭母子的型態,其樣式如下圖
我寫了一個選股策略如下
這當中除了本益比小於12及近一日三大法人合計買超這兩個條件是系統內建的之外,另外加了一個腳本型的選股條件: 低本益比股大跌後出現多頭母子,我寫的腳本如下:
if bkpatterm="多頭母子" and close*1.4<close[90] and close*1.2<close[30] then ret=1;
這個腳本是去尋找過去九十天跌了四成,過去三十天跌了兩成的股票,然後它的K線型態符合多頭母子。
如果拿這腳本跟上述條件組合而成的策略去選股,回測過去兩年,出場點設為20天之後,回測報告如下
過去兩年共出現八次抄底的機會,每次都能獲利出場,我把回測的時間接長到五年及十年,勝率也都有六成以上,平均報酬率也都還可以。
以上是bkpatterm這個函數的介紹及應用,這個函數目前包括的K線型態還不夠多,我會找時間把各種型態如W底,M頭等等的都補齊,未來大家直接引用即可。