Passing 'Complex Criterion max' instead of 'Custom max' result to file via frames

 

Hi, 


I am writing results and other data from Ontester to file like this (made up example see below). This all works fine.
But If I use the "Complex Criterion max" as optimization criterion, then I am not able to pass this to/call this from OnTesterDeinit.


Is there a way to do that? Thanks for any advice.


Best, J

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double OnTester()
  {
   string ret=DoubleToString(TesterStatistics(STAT_PROFIT_FACTOR));
   short Rret[];

   StringToShortArray(ret,Rret);
   string fram_name = "backtest" ;
   double frame_val = 0;

   if(MQLInfoInteger(MQL_FORWARD) == 1)
     {
      fram_name = "forward";
      frame_val = 1;
     }// MQL_FORWARD

   if(!FrameAdd(fram_name,1,frame_val,Rret))
     {
      printf("FrameAdd failed with error %i",GetLastError());
     }
   return(ret);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int m_filehandle;

void OnTesterDeinit()
  {
      FrameFirst();
      ulong pass;
      string name;
      long id;
      double value;
      ushort data[];

      if(!FrameNext(pass,name,id,value,data))
        {
         printf("error #%i with FrameNext",GetLastError());
        }
      string receivedData=ShortArrayToString(data);
      string datalog = IntegerToString(value)+"-";
      StringAdd(datalog,receivedData);
  
      m_filehandle=FileOpen("example.csv",FILE_READ|FILE_WRITE|FILE_CSV|FILE_COMMON);
      if(m_filehandle==INVALID_HANDLE)
        {
         printf("Error %i creating tester file",GetLastError());
        }
      else
        {
         FileSeek(m_filehandle,0,SEEK_END);
         FileWrite(m_filehandle,datalog);
        }
      while(FrameNext(pass,name,id,value,data))
        {
         receivedData=ShortArrayToString(data);
         datalog = IntegerToString(value)+"-";
         StringAdd(datalog, receivedData);
         FileSeek(m_filehandle,0,SEEK_END);
         FileWrite(m_filehandle,datalog);
        }
      FileClose(m_filehandle);
      //OnTesterDeinit()
 }    
//+------------------------------------------------------------------+