【程式交易】為什麼你應該用Python做程式交易?

大家都在用MultiCharts,為什麼要選擇用Python呢?Python是一個自由度高,而且在開發效率與程式效能上取得一個完美均衡的一個程式語言,大家可能也會想要做程式交易要速度要快,是不是要去學C這類的語言呢?如果你不是資訊相關本科系的話,我相信上完第一堂課你就不會想再碰的動力了,可以想像一下,光是進行時間序列計算技術指標在C要怎麼運算,開發時間又要多久?


較高的自由度與延展性

相比較於MultiCharts來說是擁有比較好的彈性,MultiCharts的架構將前端資料源與後端回測的基礎設施給定,讓使用者只需要專注於以Power Language來編寫交易策略,對於初學者來說是相當方便的,是一條對新手來說比較友善的一條路,相當多的券商或期貨商都對於MultiCharts有相當多的功能支援,缺點就是需要付費,而且在開發與回測上會受到MultiCharts框架上的限制,像是撰寫一些比較複雜的商品或策略指標時,在既有的Power Language將會不支援,或是在績效衡量上想要用特殊自創的指標將會受限。

Python雖然比較屬於一個純程式語言,但是相當多底層的基礎建設已經有現成開發好的成果可以使用,而且套件數量相當多元,幾乎你想要什麼樣的應用都可以找得到,從後端計算、資料庫存取、網路爬蟲、開發網站或設計App等都難不倒他,可以輕易地結合各種統計模型或資料來進行交易訊號的產生。

完全免費且網路教學資源多

Python是一套免費的項目,大家常用的Anaconda也是免費的,建立一個程式交易應用基本上都是免費的,除非你要另外架設遠端Server,用做全數雲端化的架構;Python相關套件與教學也真的是很多,相信大家其實在YouTube或網路文章看一看就能夠輕鬆學會,當然學會跟活用的距離還不小,必須要有目的導向的進行應用開發。

在程式下單應用也有相當多的券商或期貨商支援Python API下單,當然也是時代所需,有了這個API接口可以讓客戶快速且方便的進行較高頻率的交易,對於經紀部門來說是相當好的,所以各家都有投入資源在這上面,我們可以說是相當幸福的啊!

新手門檻

從開始課程的開發與經營開始,就有相當多的程式新手在詢問是否可以上這堂課,我都建議大家盡量先把完整的基礎教學上完後,試著建立一些小小的應用開始,讓腦袋習慣用程式架構思考的方式,也要練習進行流程的規劃與設計,最萬惡的就是練習不怕跳出錯誤訊息,過去我們在台灣的教育環境上總是很怕寫錯被扣分,但是程式能力卻是由錯誤堆疊中累積,套件的函數也不是像英文單字一樣一個一個背,用到再去google就好了,這些都是新手要習慣的地方。

純粹新手就要學會程式交易的精髓是需要幾百小時的研究,透過各種嘗試與錯誤來建立自己的想法,希望大家不要被一堆看似簡單的程式交易線上課程給誤導,很多就會變成填鴨式的教學,有程式碼後就複製貼上,這樣做東西永遠都是老師的,你是不容易去內化的!

結論

套一個以前打RPG線上遊戲的概念來說,新手裝就是MultiCharts,它可以讓我們很容易就開始打怪,進度也比較容易推進,但是到了後期要做一些較難的任務時,可能會出現一些限制,而Python則是會讓新手在前期很辛苦,但是後期卻能夠輕易地解決各種困難。


雷大的Python投資筆記電子報

歡迎訂閱雷大的Python投資筆記電子報,每週將會發布定期市場分析文章與不定期的專案研究文章:

  1. 國際金融市場分析
  2. 量化交易策略分享
  3. Python程式撰寫教學

立即訂閱最新文章