2013年5月25日 星期六
資訊人學交易
現在作期貨交易,幾乎離不開資訊和交易兩大主題,而關於學習的方向,有兩種類型是大部份人的情況,一是資訊人學交易,二是交易人學資訊。L這邊想針對第一種類型作紀錄。
資訊本科的人或從交易工具出發的人,最常見的情況是由程式交易的觀念開始,熟悉策略開發的工具,可能是從EXCEL、VB開始,接著學習Trade Station、Multicharts,然後從策略開發工具上尋找範例策略,開始建構程式,接著再看交易邏輯的書、或論壇、或網路上的交易策略分享等等。
L也是這類型的人,在一個念頭下就自己建立報價資料庫,以SQL建立交易策略,設計邏輯與回測,在還不瞭解什麼是最佳化之前,就已經在測什麼參數對這個小模型最有利,後來才知這一連串的動作是最佳化,而且也用了TS才知道寫邏輯和參數最佳化這麼方便。
過去的經驗比起現在的交易人來說,學習曲線非常慢,因為什麼都要自己來,你可以想像用SQL程式寫交易進出和作迴圈然後計算損益多了多少工夫嗎? 還沒說測試的績效報表的建立。而現在有了這些交易工具,對我們資訊人來說實在太方便了,easy language確實很easy,報價資料、圖形顯示和測試報表都不用我們多花工夫,只要針對交易邏輯的開發就行了。
問題就是這個交易邏輯的設計,我們東拼西補,所有找到的東西都拿來套看看,績效會不會獲利,無例外的,我們都能找到很棒的策略,跑出來的績效非常優秀,迫不及待的上戰場了,當然,事情哪有這麼簡單。
直接一點的說,我們寫的不是程式交易,頂多是交易程式而已。它會贏會輸,我們根本無法想像,只是一廂情願的認定它是會獲利的,當事情發展不如預期時,我們才發現這個交易程式少了靈魂,少了我們對策略的瞭解,少了如同上一篇所說的認同感。
有的人沒想通,會說程式交易無效,卻不知那是交易邏輯無效,或說是無法駕馭,和程式無關。有的人不甘心,會繼續更多嘗試和學習,才開始瞭解要學習的目標和範圍越來越廣,時間越來越不夠,和學資訊一樣,環境和制度一直在變,要學習的東西似乎是永遠少不了。
更可怕的是,我們學寫程式,可以說我們會了一種程式設計,我會寫JAVA,我寫好一個程式測試完就好了,可以預期什麼環境執行會有什麼結果,不管過了多久、什麼品牌的電腦執行或誰去使用這個程式都一樣。但策略可不是這樣,我學趨勢追隨的交易策略,寫好了一個趨勢追隨程式,卻無法保證使用它會帶來什麼結果,而且不同的時間點、不同的交易環境或不同的人去使用都會是不同的結果。不曉得有多少人認真去思考這個問題,交易,這是個行為,除了交易邏輯本身,還深受交易環境、商品制度和市場反應所影響。
這裡寫這麼多,主要是要提醒自己和朋友,交易學習沒辦法和資訊學習一樣那麼容易複製,我們需要先去更廣的學習各種交易策略,認識各種市場商品。就像是我們雖然沒可能同時會用C和C++,又寫php + MySQL、精通.NET、取得JAVA認證,然後還會作多媒體3D,空閒時間再開發Android app,(好吧,或許你是這種天才,但天才很少吧),但我們能夠從這些領域中找到幾個我們最有興趣的,大約看一下,或許學習速度也很快。這是廣度,期權交易市場一樣,有指數、外匯、商品、利率,細分下去有一大堆,我們不需要精通每樣,但多認識一種,或許就發現我們很適合的市場。千萬不要把自己限制在台指期,那只是VB而已,當然VB寫的好也是很強,但只靠VB吃飯,是不是不太穩阿?
經過廣度的認識之後,再對交易策略的使用有深入的瞭解,同時對交易環境也一併考量,舉例來說,以前有個朋友編寫stored procedure時很愛用cursor,簡單的應用是OK,但如果會拖慢系統效能就不該用阿,難道不能把select寫好嗎? 或是他只會寫cursor而已? 同樣地,不是只有區間突破這招阿,市場並不總是適合區間突破,應該要多學其他方法,想辦法寫出更順暢的select阿。
再來,完全掌握行情與損益對應的變化是如何產生,要如何處理。就像一個選擇權高手,幾十檔履約價,每檔履約價幾百上千的口數,買方賣方交錯,但不管行情怎麼走會有什麼情況和多少損益,他都能應對自如,像是本能反應一樣,那才是交易員阿。
把那當成我們的目標,訂作我們自己的投資組合,對每個策略在每個市場都能完全掌握,那是我們的優勢,我們會寫程式,比一般人更能夠用程式來描繪我們心中的交易邏輯再實作出來,只是在這之前,扎實的認識策略和市場必不可少,L也是在繼續學習之中,一起努力。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言