EasyTrader ArtNo 086
隨著不斷練習開發策略的過程愈長,在不同時期內對同樣的策略也會有不同的想法,前一陣子讀了 Larry Williams 短線交易策略後,看到書中對於每日商品的價格所作的觀察與數據收集,確實了解這些研究是有其一定的意義存在!過去在 Wen 大的部落格看到一篇程式失效前的潛在獲利,它是一個以當日(最高價-最低價) 大於開盤價的某個比例當作下一根K棒的買賣信號點位,也可以解讀為 K棒型態學的進出場方式,可惜的是在 2012/04 以後的表現,光芒不再!
原始程式碼 2001/1~ 2013/10/31 台指期 日K 交易成本 1200 結果如下圖
原始程式加上如意多空網不改參數的結果,交易次數降低約一半, MDD也下降約 30%
有許多讀者詢問有關如意多空網在不同週期的應用狀況,我就以這個當作應用範例作不同週期的測試,為了方便比較,我對原始程式作了一些修改
測試程式碼
inputs:Ratio(0.0115),TradeProfit(0.05),TradeStopLoss(0.03),NBarL(2),NBarS(2),TimeFrame(0),Type(1) ;
Vars:IsBalanceDay(False),MP(0),PF(0),PL(0),BuyPoint(99999),BuyExit(0),SellPoint(0),SellExit(0),TimeValue(0);
MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;
PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;
if DataComPression <= 1 then Begin
{ 分K週期內取用日K}
if TimeFrame = 0 then Begin
if HighD(0) - lowD(0)>= Ratio * OpenD(0) and CloseD(0) - OpenD(0) < 0 then begin
BuyPoint = HighD(0) ;
BuyExit = LowD(0) ;
end;
if HighD(0) - lowD(0) >= Ratio * OpenD(0) and CloseD(0) - OpenD(0) > 0 then begin
SellPoint = LOWD(0);
SellExit = HighD(0) ;
end;
end;
end else Begin
if High - low>= Ratio * Open and Close - Open < 0 then begin
BuyPoint = High ;
BuyExit = Low ;
end;
if High - low >= Ratio * Open and Close - Open > 0 then begin
SellPoint = LOW;
SellExit = High ;
end;
end;
if _MagicQF001(1) > 0 and MP <= 0 then begin
buy next bar at BuyPoint+1 stop ;
exitshort next bar at SellExit stop;
end;
if _MagicQF001(1) < 0 and MP >= 0 then begin
sell next bar at SellPoint-1 stop ;
exitlong next bar at BuyExit stop;
end;
{SetProfitTarget(PF * BigPointValue) ;}
SetStopLoss(PL * BigPointValue) ;
if Type = 1 then setProfitTarget(PF * BigPointValue) ;
if Type = 2 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;
if Type = 3 then Begin
SetProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;
if IsBalanceDay then setExitonClose ;
紅字 _MagicQF001(1) 為如意多空網
藍字部份為原始程式主邏輯,其他部份為測試加上去的(進場/出場規則組合 TimeFrame/Type)
TimeFrame 0 為日K ,1為 60分K ,2為 30分K , 3為 15分K
0/0 : 日K + Type 0 (只有停損)
0/1 : 日K + Type1 (停利 + 停損)
0/2 : 日K + Type2 (停損 + N根 Bar 出場 )
如意多空網在不同週期的應用上,也都有相當不錯的表現!!
sell next bar at SellPoint-1 stop ;
exitlong next bar at BuyExit stop;
end;
{SetProfitTarget(PF * BigPointValue) ;}
SetStopLoss(PL * BigPointValue) ;
if Type = 1 then setProfitTarget(PF * BigPointValue) ;
if Type = 2 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;
if Type = 3 then Begin
SetProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;
if IsBalanceDay then setExitonClose ;
紅字 _MagicQF001(1) 為如意多空網
藍字部份為原始程式主邏輯,其他部份為測試加上去的(進場/出場規則組合 TimeFrame/Type)
TimeFrame 0 為日K ,1為 60分K ,2為 30分K , 3為 15分K
0/0 : 日K + Type 0 (只有停損)
0/1 : 日K + Type1 (停利 + 停損)
0/2 : 日K + Type2 (停損 + N根 Bar 出場 )
如意多空網在不同週期的應用上,也都有相當不錯的表現!!
MagicQS031
EasyTrader您好,還想請問您這篇文章中的進場規則3大概是如何修改原始進場條件的?是加上什麼特殊綠網嗎? 感謝您。
回覆刪除加上如意多空網 ,以及參照不同週期資料產生的
回覆刪除