2010年12月22日 星期三

MetaStock裡的「正宗」MACD

初接觸 MetaStock 的投資者,多數都會有個疑問,就是怎麼 MetaStock 裡的 MACD 不能自訂日數組合的?MetaStock 只容許我們修改訊號線的日數,但用來計算 MACD 線的兩條 EMA,不但不能更改,甚至沒有顯示所採用的是什麼日數:


這也太神秘了吧,MACD 而已,又不是黑盒系統,怎會什麼也沒有顯示的?我嘗試到 "MetaStock Help" 查看,找到如下解釋:

In order to maintain the mathematical integrity of the MACD as prescribed by Gerald Appel, MetaStock does not allow the time periods in the MACD to be changed.

2010年12月8日 星期三

程式編寫入門5 - 常用技術指標

除了移動平均線,投資者最常用的技術指標,相信非 RSI、STC 及 MACD 莫屬。現在簡單介紹一下它們在 MetaStock 程式中的表達方式:


為幫助理解,我們嘗試自行建立隨機指數 (STC),在 Indicator Builder 輸入以下的指標名稱及程式:

Name:STC
Formula:
Stoch(14,3)

2010年11月28日 星期日

程式編寫入門4 - Cross()

當我們編寫交易系統時,最常用到的也許就是穿越訊號,例如 10天線升穿 50天線,或 9天 RSI 升穿 30。在 MetaStock 中,這時就要用到 Cross() function:

Cross(DATA ARRAY 1, DATA ARRAY 2)

假設我們現在要建立一個移動平均線系統,買賣規則如下:

買入訊號
5天線升穿 20天線

沽出(平倉)訊號
5天線跌破 20天線

2010年11月18日 星期四

保力加通道與 RSI 的結合 - %b(RSI)

自從技術分析大師 Welles Wilder 的著作《New Concepts in Technical Trading Systems》面世後,相對強弱指數 (RSI) 就成為投資者最喜歡的技術指標之一。RSI 的基本應用非常簡單,幾乎隨便找一本技術分析書都可以找到:

1. RSI 超越 70為超買,市場有調整壓力。

2. RSI 低於 30為超賣,市場隨時展開反彈。

只要看過這兩個「法則」,就不難想到為什麼 RSI 會如此受歡迎了。多數投資者都喜歡低買高沽,怎樣才算高?很多人習慣與過去的價位比較,若恆指上星期還在 21000點附近,現在升至 22000點,就覺得很「高」了,再加上看到 RSI 升至超買區,往往就會忍不住想做淡。

2010年11月5日 星期五

程式編寫入門3 - Input()

大部份的技術指標都有一些參數供我們自行調整,以適應不同的市場或周期,例如 RSI 就可以採用 9天或 14天等不同的計算日數。那麼,當我們利用 MetaStock 的 Indicator Builder 建立技術指標時,要如何做才能讓指標擁有參數設定的功能呢?以保力加通道的 %b 為例,我曾介紹用下面的 formula 來建立 (請參考「程式編寫入門2」):

(C-BBandBot(C,20,S,2))/(BBandTop(C,20,S,2)-BBandBot(C,20,S,2))

大家可能留意到,這個 formula 所計算的 %b 是固定以 20天 SMA 及 2倍標準差作為參數組合的。如果想在指標建立好後,能夠讓我們自行調整參數,就要用到 Input() 函式:

Input("PROMPT TEXT", MINIMUM VALUE, MAXIMUM VALUE, DEFAULT VALUE)

2010年10月31日 星期日

陰陽燭:錘頭與射擊之星

陰陽燭 (Candlesticks) 可說是最古老的技術分析工具,起源於日本,自從 Steve Nison 在 1991年出版了《陰線陽線》一書,隨即引起世界性的陰陽燭學習熱潮。到了今天,陰陽燭已成為技術分析軟件的必備工具之一,在投資界幾乎無人不識。

我想陰陽燭之所以如此普及,應該歸功於其易記又令人著迷的形態名稱,諸如早晨之星、身懷六甲、三個白武士,聽著就覺得很有威力,連信心也好像倍增了。但是,到底這個在日本已盛行 150年以上的分析工具,在今時今日的金融市場上有多大效用呢?這次我嘗試用 MetaStock,對兩個基本的陰陽燭形態 ─ 錘頭與射擊之星 ─ 作簡單的 back-testing。

