2013年10月29日 星期二

程式碼自動產生器的開發 Part 1


EasyTrader ArtNo 036
基因工程舊文開始就一直在思考是否有更好的方式來幫助我們作交易策略的開發?接下來在"聖盃 - 程式交易者的追尋 "一篇中也提到進入程式交易應有的觀念,本篇開始進入主題~ "工欲善其事,必先利其器"~先從這個圖來說明一下傳統交易策略的產生的流程!其中策略的主要元素就是開/高/低/收的商品價格,與策略開發者從觀盤過程或是技術指標的理論基礎所衍生而來的次要元素,當然一些外部經濟數據或市場資訊,盤後籌碼也可以放在這個過程作為參考元素,評估策略時就需要透過輸入商品的歷史資料與對策略的績效期待目標讓電腦作計算

交易軟體提供評估的項目有很多,下圖是TS2000i提供的總表一部份,有框起來的部份是最先要看的資訊.這包含了淨利,總交易次數,最大回撤 MDD,勝率,獲利因子與帳戶權益報酬率 ROA




而我們也提到策略的開發過程是費時費力的,那麼能否將開發策略的許多法則,讓電腦除了幫我們作演算,找出符合設定績效目標之外,並自動產生程式碼,這樣對不懂程式設計或技術理論基礎的交易者也能夠很容易的使用,對具備經驗與程式撰寫的開發者,也能透過電腦的快速演算找出更多創意發想的交易規則,並不斷將菁英的法則加入策略的元素當中,逐步邁向基因工程DNA複製/交配/突變應用的邏輯.

基因工程的概念來自於物競天擇,適者生存,從原理來看也是最佳化的演進法,不同點在於隨機的自由度,與一般交易軟體參數最佳化序列式計算有所不同,不過最近在另一個交易軟體的最佳化演算過程中也看到了基因演算的應用,看起來這是未來交易策略開發必經的路程,除了加速策略開發速度外,也因為自動產生程式碼,更降低使用程式交易的進入門檻.

程式碼自動產生器:長久以來在商業/工業軟體中都有很多的應用,我們也從這裡開始出發.交易策略最基本也是最主要的元素就是價格, 而最簡單的基礎架構就是進場與出場的規則,其他資金管理,部位控制,心理層面與紀律執行都是在決定進入遊戲戰場後要學習的! 進場或出場條件五花八門,孰優孰劣是由市場與自己帳戶的內容來決定!

為了簡化開發的難度,先以單純的價格作為開發此模型的核心元素,設計概念是透過電腦隨機作價格條件的配對與組合: 例如 Close >= Close[3] and High >= High[5] and Low[2] < Low[4] 3個因子符合,作為多單進場條件 , 也可以用 Open >= Close[1] and Low <= Low[4] 2個因子符合作為空單賣出的條件!電腦演算也隨機作需要多少個因子符合才下單的決定

而這些不同的進出場因子元素 Price , >= , <= ,引用 Bar位置 [1 ,2 ,or Other Number]都是由電腦隨機選用出來 ,並在符合進/出場條件的下一根K棒買進或賣出,並同時計算歷史回測的績效評估是否符合預期, 當隨著績效符合預期設定時,被使用的因子也同時被記錄下來並同步輸出為可直接套用的策略程式碼! (待續 )

沒有留言:

張貼留言