這次的程式碼範例裡面有一些我認為還滿有價值的,我打算學回去,然後運用在外期上面測看看,感謝EasyTrader的新作。(Wen)
---------------
EasyTrader ArtNo 066基本設定為 台指期留倉策略 回測日期 2001/1 ~2013/10/31 來回成本 1200
雖然不是很好,但不代表不行,尤其 30分K在前面的450次交易的績效看起來是不錯的!接下來我們就開始一起測試開發新策略之旅
首先,將結算日平倉加到策略裡 ,並加上可能要用到的參數,略作修改後
測試程式碼:
inputs:BaseLen(10),RefLen(60),TradeProfit(0.05),TradeStopLoss(0.03),HighBand(200),LowBand(200),UpBand(0),DnBand(0);
Vars:HighOsc(0),LowOsc(0),CloseAvg(0),BuySetup(false),SellSetup(false),MP(0),IsBalanceDay(False);
Vars:PFpoint(0),LossPoint(0),HL(0) ;
PFPoint = AvgPrice*TradeProfit ;
LossPoint = AvgPrice*TradeStopLoss ;
MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;
HighOsc = High - Xaverage(High,BaseLen) ;
LowOsc = Low - Xaverage(Low,BaseLen) ;
CloseAvg = Xaverage(Close,RefLen) ;
BuySetup = CloseAvg > CloseAvg[1] and Close > CloseAvg and LowOsc < -DnBand ;
SellSetup = CloseAvg < CloseAvg[1] and Close < CloseAvg and HighOsc > UpBand ;
if BuySetup and LowOsc > LowOsc[1] then Buy ("HB") next bar at Market ;
if MP = 1 then begin
{Sell} ExitLong ("LTrailStop") next bar at Close-(LossPoint) stop ; {出場1}
if HighOsc Cross Under UpBand then {Sell} ExitLong ("LTiming") next bar at Market ;
end; {出場 2}
if SellSetup and HighOSc < HighOsc[1] then Sell ("LS") next bar at Market;
if MP = -1 then Begin
{Buy} ExitShort ("StrailStop") next bar at Close+(LossPoint) stop ; {出場1}
if LowOsc Cross Over -DnBand then {Buy} ExitShort ("STiming") next bar at Market ;
end; {出場 2}
if IsBalanceDay then SetExitonClose ;
以下為四種不同進出場方式在不同週期的表現
觀察現象:
1.國外的策略作台指期的測試需要作一些調整
2.日K的 PF值都還不錯(交易次數少了一些)
3.30分K果然在進出場方式調整後有不錯的表現(交易次數多了一點)
4.再次驗證勝率跟獲利不一定是成正比的,30分K策略是屬於吃大賠小
以下為四種不同進出場方式在不同週期的表現
觀察現象:
1.國外的策略作台指期的測試需要作一些調整
2.日K的 PF值都還不錯(交易次數少了一些)
3.30分K果然在進出場方式調整後有不錯的表現(交易次數多了一點)
4.再次驗證勝率跟獲利不一定是成正比的,30分K策略是屬於吃大賠小
0 留言:
張貼留言
如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!