最近因好奇目前程式交易的市場發展到什麼程度而報名了期貨工會開的程式交易課程,上課時看到一群積極想要加入程式交易領域的同學們,讓筆者回想到2008年筆者與一群志同道合的朋友,組成了一個程式交易工作室,一群人在三房二廳的公寓佈置了程式交易的辦公室,每天早上看盤、監控程式執行、寫交易訊號,下午收盤後,開始檢討交易紀錄、回測交易訊號、審核程式上下架,三年下來,也寫了不下千支的策略,最後能通大台單邊手續費2000元審核的剩下五十支左右,在這五十支中能夠長期有效,同時執行的策略控制在20支左右,這是筆者所有職涯中,開心的一份工作,骨子𥚃果然是流著交易的血。有鑑於最近開始忘東忘西,趁著對這些開發的演進過程還算印象深刻時,趕快寫下來,於是就形成了「程式交易的前世今生」系列,當成與同好交流或日後回憶的備忘題材,筆者儘量日更這系列。
回想2007年初,筆者開始接觸到TradeStation(以下簡稱TS),從日盛的HTS轉到TS時,讓筆者非常驚豔,可以利用Excel加DDE的方式,將客制化的資料傳入TS的QuoteServer(TS的報價源),再讓這些資料以即時圖表的方式,顯示於TS的介面上,快速建構一套專業的自有看盤軟體,雖然在當時台灣只有TS2000i(2000年後,TS在台灣就沒有新的版本推出)可用,雖然已是七年的軟體了,但簡單的資料設定,還沒寫任何的程式碼就已建構出一套客制的看盤軟體,讓身為工程師的筆者非常佩服,在這之前就只能土法煉鋼,自己用C++慢慢疊出自己想要的功能。
既然安裝了可以寫訊號並且回測的軟體後,當然不能滿足於客制版的看盤軟體,一定要寫支程式來初探一下系統的功能,就寫了支TS界的「Hello World!」程式,以簡單的長短均線交叉為進出場訊號,寫完後掛入一分K、五分K、三十分K,結果發現「代誌不是憨人想ㄟ那麼簡單」,這種在各大財金節目上講的入門交易規則不旦完全賺不到錢,還賠了一屁股的手續費跟交易稅。
這時進入了程式交易的第一階段:優化進場條件,配合簡易出場,就像學生一樣,「贏在起跑點」,最後效果應該不會太差吧!以這觀念寫了不少的策略,在進行檢討時,常常會發現出場太過簡單,而形成把魚尾吐掉太多,常常行情折回一段後,才出場。
此時就進入了第二階段:常言道「會買的是徒弟,會賣的才是師父。」,於是開始觀察有什麼出場手法可以出場,除了簡單的停損、停利、移動出場外,還發展出關鍵K棒出場、多階段移動停利出場、持有時間未達目標價出場⋯⋯等。
經過了進出場的改善後,策略績效達到了一個不錯的水準,當沖的MDD一口大台控制在五萬以內,波段的MDD一口大台控制在八萬以內,賺賠比也都可以達到2.5以上,最差的勝率也超過45%,在這階段程式也很順利跑了一年多的實單,實際獲利也都在回測的水準上,但仔細觀察會發現,有些形態的行情,就會連續虧損,雖然還不至於破MDD跟連錯次數,但在心情上就是不舒服。
在團隊的腦力激盪討論之後,就想出類似賽車場上的輪胎觀念,在比賽當下,會依當時的天氣改裝不同的輪胎,因此著手於進場條件的判斷,策略先判斷過去一段時間的行情,依此做出是否交易的前提條件,然後才進入到前二階段的策略進出場區塊。雖然只是一個小小的想法改變,卻得到意想不到的效果,在MDD不變的情況下,勝率一舉突破了55%,最好的一支策略,勝率超過80%,賺賠比也突破了3以上,這在順勢型的交易策略是一大突破。
從事程式交易這麼多年,時常聽到這世上是不存在交易聖盃,若以單一個聖盃(即一支無敵程式)的確不存在,但若想像成這聖盃是一個拼圖或積木,是由許多策略所組成的一群交易策略,那這世上的確有交易聖盃存在,至少在筆者目前所經歷過的經驗,這個組合的聖盃還是有效地在進行中。