我的「價格波動率突破系統」係依據「包寧傑帶狀操作法」一書中所述「交易系統I-價格波動率突破」發展出來,本文列出該書原文與本人實作的對照。(以下黑色字為「包寧傑帶狀操作法」一書中的原文,棕色字則為我的注解。)
文後有加入我的XS腳本以及選股範例。
擠壓辨識
價格本身沒有循環,也不能被預測,但價格波動率則存在循環。價格波動率存在著「物極必反」的現象,偏低價格波動醞釀著價格波動轉強的契機。
價格波動率突破系統,首先要辨識「擠壓」(The Squeeze)現象,擠壓最簡單的定義就是當帶寬指標下降到六個月以來的最低水準,就視為產生擠壓現象。
注:你可以用目視的方法見到帶寬變得極窄,但很顯然你不可能每天掃描一遍所有股票的技術線圖,所以借助於電腦程式可能是唯一解決的方法。如不會寫程式,則可參考網路上的資料,但我發現即便是收費網站,大概也找不到這種資料。
電腦首先每天計算帶寬指標【=(帶狀上限-帶狀下限)/帶狀中心價位】,然後判斷是否等於6個月以來的最小數值(改為120個交易日),如果是則視為發生擠壓。
在20天內曾經發生過擠壓且目前帶寬<=最小帶寬*3者視為仍在壓縮狀態,仍在壓縮狀態者列表出來以人工方式繼續追蹤是否符合買進標準(比如在4天內上漲了5%以上)。
買進方法
我們的價格波動率突破系統採用帶寬指標設定前提條件,然後等待突破發生當時建立部位。...
關於方法I,成功操作的最大困難在於假動作——這也是前一章的討論主題之一。這個名詞源自於曲棍球,但也出現在其他類似場合。攻擊者帶著球衝向對方球門;過程中,他轉頭假裝要傳球,一旦防守球員認定他要傳球而展現對應動作之後,他又回過頭來射門。盤勢脫離「擠壓」狀況之後,經常也會展現類似的假動作;首先假裝朝某個方向進行突破,然後又擺頭朝另一個方向展開正式攻擊。在典型的狀況下,首先出現擠壓,然後價格朝帶狀的某一端逼近,按著就回頭朝另一方向攻擊。一般來說,這類走勢都會侷限在帶狀範圍內,直到真正走勢出現之後,才會產生突破訊號。可是,如果你採用的參數使得帶狀寬度變得相對較窄,在真正的走勢產生之前,可能會出現幾次穿越帶狀的反覆訊號。
某些股票或股價指數比較容易產生假動作或假突破。對於所操作的對象,觀察過去的擠壓走勢,評估假突破的發生頻率。一旦曾經欺騙,往後就……。
如果你願意接受非機械性操作方式的話,最簡單的辦法就是等待擠壓狀況發生——前提條件——然後觀察價格突破橫向盤整區間。在走勢轉強的第一天進場建立半數部位,正式突破之後加碼,並且利用拋物線系統或觸及對側帶狀邊緣的停損策略,避免萬一判斷錯誤所造成的傷害太大。如果交易對象很少出現假動作,或者帶狀參數的設定不至於造成假動作的問題,就可以很單純的運用 「方法I」。等待擠壓狀況發生,然後只要看到突破就進場。...
注:包寧傑對於機械性操作法的建議是,「走勢轉強的第一天進場建立半數部位」,這有點抽象,「正式突破之後加碼」,這個正式似乎也是蠻抽象的。我的方法在下面「假動作」一節說明。
輔助指標
在這些情況下,成交量技術指標確實可以提供協助。在假動作或假突破發生之前,觀察盤中強度指標(Intraday Intensity)或承接/出貨指標(Accurnulation Distribution),預先判斷可能的突破方向。資金流量指數(MoneyFlow Index)是另一項值得參考的技術指標,可以提高成功機率,鼓舞交易信心。這些都是成交量指標,屬於第IV篇的討論主題。...
...我們經常見到擠壓現象的運作。一旦行情進入整理,價格交易區間明顯縮小,價格移動平均線的走勢明顯趨於平緩,包寧傑帶狀寬度也緊縮,緊靠著價格均線波動 (圖15.3)。舞台已經搭建妥當。讓我們看看其他技術指標的狀況。行情上漲的日子裡,成交量是否配合放大?承接/出貨指標是否向上反轉?價格下跌的日子裡,交易區間是否更縮小?開盤價與收盤價之間的關係如何?每種現象都有助於我作判斷隨後的行情發展方向。務必特別注意消息面,消息面經常是行情的催化劑。
結合運用各種技術指標
在使用指標的時候,首先要注意的是「多重共線性(multi-collinearity)」陷阱與「狗腿子」陷阱。
所謂「多重共線性」陷阱,意指:採用多個確認指標,絕對可以提高成功機率。但如果這些指標屬於共線性 (collinear)指標,那就有問題了;舉例來說,在特定情況下,動能指標基本上都會提供類似的訊號;所以,如果你看見五種動能指標都出現類似訊號,這並不代表五種相同訊號就比較可靠。
要避開這種可怕的陷阱,每個指標類別(如表一)內只挑選一種技術指標;例如,一種動能指標,一種趨勢指標,一種成交量指標,以及其他等等。成交量指標與人氣指標特別值得考慮,能夠提供額外的資訊,而且不容易造成多重共線性的問題。
注:顯然藉由各種指標來避免假突破才是應該努力方向。包寧傑建議採用成交量技術指標,譬如盤中強度指標(Intraday Intensity)或承接/出貨指標(Accurnulation Distribution) 或資金流量指數(MoneyFlow Index),
然則我使用我的系統上現有的指標都沒有關鍵性效果,我使用MFI>=70,測試結果無甚差異,比較關鍵的因子反而是成交量放大與漲幅。
出場
關於部位的停損或出場,可以採用兩種方法。第一是韋達的拋物線系統,觀念非常簡單而有效。就買進部位來說,起始停損設定在突破排列的稍下方,然後每天向上調整。至於空頭部位,停損設定方法的觀念也相同,但位置剛好相反。拋物線是一套相對保守的系統,如果使用者願意承擔更大風險,嘗試掌握更大的獲利潛能,價格觸及帶狀對邊,可以做為理想的出場訊號後者允許價格出現較大的修正走勢,進行較長期的部位交界,換言之,「價格觸及帶狀下限」可以做為多頭部位的出場訊號:「價格觸及帶狀上限」可以做為空頭部位的出場訊號。
注:我不認同包寧傑所提的出場方法,因為SAR只適用在趨勢明顯的標的,而觸及帶狀對邊的方法不符合風險/報酬原則,也就是風險太大。
時間因子
包寧傑對於出場的建議是「就買進部位來說,起始停損設定在突破排列的稍下方,然後每天向上調整。」我是把它設計為「大量突破日收盤下方7%停損」但是,要加上「時間因子」。因為既然是短線,則其勢不可久,你必須規定它在幾天內有所表現(漲幅超過14%),否則就應該立刻出場,這叫做HOLS_DAYS。我的賣出規則如下:
賣出
1. 收盤跌破選股日收盤價 * 0.93停損。
2. 期間最小跌幅: 7 日(HOLD_DAYS)內若獲利未達 14%(最小獲利)則強迫出場。
3. 浮動停利點:若獲利超過 14%,改用收盤價跌破 ma10 * 0.96出場(不上移)。
假動作
包寧傑指出,關於本系統,「成功操作的最大困難在於假動作...」,他提出兩個方法,1.觀察過去的走勢,是否經常出現假動作。2.分批買進,一開始先只買進一半。由此可見包寧傑也察覺到這種方法的失敗率很高。
觀察過去的走勢,那實在是有點不太科學,因為那不可能寫成回測程式。有沒有辦法解決包寧傑無法解決的問題?我使用以下三個方法來解決:1.試單策略,2. 5日均量,3.企圖心。
試單策略
分3批,每+3%投入一批,但為避免需要整天盯盤,改成「收盤前+3%」。
5日均量
除了要求在突破當天,成交量必須大於10日均量的5倍,另外加上5日均量必須大於5天前的5日均量5倍。(成交量與10日均量的比較是易於快速抓取資料,主要還是判斷5日均量的放大)
註:此條件無法以單純SQL完成判斷,故寫在OpenWinReport.java的isByPass()中。
企圖心
另外一個辨別是否為假動作之方法為,判斷主力的企圖心。如果主力用力拉抬股價突破盤整區,那麼他一定會先急於脫離成本區,所以判斷他不可能立刻洗盤。所以應該至少在4天之內拉抬至少7%以上的漲幅。
XS腳本
XS選股範例
留言列表