程式交易的學習地圖

By | 2017-02-20

當代的程式交易語言平台日新月異,到底該學那一種?

在台灣,我們最常接觸到的程式交易語言,可以分成幾類:

一,Excel VBA

這是目前台灣最常見的程式交易語言,Excel大部份的人都會用,VBA算是很好學,Excel的每一格存什麼資料,被呼叫到那裡運算,有所見即所得的好處,加上發展的早,包括即時行情的導入及下單機的串接,網路上都有不少資源可以應用,缺點是,Excel一張表能包括的資料欄位有其上限,用來跑單一商品例如近月台期指還OK,要是要跑1600檔台股,恐怕開盤沒多久就當了。

二,Tradestation及其衍生語法。

Tradestation的easy language 是金融操作專用語法的鼻主,後來日盛引進了韓國的HTS裡,有一個叫Power language的,以及俄國人寫的MutiChart,都算是Tradestation這一家族的成員,嘉實資訊的XS程式交易語法,也使用了跟Tradestation相同的觀念及架構。

這個族群的語法,基本上就是想應用pascal語言,來完整描述一張K線圖,所以它是一個時間序列的架構。 pascal是屬於流程導向的程式語言,這種語言對一般人比較容易上手,是屬於很按步就班的語言。包括MC,HTS及XS的優點是,User自己不用串行情,串下單,XS還可以運 用籌碼及財務報表裡的相關欄位,缺點則是Tradestation及Pascal都屬於古董級的產品,要透過這樣的平台做大數據分析及人工智慧,會有困難。

三,R語言。

R語言是Open source,學界的最愛,可以透過向量及矩陣同步處理大量的資料,在統計,數據分析,繪圖上非常好用,這個語法的好處是有大量現成的程式碼及Library可以應用,例如回測的部份,有不少資源可以套用,缺點有兩個

1.股價資料從yahoo財經來,其餘的數據要自己先準備。

2.語法的設計非常靈活,也非常物件導向,對於程式設計科班的學生進入障礙不高,但對於那些習慣用K 線圖的分析架構來作決策的人,進入的門檻略為高一點。

四,Python。

Python是這幾年很多初學者被介紹直接學習的通用程式語言,有不少從事程式交易的人,透過python寫交易程式,有家叫作Quantopian的公司,就可以讓您把用python寫好的程式,上傳去作回測,有問題也可以上這家公司的社群去問人。這幾年,有不少人在Python上開發人工智慧的套件,所以如果你是一個程式設計很厲害的工程師,串資料,接下單機對你都不是問題,那麼Python可能是一個可以長期耕耘的語言平台。

以上的語言,各有優缺點,到底要挑那一個平台,我的建議是,挑合用的就好,如果您不想付費,又不懂程式設計,而且只作期指交易,那麼用VB來入門是OK的,如果您是程式高手,用Python應該會很好用,如果您有很強的統計及數據分析背景,R可能最適合你,如果你是個期指交易的高手,那麼Mutichart可能是首選,如果你跟我一樣,習慣用K 線圖來作功課,程式能力很差,也不會自己串行情及串下單,那麼XS會是您不錯的選擇。

怎麼知道那一個最合用呢? 最簡單的方法就是先定一個交易策略,然後試試在不同的平台上要怎麼把它變成程式交易,舉個例子,如果你想要找那些MTM突破0且投信買超的股票,在XS上,你只要寫下以下的腳本

if momentum(close,10) cross over 0
and GetField("投信買賣超")>0 then ret=1;

短短兩行程式,還可以先跑一下回測看這策略準不準。

您可以試著在其他平台上寫這樣的策略,並且回測,看看需要多久的時間,最後你就會找到最適合您的平台。

學海無涯,學然後知不足,不足的時候,再學其他更進階的就行了。