程式交易者最大的問題點不是在於你花了多少時間去思考並且找到一隻會賺錢的策略然後把它程式化!

首先,
"程式"這個東西最大的盲點跟問題在於你要如何確保你的程式上線之後真的可以像歷史回測一樣進行準確的交易? 

如果,程式上線之後的每一筆的交易時間價格都跟歷史回測不同的話,那就表示你的程式一定出了什麼樣的問題,可是非常少的人會知道如何去檢查這其中的問題點在哪裡並且加以解決?因為這種工作非常的耗時繁瑣!

在我過去12年多的程式交易生涯,一開始花最多時間的地方就是歷史資料的建立,如何準確進行歷史測試,接下來就是如何確保程式上線之後真的有按照歷史去進行!簡單來說一句話就是"如何讓你的程式上線之後的交易結果可以跟歷史回測0誤差"

大部分的人都會在程式拿到手上線之後就只專注在程式上線之後的表現,非常少人的人會拿去跟歷史回測進行交叉比對!

所以,很多人拿到程式之後只要發現能夠賺錢他就會繼續用,只要發現不能夠賺錢他就會認為程式沒有用,但是如果今天你都沒有辦法在程式上線之後透過交易結果來去得知程式是不是真的有聽話運作的話,那請問這一份績效報告又有什麼值得參考的價值?

當你越深入去了解程式交易你就會發現其實有很多時候你的程式都是不聽話的,他根本沒有辦法按照你所想的去運作也沒有辦法按照你所想的方式去進行交易!

這個時候,你就必須要有能力在程式上debug,我這裡所說的debug並不一定是代表程式碼的debug,有的時候是"人為"的問題,那.....你如何去發現你的程式到底發生了什麼問題?

為什麼程式上線之後一定要去比對每一段時間的績效看看是否跟歷史回測相同?又如果說有誤差的話,這個誤差是否在容許範圍內?
就如同前面所提到的如果你都沒有辦法確保你的程式是”正常”運作的話,那請問你手上拿到的這一份績效報表要怎麼去相信?
所以,進入程式交易的第一步就是你要先學會如何讓你的歷史回測報告有參考的價值!

今天就算你開發出來的交易策略是賠錢的,那你也要讓你的真實交易跟你的歷史回測賠的一模一樣

這樣子我們才可以認定我們的程式有"乖乖聽話"

程式交易的先期作業
  • 確保準確的歷史回測
  • 找出正期望值的交易策略
程式交易的中期作業
  • 進行模擬交易
  • 確認相同期間的模擬交易明細等同於或接近相同期間的歷史回測
程式交易的後期作業
  • 進行真實交易
  • 每隔一段時間檢視策略表現風險情況
  • 在必要時調整投資組合