2010年10月23日 星期六

程式編寫入門2 - BBand

之前曾經介紹過由保力加通道衍生的技術指標 %b,它能顯示當前價格在通道的位置,並反映現行趨勢的強弱 (有關 %b 可參考文章 technical-analysts.blogspot.com/2010/10/b.html )。但是,若你仍在使用財經網站所提供的免費技術分析工具,就會發現根本找不到 %b 這個指標,這也沒辦法,一分錢一分貨嘛。

有些人不太願意花錢去購買貴一點的軟件,情願使用一些不夠全面但免費的網上圖表。但我認為,自己手上所用的技術分析軟件,就像戰場上的武器一樣,你可以使用免費的點38左輪手槍,但當你上到戰場時,發現其他人都手持 AK-47 自動步槍或 MP5 衝鋒槍,你會不會後悔沒有花點錢裝備自己呢?如果花點錢就能大幅提高自己的生存機率,相信大多數人也願意吧。

在 MetaStock 裡,我們可以透過 Indicator Builder 來建立 %b。首先介紹一下保力加通道的兩個基本函式:

BBandTop (DATA ARRAY, PERIODS, METHOD, DEVIATIONS)
BBandBot (DATA ARRAY, PERIODS, METHOD, DEVIATIONS)

BBandTop() 是保力加通道頂的函式,而 BBandBot() 則代表保力加通道底。舉例,保力加通道常用的參數為 20天簡單移動平均線 (SMA) 及 2倍標準差 (Standard Deviation),化做 MetaStock 程式如下:

BBandTop(C,20,S,2);
BBandBot(C,20,S,2)

2010年10月16日 星期六

程式編寫入門1 - Mov()

上次示範了如何用 MetaStock 編寫一個簡單的交易系統,當時所用的是 Mov() 函式,它在 MetaStock 中所代表的就是移動平均線。不過,正式介紹 Mov() 之前,大家首先要知道一些 data arrays 在 MetaStock 語法中的縮寫:


上述的縮寫字在程式編寫過程中經常也會用到,因此大家需要記住。現在我們可以看一看 Mov() 函式的結構:

Mov(DATA ARRAY, PERIODS, METHOD)

2010年10月14日 星期四

保力加通道指標 - %b

相信很多投資者也聽過保力加通道,我以前亦有在網站介紹過它的計算和基本用法,這裡就不再重覆了,有興趣的朋友可參考 ectrader.org/bands.htm。其實,除了保力加通道外,其發明者 John Bollinger 還設計了兩個技術指標:%b 和 BandWidth,這裡我想簡單介紹一下 %b。

%b 能清楚告訴我們價格和保力加通道的關係,其公式如下:

(收市價 ─ 保力加通道底) / (保力加通道頂 ─ 保力加通道低)

2010年10月10日 星期日

移動平均線的種類

移動平均線 (Moving Average, MA) 屬於順勢指標,它能幫助投資者判斷趨勢,而且預測能力頗強。最常用的有以下三種類型:簡單 (Simple)、加權 (Weighted) 與指數 (Exponential)。大多數人都採用簡單移動平均線 (SMA),因為它的計算最容易。以5天期為例,將今日收巿價和之前四個交易日的收巿價相加,再除以 5 ,得出的便是今日的 5天 SMA。

那麼,我們應如何選擇移動平均的長度呢?首先,我們要了解,移動平均的長度愈短,對價格的反應就會愈敏感,因此轉勢訊號亦會較快出現。但凡事有利也有弊,短期平均線的反覆訊號亦較多 (即平均線發出買入訊號後,很快又發出離場訊號,令之前的買入訊號蝕錢) 。請看下圖:

恆指日線圖


我們看到,在今年3月恆指出現短暫調整時,5天線立即跟隨向下,但較長期的20天線仍維持上升趨勢;到4月時,恆指真的轉勢了,5天線因為較敏感,所以比20天線更早發出反轉訊號。因此,投資者在選擇移動平均的長度時,要考慮的是自己所希望掌握的趨勢有多長。如果希望掌握長期趨勢,可以採用100天甚至200天線;至於大多數投資者,一般採用10天至50天之間的平均線。

2010年10月5日 星期二

踏出第一步

