無編程背景都掌握到 Python為程式交易的入門之選
撰文:蔡嘉民| 圖片:unsplash
程式交易涉及電腦編程
程式交易顧名思義涉及電腦編程,對於沒有編程背景的人來說,電腦編程有如洪水猛獸。
而且編程語言則各式各樣,例如C++、C#、Java、JS、Python等等。
各種語言的語法皆有所不同,令人眼花繚亂。
不過,因應金融市場對程式交易的需求日益增加。
市場早期已推出一些第三方軟件,當中涉及的語言比傳統語言簡單得多,並且主力圍繞交易環境而設。
Easy Language無難度
例如其中一個熱門的第三方軟件Multicharts,其採用的Easy Language語法極簡,就以想在市場下一口「陰陽燭」作出市價盤買入為例,能簡單至輸入「Buy next bar at market」。
換言之,用家只需略懂英語,可直接把想達到的交易行動寫出來就可以。
再舉個例子,例如想設定止蝕的指令,只需輸入「SetStopLoss(50000)」,意即一旦倉位虧損達到50,000元時便平倉止蝕。
由此可見,這種為交易而設的語言,其實不太需要用家有任何編程知識或經驗。
讀者有可能會好奇,在毫無難度的第三方交易軟件前,哪些傳統編程語言在交易市場上,還可以擔當甚麼角色?
其實,愈簡單的語言,可塑性會相對較低,例如使用Easy Language作期權交易複雜程度會較高,而且極不方便。
Python最佳入門之選
若使用簡單語言後,發現未能滿足交易需求,便可考慮使用Python。
PYPL(Popularity of Programming Language)統計顯示,Python在2018年已超越Java,成為最廣為使用的程式語言。
Python的應用性極廣,人工智能(AI)、機器學習(Machine learning)、深度學習(Deep learning)等領域,大多都是Python的功勞。
而且,Python的學習難度比其他傳統語言低,對於初初進入程式交易世界的用家來說,是為最佳的入門之選。
而更深造的用家,如打算在交易速度上作出提升,便可向C++等編譯語言(Complied language)進發。
此外,市面上採用Easy Language的第三方軟件有不同選擇,例如Multicharts、Amibroker等等。
免責聲明:本專頁刊載的所有投資分析技巧,只可作參考用途。市場瞬息萬變,讀者在作出投資決定前理應審慎,並主動掌握市場最新狀況。若不幸招致任何損失,概與本刊及相關作者無關。而本集團旗下網站或社交平台的網誌內容及觀點,僅屬筆者個人意見,與新傳媒立場無關。本集團旗下網站對因上述人士張貼之資訊內容所帶來之損失或損害概不負責。
延伸閱讀:分析遠勝於人 揭程式交易流程神秘面紗
【投資】上期筆者提到,程式交易大行其道,並列出三大學習程式交易的原因,包括賺取被動收入、作出精確的量化分析,以及摒除人性缺點。或者讀者會好奇,究竟程式交易的流程是如何,今期筆者便為大家揭開其神秘面紗。
撰文:蔡嘉民| 圖片:unsplash
要作出一個有勝率的交易涉及兩部分,一是分析;二是執行。
而程式交易除了在後者帶來好處以外,在分析上也遠勝於人。
分析過程中,其中一大部分為回溯測試(Backtesting),即是使用歷史數據作分析,找出能有效獲利的策略,或者測試一下手上的策略若在過去運行,績效如何。
因此,在進行回測前,炒家會在市場上觀察規律,簡單例子如當10天移動平均線上穿20天移動平均線後,後市表現會如何。
優化操作策略
一旦觀察到有潛在獲利機會的規律後,便可開始把策略放到數據上測試,例如每逢出現「黃金交叉」後便買入,直至出現「死亡交叉」就賣出,如此便能計算出在歷史上運行此策略能否獲利。
回測後,用家可以得出各種各樣的表現統計數據,除了大家最常關注的回報外,還有夏普比率(Sharpe Ratio)、最大回撤、年回報與最大回撤比、最大回撤長度等,都對評估策略有著極大幫助。
假如對測試結果不太滿意,投資者可嘗試進行下一步驟 — 優化(Optimization)。例如改變交易頻率、改變策略的參數等等,看看能否改善表現。
程式於優化過程中擔當著極大角色,用家可以讓電腦自動進行測試,例如把移動平均線的參數範圍設定為10天到50天,電腦便會從中找出最佳的移動平均線組合,繼而重新進行回測,並顯示優化後的結果。
以上便完成了分析的部分,一旦策略確立後,便可以直接過渡到執行部分。
確認券商支援
所謂執行,是指建構電腦可讀的程序碼,讓電腦替你每天自動執行策略。
首先要確定你所使用的經紀商可以支援程式交易,例如一些證券行會開放應用程式介面(API)予用家讀取數據並進行買賣。
有數據連接後,程式便可以收取即時數據,並計算訊號。
當訊號觸發了預設的條件,例如10天移動平均線上穿50天移動平均線,電腦便會發出買入的訂單訊號到經紀商。
相反,當10天移動平均線下穿50天移動平均線後,電腦便自動發出賣出訊號;如此便完成由程式進行的一個完整買賣。
執行過程中,程式會比人更快更準確的計算訊號並下發訂單,而且完全毋須炒家花費精神監察股價或市場動向。
因此,從訂定策略到回測、再到優化及編寫執行的程序碼,便是一個常見的程式交易流程,而當中涉及的細節及技巧,筆者未來會在本欄繼續分享。
免責聲明:本專頁刊載的所有投資分析技巧,只可作參考用途。市場瞬息萬變,讀者在作出投資決定前理應審慎,並主動掌握市場最新狀況。若不幸招致任何損失,概與本刊及相關作者無關。而本集團旗下網站或社交平台的網誌內容及觀點,僅屬筆者個人意見,與新傳媒立場無關。本集團旗下網站對因上述人士張貼之資訊內容所帶來之損失或損害概不負責。