Download MetaTrader 5

Help! is this a bug in OnTester function?

To add comments, please log in or register
How to choose the most appropriate signal and subscribe to it in no time
luxorlo
97
luxorlo 2014.03.31 16:52 

Hi,

I am using OnTester function to create my own optimization criteria from some parameters. To start I decided to use Balance + PF, but the result is quite weird:

Example:

Pass = 24

Profit = 72.80, PF = 1.48

Param = Profit * PF = 72.80 * 1.48 = 107.744

ONTESTER = 107.83


I can't understand why they are differents... maybe I am becoming crazy! Anybody who can give me some light here? I have attached an screenshot where you can see what I am talking about!


Thanks in advance!

Files:
qjol
3243
qjol 2014.04.01 22:55  
what exactly is the screenshot shows?
dont see anything
Carl Schreiber
6610
Carl Schreiber 2014.04.02 08:05  

Just multiply Profit and its Profitfactor, after the decimal point the result differs.

I realized the same! But the error or the difference does not effect the order of the Tester-results - so far.

On the other hand the result is shown with 8 decimals in its column of the opti-results but as of the first decimal it seems to be wrong :(

And what happens if all the results are in between +1.0 and -1.0??

luxorlo, can you create an example where all the results are less than 1.0 ( e.g. devide by a constant bigger that max) and show the results

and compare the order the the original order of the tester-results.

luxorlo
97
luxorlo 2014.04.02 12:10  
gooly:

Just multiply Profit and its Profitfactor, after the decimal point the result differs.

I realized the same! But the error or the difference does not effect the order of the Tester-results - so far.

On the other hand the result is shown with 8 decimals in its column of the opti-results but as of the first decimal it seems to be wrong :(

And what happens if all the results are in between +1.0 and -1.0??

luxorlo, can you create an example where all the results are less than 1.0 ( e.g. devide by a constant bigger that max) and show the results

and compare the order the the original order of the tester-results.




Hi guys,

Thanks for your reply. I have tried with several test and the results are always differents, so not sure what happened here (maybe the differences could be because of the rounded values?). I believe this is a bug (I sent an email to metaquotes team... let´s see if they answer me).


are anyone using OnTester() function in MT4 or MT5?


Regards!

Alain Verleyen
Moderator
30755
Alain Verleyen 2014.04.02 12:44  
luxorlo:



Hi guys,

Thanks for your reply. I have tried with several test and the results are always differents, so not sure what happened here (maybe the differences could be because of the rounded values?). I believe this is a bug (I sent an email to metaquotes team... let´s see if they answer me).


are anyone using OnTester() function in MT4 or MT5?


Regards!


Can you show the relevant code ?
Carl Schreiber
6610
Carl Schreiber 2014.04.02 16:40  
angevoyageur:
Can you show the relevant code ?

Well I am using this (as the Tester Stats were not yet implemented)

double  maxBalance,iniBalance, maxDD;
// OnInit
..
maxBalance = AccountBalance();
iniBalance = AccountBalance();
maxDD      = 0.0;
..

void MyTester(){ //called after every trade closed
        maxBalance = MathMax(maxBalance,AccountBalance());
        maxDD = MathMax(maxDD,maxBalance - AccountBalance());
}

double OnTester()  {
//---   
   MyTester();
   double prf = maxBalance - iniBalance;
   if ( maxDD > 0.01 )     return(prf/maxDD);
   // else - no DD GREATE!! ;)
   if (prf > 0.0)
      return(1000.0);
   else
      return(-1000.0);
}

And I realize small differences of OnTester to the result when I divide Profit / Drawdown $ from the Optimization Results myself.

To add comments, please log in or register