有幾位網友同時問了我下面這個問題
每次文章內都有選股回測,然後又有交易回測,這是怎麼做的? 是把選股的邏輯寫到交易模組嗎?
才驚覺原來有一堆人都不知道選股模組選出來的股票,可以導入到交易模組的某個策略要監控的股票池內,當作今天要交易的觀察對象,可以是一開盤就買進,也可以增加一些條件如今天出現黃金交叉就進場,這樣就多了很多彈性,且不用在交易策略內在重新寫一次選股的邏輯,省了超多的時間
將選股結果用在交易模組上,有兩種設定,一個主要用在回測,一個主要用在自動交易上,請注意設定上的差異,這邊主要介紹回測的部分
要怎麼用,真的很簡單,下面舉個例
1. 建立選股策略
請在選股中心內建立一個選股策略,請注意,不能只是在XScript內建立的策略,一定要將選股策略放到選股中心,這樣在交易策略內才能找到
2. 交易策略回測
交易策略內選回測時,商品那選擇”選股”,點設定,就可以選擇要用哪個選股策略選出的股票,當執行回測時,每天的股票就會根據選股條件,變換不同股票
3. 自動交易
在自動交易也是一樣,選擇策略後,執行商品那,選指定選股法,然後找到該選股策略就行了,不過在交易內要能每天自動從選股模組內執行選股,會需要有付費的選股模組就是了
如果想要省點錢,也可以每天把選股策略選出的股票存成自選股,而執行商品那就會變成指定組合,但每個選股策略就需要個自選組合,且需要每天清空,回測選股,放進新的股票,策略不多,可能還可以這樣做,不過我懶,真的沒辦法~~
交易程式碼範例
我的文章中,如果交易策略的商品是從選股來的,最常用的就是開盤進場,頂多限制個價格(現在多在選股內就限制了),然後固定%停損利,光這樣的方式,幾乎每個策略都能測出不錯的績效,或許之後會多些出場條件,不過現階段,我覺得簡單就好,懶的搞太複雜,程式碼也很簡單,如下
input:maxprice(100,"股價不可超過"), profitex(10,"獲利多少出場%"),lostex(10,"虧損多少出場"); var:intraBarPersist dayentry(0); //控制當天出場後,不會當天又再進場 if date<>date[1] and currenttime=090000 then dayentry=0; if date<>date[1] and position=0 and dayentry=0 and close<=maxprice then setposition(1); //if date<>date[1] and position=0 and dayentry=0 and getfield("close","D")[1]<=maxprice then setposition(1); if position>0 and filled>0 and (close>=filledAvgPrice*(1+profitex*0.01) or close<=filledAvgPrice*(1-lostex*0.01)) then begin dayentry=1; setposition(0); end;
回測注意
交易策略的商品來源是選股的時候,有個非常不方便的地方就是在回測優化階段,常常會不知道交易的回測結果是要對應到哪個選股參數,因為交易回測結果不會顯示選股那邊所用的參數,這是讀者在回測時需要注意的,最好選股回測後,馬上做交易回測,然後儲存採用相同編號,但一個叫選股,一個叫交易,不然到最後真的是一團亂
以上就是如何把選股結果用在交易策略的回測上的說明,很好用,一定要學會
自動交易
如果要把選股的商品用到自動交易,請參考XQ寫的這篇,簡單講,就是
1.把選股策略加入排程,每天自動更新
2.在自動交易的商品”組合”,然後選”自動選股清單”,找到你的選股策略名稱
發佈留言
很抱歉,必須登入網站才能發佈留言。