How to create customized report after optimization

 

I would like to "just" add + 3 columns of user criteria, as I would like to come out with 3 different formulas straight from 1 optimization instead of running the optimization again to come out with another user criteria value.

I made the 4 user discretion options in OnTester. But my question now is how do I add this to the optimization report?

Auto-translation applied by moderator

 
On the English forum, please write in English. Either use the automatic translation tool, or post in one of the other language forums
 
Your topic has been moved to the section: Expert Advisors and Automated Trading
Please consider which section is most appropriate — https://www.mql5.com/en/forum/172166/page6#comment_49114893
 
erick_fernando_95: I would like to "just" add + 3 columns of user criteria, as I would like to come out with 3 different formulas straight from 1 optimization instead of running the optimization again to come out with another user criteria value. I made the 4 user discretion options in OnTester. But my question now is how do I add this to the optimization report?

The built-in report does not off much customisation.

You will have to build your own reporting, either from within your EA's code, or by exporting the resulting data and processing it externally to produce the report you want.

 
Fernando Carreiro #:

The built-in report does not off much customisation.

You will have to build your own reporting, either from within your EA's code, or by exporting the resulting data and processing it externally to produce the report you want.

Thanks Fernando. Dit that, it's working fine, but with more then 13K optimizations it ignore some passes and simply stops writting. I did a code test to see if it's a bug inside my code but I'm still having the same problem even on a simple test. Do you mind check what I'm doing wrong? 


//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+   
input int test=1;

// Global v
double stat_values[1];
int OptimizationFileHandle;
ulong pass;

//+------------------------------------------------------------------+
//| Test CSV                                                         |
//+------------------------------------------------------------------+   
int OnInit()
   {
   return INIT_SUCCEEDED;
   }
  
void OnDeinit(const int reason)
   {
   }

void OnTick()
   {
   }  

double OnTester()
   {
   
   bool ie = FrameAdd("",1,3,stat_values);

   return ie;
   }
   
void OnTesterPass()
   {
   static int passes_count=0;              
   string     name            ="";          
   long       id              =0;           
   double     value           =0;         
   
   passes_count++;
   
   // Read frame
   FrameNext(pass,name,id,value,stat_values);

   // Handle
   if(passes_count==1){
      OptimizationFileHandle=FileOpen("teste.csv", FILE_CSV|FILE_ANSI|FILE_WRITE|FILE_COMMON,";"); 
      }
   
   Print("Passo: ",passes_count);
   
   // Write
   FileWrite(OptimizationFileHandle,pass); 
   }
   
void OnTesterDeinit()
   {
   FileClose(OptimizationFileHandle);
   }