數年前教導新人時該員心得,供大家分享交流
****
寫程式有四個架構,分別為Filter ,Condition,Signal,Entry
Filter是一個濾網,很多人filter與condition沒分清楚,但filter一開始先設好可以避免後面寫程式時無意義之小細節修改,一般都以均線或是某種方式計算之線(例如LinearRegslope)來區分多空界限,建議只用一條線,以避免2條線會有Crosses出訊之類的問題(那就會變成Condition了)
Condition是一個交易狀況前堤,不同於singal,它並非主要出訊條件,
Singal是交易會出訊之必要條件.
Entry是進場時決定要如何進入,例如要在next bar的close進場或是要在前六根k線之高奌突破時進場.
寫程式除了上述四個架構,TS之程式語言乃是以三大結構組成,如下
一、IF …..THEN….
二、While loop
三、For….next
loop
上述這三大結構,請自己多綀習寫,以熟綀邏輯
另可以去下列網站: 及http://www.programtrading.tw 及及DK異世界及PARKSON等網站去看看.跟程式交易相關的東西這裡很多哦. 也可以上網去找EASY Language的paper來看.
寫程式時,建議可以先不要設inputs,都先以vars來宣告參數,這樣程式要變更參數想看更新時的績效會很方便,不用每次一更新參數都要建立新策略或在omega手動再去更改哦!!可以等到要跑最佳化時,再將想要跑的參數更改設定為inputs即可.
切記.期貨程式交易只是用來賺穩定報酬的工具,不是用來賺暴利的工具.
多去學統計方面的知識,因為寫程式時,可以運用統計的結果將程式寫入以提高勝率,例如去統計歷年來,加權指數上漲及下跌的天數、平均點數、平均幅度、標準差等,可以發現漲時SD較小,跌時SD較大,也就是股市都是緩漲急跌的...或是也可統計通常開盤多高的漲幅當天就不會再大漲之類的機率....建議可看的書:統計,讓數字會說話
在看績效表時.除了看數字,別忘了還要看Drawdown/Run-up Graphs,例如在Maximum Favorable Excursion圖中,最好都要45度線分佈,如果沒有,可以用setpercenttrailing這個函數來改善.
程式交易也只是一個根據過往歷史資料來寫的一個程式,並不代表未來一定賺錢,但是,不會讓你情緒性下單及拗單,避免人用感覺下單及傳統圖形分析下單的弱點,歷史的回測可以知道自己的感覺及想法是不是對的.
還有一隻好的程式,它的trade次數不能太少─>不然會餓死.
當沖一年200次,波段100次,正負20%之間。
波段程式原則上drawdown不要超過12萬,當沖程式最好介於6-8萬。