I have a back test that does a good job. however when i rightlick on results and select show arrows fo ractual trdes, i get arrows for trades that were not traded at all.
i have attached a screen shot
http://xs72.xs.to/pics/06115/issueamibroker.jpg
Pl let me know what did i do wrong.
my script is
SetCustomBacktestProc
("");if
(Status("action")==actionPortfolio){bo=
GetBacktesterObject();bo.backtest();
st=bo.GetPerformanceStats(
0);// Expectancy calculation (the easy way)
// %Win * AvgProfit - %Los * AvgLos // note that because AvgLos is already negative // in AmiBroker so we are adding values instead of subtracting them // we could also use simpler formula NetProfit/NumberOfTrades // but for the purpose of illustration we are using more complex one :-)expectancy = st.GetValue(
"WinnersAvgProfit")*st.GetValue("WinnersPercent")/100 +st.GetValue(
"LosersAvgLoss")*st.GetValue("LosersPercent")/100; // Here we add custom metric to backtest reportbo.AddCustomMetric(
"Expectancy ($)", expectancy );}
//Buy 90 day breakouts
// Suersh
NumColumns =
5;Period =
14;// Determines trend direction using DMI indicators
PDIFilter=
IIf(PDI(14)>MDI(14),1,0);// make sure that the slope is going up and greater than 20
// New 3 month high has occurred in the last 5 days?
NewHighs =
IIf(HHV(H,5) >= HHV(H,60), 1,0);//NewLows = LLV(L,5) <= LLV(L,40);
// Are moving averages lined up correctly? Close > 50 and 200 ma
BullishMAs =
IIf(Close >= MA(C,200) AND Close >= MA(C,50), 1,0);//BearishMAs = IIf(MA(C,10) <= EMA(C,20) AND EMA(C,20) <= EMA(C,30), 1, 0);
/*
Column0 = ADX(period);
Column0Name = "ADX";
Column1 = IIf(PDIFilter AND NewHighs AND BullishMAs, 1, 0);
Column1Name = "Buy Signal";
Column2 = IIf(Column1 == 1, H + .125, 0);
Column2Name = "Buy Stop";
Column3 = IIf(MDIFilter AND NewLows AND BearishMAs, 1, 0);
Column3Name = "Sell Signal";
Column4 = IIf(Column3 == 1, L - .125, 0);
Column4Name = "Sell Stop";
*/
// Filter based on ADX > 20 (trending) and if buy or sell has triggered
ADXval=
IIf(ADX(14)>20,True,False);//AND PDIfilter AND bullishMas AND (Close<5) AND (MA(V,30)>200000) AND NewHighs) ;// (Column1 OR Column3);
_TRACE
("outsidee buyubg");//buynotdone=IIf(Buy=0,1,0);
//if (buynotdone AND NewHighs AND PDIFilter AND BullishMAs ){
_TRACE
("insude buyubg");//Buy= NewHighs AND PDIFilter AND BullishMAs ;
Buy=
HHV(H,5) >= HHV(H,60) AND Close >= MA(C,200) AND Close >= MA(C,50) AND ADX(14)>20 AND MA(V,30)>200000 ;Sell = Close<
Ref(Low,-1) AND Close<Ref(EMA(Close,9),-1) AND Buy;SetTradeDelays
( 10,0, 10, 10 ) ;
//}
//Buy = Low <EMA(Close,9) * 105/100 AND Filter; // ADX(period) >=20 AND Column1;
//IIf(Buy=1,Sell = Close<Ref(Low,-1),False);
Buy =
ExRem( Buy, Sell );Sell =
ExRem( Sell, Buy );
AddColumn
(Buy,"Buy");//AddColumn(Sell,"sell");
AddColumn
(BuyPrice,"BuyPrice");AddColumn
(SellPrice,"SellPrice");AddColumn
(HHV(H,5) ,"HHV(H,5) ");AddColumn
(HHV(H,60),"HHVBars ");
SetCustomBacktestProc
("");if
(Status("action")==actionPortfolio){bo=
GetBacktesterObject();bo.backtest();
st=bo.GetPerformanceStats(
0);// Expectancy calculation (the easy way)
// %Win * AvgProfit - %Los * AvgLos // note that because AvgLos is already negative // in AmiBroker so we are adding values instead of subtracting them // we could also use simpler formula NetProfit/NumberOfTrades // but for the purpose of illustration we are using more complex one :-)expectancy = st.GetValue(
"WinnersAvgProfit")*st.GetValue("WinnersPercent")/100 +st.GetValue(
"LosersAvgLoss")*st.GetValue("LosersPercent")/100; // Here we add custom metric to backtest reportbo.AddCustomMetric(
"Expectancy ($)", expectancy );}
//Buy 90 day breakouts
// Suersh
NumColumns =
5;Period =
14;// Determines trend direction using DMI indicators
PDIFilter=
IIf(PDI(14)>MDI(14),1,0);// make sure that the slope is going up and greater than 20
// New 3 month high has occurred in the last 5 days?
NewHighs =
IIf(HHV(H,5) >= HHV(H,60), 1,0);//NewLows = LLV(L,5) <= LLV(L,40);
// Are moving averages lined up correctly? Close > 50 and 200 ma
BullishMAs =
IIf(Close >= MA(C,200) AND Close >= MA(C,50), 1,0);//BearishMAs = IIf(MA(C,10) <= EMA(C,20) AND EMA(C,20) <= EMA(C,30), 1, 0);
/*
Column0 = ADX(period);
Column0Name = "ADX";
Column1 = IIf(PDIFilter AND NewHighs AND BullishMAs, 1, 0);
Column1Name = "Buy Signal";
Column2 = IIf(Column1 == 1, H + .125, 0);
Column2Name = "Buy Stop";
Column3 = IIf(MDIFilter AND NewLows AND BearishMAs, 1, 0);
Column3Name = "Sell Signal";
Column4 = IIf(Column3 == 1, L - .125, 0);
Column4Name = "Sell Stop";
*/
// Filter based on ADX > 20 (trending) and if buy or sell has triggered
ADXval=
IIf(ADX(14)>20,True,False);//AND PDIfilter AND bullishMas AND (Close<5) AND (MA(V,30)>200000) AND NewHighs) ;// (Column1 OR Column3);
_TRACE
("outsidee buyubg");//buynotdone=IIf(Buy=0,1,0);
//if (buynotdone AND NewHighs AND PDIFilter AND BullishMAs ){
_TRACE
("insude buyubg");//Buy= NewHighs AND PDIFilter AND BullishMAs ;
Buy=
HHV(H,5) >= HHV(H,60) AND Close >= MA(C,200) AND Close >= MA(C,50) AND ADX(14)>20 AND MA(V,30)>200000 ;Sell = Close<
Ref(Low,-1) AND Close<Ref(EMA(Close,9),-1) AND Buy;SetTradeDelays
( 10,0, 10, 10 ) ;
//}
//Buy = Low <EMA(Close,9) * 105/100 AND Filter; // ADX(period) >=20 AND Column1;
//IIf(Buy=1,Sell = Close<Ref(Low,-1),False);
Buy =
ExRem( Buy, Sell );Sell =
ExRem( Sell, Buy );
AddColumn
(Buy,"Buy");//AddColumn(Sell,"sell");
AddColumn
(BuyPrice,"BuyPrice");AddColumn
(SellPrice,"SellPrice");AddColumn
(HHV(H,5) ,"HHV(H,5) ");AddColumn
(HHV(H,60),"HHVBars ");Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Investment management software | Real estate investment software | Investment property software |
Software support | Real estate investment analysis software | Investment software |
YAHOO! GROUPS LINKS
- Visit your group "amibroker" on the web.
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.