什麼是「程式交易」?
一般人認知,可能是用電腦程式寫出一個交易策略,然後交由電腦自動化交易運作。
這是沒錯啦!但這只是程式交易的一個部分。
我個人的定義,是將之視為範圍更大的「系統化交易」,或者比較符合網路上對於「程式交易」的定義。
MBA智庫百科:「程式交易在英文中叫做Program Trading,就是將自己的金融操作方式,用很明確的方式去定義和描述,且遵守紀律的按照所設定的規則去執行交易。」
所以會不會寫程式不是重點,那些multicharts、powerlanguage等專用軟體,也只是程式交易的一個工具而已,並不是最核心的關鍵。最核心還是先定義出自己的「操作模式」,並借由一些工具去驗證此操作模式的績效為何?而後認為可行之後,再實際上線操作。
multicharts就是用來驗證過往績效的軟體,它可以省卻很多時間,但重點還是要先找出所謂的「操作模式」,才能用它去驗證。
即使沒有multicharts,或有些操作模式也無法完全用multicharts去驗證,那也可以選擇用最簡略的方式,將資料抓取下來,用excel來計算。
所以我覺得要學程式交易,最困難的並不是學怎麼寫程式,而是要找出一個明確且可驗證的「操作模式」。
那現在我來舉一個實例,先提我前兩天寫的一段話:
「我更深刻的感覺是,我曾做過統計,我有收集每天突破20日新高的股票名單,再取一些條件過濾,而後得出一些可能的飆股名單。然後我再看線型和籌碼狀況去做買賣。
結果發現有些我看籌碼有異常,例如雖創高但主力已經在賣、或今日創高是靠隔日沖券商拉抬,所以我就不買。但沒想到,有些我覺得不能買的,才是真正的飆股。 」
然後有紫微大提問:
「統計數量有多少個呢?繼續飆漲的占多少%呢?是否有得到自己的Cut of value呢?」
那我就來根據這段話,做一個程式交易的驗證。
一、先提假說:
我現在設定一個題目:股價若創20日新高,之後是否會再續漲?
二、資料取得:
首先我的軟體可以下載每日突破20日新高的股票,並還可選擇其他相關的一些資料,例如股本、營收、買賣家數差等等。
所以我就去抓取一段時期的資料,做成excel表。這個研究是我在2014年做的,所以那時我是抓2013全年的資料。
但我也先設定一個初篩的條件:
1. 股價>10元:為了排除一些價超低的全額交割股。
2. 創新高那日成交量大於1000張:為了排除量太少容易被操弄的標的。
3. 股本小於100億:因為是找飆股,所以排除一些股價較牛皮的大型股。
這樣抓下來,總共有1233筆資料。
例如:2013/1/2的標的就有陽程、海光、第一銅、瑞智、大榮、味全、技嘉。
然後1/3又有其他標的。
三、更明確的操作模式定義:
創20日新高後,是否續漲?這題目是不能做為程式交易驗證,因為太抽象,沒講時間,沒講其他條件,所以我現在再來續加強這部分:
「創20日新高」定義:「當日收盤價」創「近20日的收盤價」新高。
最重要關鍵是現在這點:因為創20日新高,是收盤已停止交易後才發現,當然你可以等「收盤價」創20日高後,再用盤後交易買進,但盤後交易並不保證成交。所以若要實際上線交易,我們應該要定義一個更可行的方式,就是採用隔日「開盤價」或隔日「收盤價」做為買進成本價。此處我取「隔日收盤價」做買進成本價(原因之後會說)
因此我的假設操作就是,今日盤後看到收盤價創20日新高,於是乎隔日收盤掛買進,當做我的買進成本。
「獲利計算」:買進後,追蹤5日後收盤價、10日後收盤價、20日後收盤價,並統計漲幅狀況。
例如第一個交易日看到創新高,於是第二個交易日買進當做成本,然後看第七個交易日的收盤價格,並以「(第7個交易日收盤價-第2個交易日收盤價)÷第2個交易日收盤價」當做我的「五日獲利率」計算。
當然,有人會問,這樣的統計會有一個盲點,那就是買進後恰好碰到除權息,而造成的股價變動怎麼辦?若統計上有除權息因素干擾,那不就會有很大的誤差?
於是乎,我們再調整收盤價的定義為「還原權息收盤價」(這我的軟體可以做到),因此就能避開除權息的干擾。
四、研究結果:
發現創20日新高的股票,其走勢真的就會再步步升高:
假設我們是在第一個交易日看到創20日新高,
那第二個交易日,平均來說會開高走低,平均「開盤價-收盤價」為負0.17%,所以這也就是我前面提,我會選擇用第二個交易日的收盤價當做我的買進價,因為買進成本較低。
第二日平均漲幅為:0.34%。
後1日平均報酬(第3日-第2日)為:0.11%
後3日平均報酬(第5日-第2日)為:0.48%
後5日平均報酬(第7日-第2日)為:0.74%
後10日平均報酬(第12日-第2日)為:1.61%
後20日平均報酬(第22日-第2日)為:2.86%
後30日平均報酬(第32日-第2日)為:4.50%
後40日平均報酬(第42日-第2日)為:5.99%
後50日平均報酬(第52日-第2日)為:8.24%
後60日平均報酬(第62日-第2日)為:9.83%
那我再取後10日的資料再分析:
在1233筆資料中,後10日的報酬,總共有636個標的(51.58%)會上漲、32個標的(2.6%)持平、565個標的(45.82%)會下跌。
感覺起來漲的比例沒有想像中那麼高,不過獲利還可以達到1.61%的原因是,主要都是大漲小跌。
例如漲最多的是2013/12/13的標的振維:44.23%,排第二的是2013/3/15的標的陽程:36.05%。
而賠最多的是2013/10/8的廣豐:-18.12%。
上面這些只是初資料,還可以再用其他方式再篩選提高勝率,例如加上「買賣家數差」、「主力連續買超日數」等等。
好了,我已經回答第一個問題了:「統計數量有多少個呢?繼續飆漲的占多少%呢?」
那現在我來回覆這段話:
「結果發現有些我看籌碼有異常,例如雖創高但主力已經在賣、或今日創高是靠隔日沖券商拉抬,所以我就不買。但沒想到,有些我覺得不能買的,才是真正的飆股。 」
當研究做完之後,我就開始每日追蹤新的名單,並看線型、籌碼來決定買進標的,並貫徹10日後就賣出的準則。
但可能是小弟的功力太弱,明明已經知道這些是相對勝算較高的標的,但加上我自己人工篩選,發現並沒有較預期的獲利來得高。例如過了半年後,這些創20日新高股票的平均漲幅是1.5%,但我發現我自己操作的部分,平均漲幅只有1.2%,比預期的來得差。
所以我才會說,去「細看」這些飆股的籌碼分析好像沒什麼幫助。
上面寫的只是小弟做過的一項研究,分享一下,大家不要太著墨於研究的結果,一直窮追猛打做批判,因為我分享的是研究的方法,不是這個研究結果,應該不會有人單純地以為我只有做過這個研究,就敢上來大放厥詞。
我之前講的一些籌碼分析文,其實都只是花拳繡腿,不見得什麼股票都適用。但今天提到的「程式交易」作法,我個人覺得才是真功夫,真正能致富的研究方式。
小弟剛上大學就在玩股票,研究投資大概有20年以上。我看過幾百本有關投資的書籍,但真正對於投資比較開悟,是近二、三年的事。
其實以前投資可以說是沒有章法的亂做,基本面財報也看、技術面也看、籌碼面也看,但看來看去,雖有賺有賠,但都沒有自己的操作原則。
對於初學者來說,常有這樣的狀況:當自己這次的操作有賺到錢,就感覺好像有抓到方法,但下次操作賠錢,就又不確定這方法是對是錯。
有時根本是「看錯做對」,而成為一場誤會,方法錯了,只是運氣好賺到。也有可能方法是對的,但投資有賺有賠,這次運氣差是賠了。
例如一種狀況:
打開電視,有投顧老師說,xx股票上月營收增加20%,EPS將達到10元,本益比低,所以要大買。
所以去買了,結果也漲了,所以這一定對?
那我想問,你有去查市場上有沒有股票上月營收比20%更高,且本益比更低。如果上述買進理論是正確的,那你應該去找比這營收更高,本益比更低的股票來買。
你買營收增加20%,那怎麼不買增加30%或40%的股票?
或營收增加,真的會直接反映股價?又反映多少?可以去查去驗證嗎?
又你看到新聞說,宏達電要發表新機U系列,所以股價要漲了,所以去買進。
那假如你沒看到這新聞,是看到華碩新機發表,那你要去買嗎?
又只要有新品上市,股價就漲?那如果和泰上了一款新車,你要買和泰嗎?
上面講的一些操作,其實都是沒有辦法達到驗證的,所以很難知道這樣做到底勝率多少?
或許有人經驗很豐富,混久了,知道只要宏達電發表新機,就會拉抬一下股價,因此他了解這股票的操作規則。
但要了解這規則,要混多久?新手可以這麼快了解嗎?那其他股票的規則,要花多久學會?
所以我現在已經不研究單一個股的基本面、技術面、或籌碼面,我主要在研究「操作模式」。
以上心得跟大家分享,今天太晚就寫到這,以後還有什麼想法再說。
對了!我知道有人會問我是用什麼選股軟體,我用的是理財寶的「選股勝利組」,這要花錢買,不過我想有些券商或網站應該有免費軟體可用。
還有,我真的不是賣軟體的,我也有multicharts,不是真的呆呆只會用excel,我來這邊寫作只是興趣。