2013年2月17日 星期日

建構程式交易平台__老狗為何選擇 Excel?

建構程式交易平台的方法很多,TradeStation、MultiCharts、Amibroker…不勝枚舉,為何獨挑Excel?很單純!因為老狗比較熟悉這個。當然,以Excel建置交易平台,還有其他考量因素與優缺點,分別介紹給讀者參考。

據說,速度可能是Excel的弱點,只是老狗沒有做過其他方式的程式交易,不知該如何比較。以老狗過去的經驗來看,當快市時,成交量遽增、價格跳動太快,的確會有跟不上的感覺。採取順勢操作系統,尤其是期指交易,順著趨勢產生交易決策,必須追漲殺跌時,Excel的速度與滑價設定必須被考量。

不過,影響交易速度的因素太多,硬要比較快慢是有風險的,即便資訊源、硬體結構、軟體系統、下單平台、網路速度...都一樣,不同的人寫出來的程式,交易速度也不一樣。讀者必須根據自己的策略操作,思考整體交易平台執行速度的需求。當然,在建構Excel交易平台的過程中,應該盡量改善交易速度,減少會降低交易速度的動作與設定。

就台灣50平衡比例投資法【自動下單版】來說,台灣50的交易一分鐘約兩三盤,所以沒有速度快慢的問題,考慮滑價即可。而選擇權存在與期貨指數的delta關係,快市的程度較緩和,也同樣是以滑價買賣來盡量克服。

其次,在Excel上執行歷史資料回溯的複雜度較高,蒐集並匯入原始資料,根據投資策略,撰寫巨集程式,都必須自力完成,策略回測的執行動作較費工。

台灣50的歷史回溯部份,老狗已經於部落格內分享操作參數測試與績效比較,讀者可以參考。雖然選擇權資料模擬不易,搭配台灣50的回測難度更高,不過只要交易邏輯沒有偏差,以避險為前提的Covered Call操作,需要歷史回測來佐證的迫切性不高,讀者可以直接參考老狗在部落格上分享的實際交易記錄。

建置順勢程式交易系統的讀者,盤中根據即時的價量變化,以事前設定的買賣指標,判斷交易訊號,執行操作決策。因此,以歷史資料回溯買賣指標的有效性,有其必要性。雖說歷史資料並不代表未來,但未通過歷史回溯測試的交易系統,又如何面對未來呢?

Excel 的最大優點是「工作表公式」與「VBA巨集」並存,兩者可以相輔相成。交易過程中大多數的邏輯判斷,只要在工作表上拉一拉公式,就可以很簡單地被呈現出來,不需要撰寫巨集。VBA巨集可以彌補工作表公式的不足,特別是對外溝通的部份:DDE連結的設定、買賣委託單的執行與即時回報的反應。以老狗的經驗來說,能在工作表上處理的邏輯判斷,盡量不要寫在VBA巨集,程式撰寫應該盡量簡潔,以後也好維護。

老狗認為選擇權交易特別適合在Excel上執行程式交易的主要原因,在於公式設定的便利性,尤其是那一堆希臘文字的風險係數,寫好VBA的Function編碼,即可將風險係數試算交給Excel,讓它根據市場變化,在工作表自動試算即可。

此外,藉由「錄製巨集」的方式,觀察其程式編碼,是Excel友善之處。很多實際撰寫過VBA巨集程式者,會跟老狗有相同經驗,遇到沒有把握的程式語法,便以錄製巨集的方式,請Excel協助編碼,再檢視錄製的巨集,逐步修改自己的程式編碼。這種邊寫、邊錄、邊學、邊修的經驗,是Excel程式交易者成長的必經過程。

「直觀設計」是Excel的另一優勢,完整的工作表結構規劃,可以實現程式設計流程;透過工作表頁面的執行邏輯判斷與公式連結,也可簡化VBA程式編碼。而且在交易過程中,只要觀察工作表,便可了解目前程式執行的狀況,清楚目前指數與股價的位置、是否觸發交易委託單…等等,只要觀察工作表的數字跳動即可,這是Excel的直觀設計。

另外,分享老狗的經驗,參數設定應該盡量表格(Table)化,盡量在工作表頁面上,設定交易過程所需要的操作參數。如此,無論是因為臨時的交易需求,或是變更操作偏好設定,相關操作參數的修改,不必動到VBA程式編碼,可使交易系統的彈性更高。只是過多的參數存取,須注意其對程式執行速度的影響。

依交易系統流程來規劃工作表結構與頁面設計,並注意簡化與彈性的需求;剩下的工作是以VBA程式編碼,處理交易系統輸入與輸出的流程,這對有程式編碼經驗的交易者來說,反而單純。


原文連結: http://0050-option.blogspot.tw/2013/02/0050-excel.html

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...