要建立技術分析交易系統,往往需要將買賣規則轉化為電腦看得懂的程式語言,以便進行歷史測試 (back-testing),看看自己設計的系統往績到底如何 。雖然歷史測試也可以人手進行,但卻要耗費大量時間,因此,除非你覺得自己的交易規則很難化做程式語言,否則可能的話還是盡量用電腦幫忙的好。

要把交易系統化做程式語言,需要用到技術分析軟件幫忙,較出名的有 MetaStock、TradeStation 及 Wealth-Lab,而我所用的是 MetaStock 11。現在讓我們來牛刀小試,以MetaStock 建立一個簡單的系統。

今次我們要建立一個移動平均線系統,買賣規則如下:

(1)  2天線升穿19天線買入。
(2)  2天線跌穿19天線沽出。

交易系統的好處

技術分析經常給人主觀的感覺,原因是各種圖表形態如頭肩底、三角形等很難有精確的定義,分析者往往是依靠自己的經驗去作主觀判斷。而波浪理論則更「離譜」,貌似只要掌握了基本的數浪規則,就可以天空海闊任你發揮,往往不同的人會得出不同的數浪結果,誰對誰錯要事後才知了。

但其實技術分析也可以很客觀的,有些人會利用一些技術指標和買賣規則去建立機械化的交易系統,系統完成後,投資者只需要根據系統所發出的買賣訊號去進行交易即可。這樣做主要有兩個好處:

首先,投資者可以擺脫情緒的影響。相信很多人也試過,即使已看過圖表走勢,正式做買賣決定時,仍然會心大心細,進場與否只是一念之差。今天心情好就進場了,下星期可能心情不同了,明明面對相同的圖表走勢卻畏縮不前。

其次,系統可以幫助你維持交易時的紀律。不能否認,很多人投資的動機是因為「好玩」,賺錢當然很重要,但投資市場所帶來的刺激與快感會令他們上癮,結果明明就沒有良好的買賣機會,他們卻仍然忍不住要找各種理由去進場「走一轉」。若投資者建立了自己的交易系統,一切有買賣訊號作依據,便不會再胡亂進場。

雖然建立機械化交易系統有以上好處,但我想強調,「藝術型」的投資者也可以獲得理想回報的,他們根據自己的經驗,對圖表形態和技術指標作出歸納總結,然後才下投資決定。雖然某程度摻雜了主觀成份,但這類投資者通常對技術分析有獨到的見解,而且能夠自我遵守紀律,有本事的人主觀一點又何妨呢?條條大路通羅馬,並沒有敦優敦劣之分。

2010年10月3日 星期日

技術分析辨牛熊

投資者要將資金投入股市前,第一個要問的問題必定是:現在到底是牛市還是熊市?傳統上大家都喜歡用250天線作為牛熊分界線,但我想在這裡分享自己的一個方法。

牛轉熊條件:

1. 周線圖上,價格跌穿 Kijun Sen,而 Kijun Sen 跟著掉頭向下。
2. 9周 RSI 跌至30以下,確認熊市。

熊轉牛條件:

1. 周線圖上,價格升穿 Kijun Sen,而 Kijun Sen 跟著掉頭向上。
2. 9周 RSI 升至70以上,確認牛市。

相信大部份人也認識 RSI,但什麼是 Kijun Sen(基準線) 呢?它是一目均衡圖中的指標,計算方法是將過去26日內的最高價和最低價相加,再除以2。Kijun Sen 與平均線有些相似,但卻將交易日內的波幅也考慮在內,以下為恆指周線圖的 Kijun Sen:




現在我們來看看,以 Kijun Sen 及 RSI 測恆指的實例:


周線圖 (98-02年)



 周線圖 (04-07年)



 周線圖 (07-10年)



大多數時候 Kijun Sen 的方向都會與現行趨勢相同,在實際運用時,我們可用來作為支持位/阻力位的參考。至於 RSI,很多人只會看它的超買超賣來估頂撈底,但其實 RSI 還有以下特性:

1. 牛市中,9周 RSI 會多次進入70以上的超買區,卻絕少進入超賣區。
2. 熊市中,9周 RSI 會多次進入30以下的超賣區,但絕少進入超買區。

了解這個特性,對於大家分辨牛熊就可以帶來很大啟示,當我們看到 RSI 在牛市以來第一次踏進超賣區時,我們就知道,這次很可能不是調整,而是熊來了!同樣,看到 RSI 自熊市以來第一次步入超買區,就要打醒精神,預備迎接牛市了。