有客戶問說,學習程式交易的語法會不會很難啊,常常剛開始充滿信心投入,遇到了瓶頸卻很快失去了熱情,因為寫不出好的策略
其實現在資訊很發達,網路上有許多高手大方分享,也有達人出書詳細介紹,讓我們對powerlanduage不再陌生
這邊分享一個簡單的範例給入門的新手參考,這是一個當沖程式碼
If time>=0945 and time<=1300 then begin 控制進場時間
buy next bar at highest(close,N)+3 stop; 在突破N根K棒收盤價+3點 買進多單,N可以設定為可最佳化參數
sellshort next bar at lowest(close,N)-3 stop; 在跌破N根K棒收盤價-3點 買進空單
end;
setstoploss(35* bigpointvalue); 停損設35點可自行修改 (setstoploss必須填寫金額)
If time>=1335 and marketposition<>0 then begin 時間大於13:35就平倉
sell next bar at market;
buytocover next bar at market;
end;
setexitonclose; 加上這個語法可以避免回測遇到結算日沒有平倉訊號產生
編譯完成之後先檢查圖表,交易邏輯是不是完整正確的呈現在multicharts圖表上面
來看看回測報表的績效如何
回測時間20071/1~2013/08/1(假設寫好策略的時間在一年之前) ,週期用11分K(為了避開和一般人常常使用的週期一樣)
選擇最佳化參數 (有些人建議策略不要最佳化,個人認為~有必要最佳化,但是不要過度最佳化,參數選擇需要一些技巧)
看起來績效還不錯(有加上手續費和滑價)
每月獲利和虧損
看起來似乎簡單的突破策略就可以駕馭台股了,每年都賺錢~哈
把回測時間打開到~2014/08/01 ,用意是假設策略寫完之後已經放了一段時間,這段時間的化學反應是否可以應付盤勢的變化
發現該策略之後就沒有獲利,而且還跌破了MDD~嗚...
也許是波動率下降,導致很多當沖策略績效不好,但是至少可以看出來策略的可行性,還有是否過度最佳化的情形
小心得
策略開發並不難,簡單的觀念也許就可以獲利,最重要的是交易的熱情
寫好策略之後不要馬上就上線,先觀察一段時間
策略沒有絕對的好壞,每個人的風險承受度不同,資金的管理比程式的績效更重要
正在使用的策略跌破MDD 應該要如何處理
(策略範例僅供參考,如果有更好的想法也請和我分享哦~~)
留言列表