MQL5 Changes

 

Hi everyone.


I've been away for a couple of years. I had a Multi symbol EA that compiled and ran then but I have tried to run it now and it has generated 3 errors.



I'm guessing the data type specification has changed for the FrameInputs function or they have been tightened up. 


Where can I find a change log for the different versions of MQL5?


Many thanks


 
EdFuk:

Where can I find a change log for the different versions of MQL5?

For starters, change your int to a uint and recompile.

bool  FrameInputs(
   ulong    pass,                // The number of a pass in the optimization
   string&  parameters[],        // An array of strings of form "parameterN=valueN"
   uint&    parameters_count     // The total number of parameters
   );

(FrameInputs - Working with Optimization Results - MQL5 Reference).


Based on your other error, change your short to a ushort and recompile.

Edit: I found some GetClassNameW code.

void GetWindowData(HANDLE w, string &clazz, string &title)
{
   static ushort receiver[MAX_PATH];
   if(GetWindowTextW(w, receiver, MAX_PATH))
   {
      title = ShortArrayToString(receiver);
   }
   if(GetClassNameW(w, receiver, MAX_PATH))
   {
      clazz = ShortArrayToString(receiver);
   }
}

(DLL connection specifics - Advanced language tools - MQL5 Programming for Traders).

Unfortunately, I've encountered deprecated code in the official documentation before. I can't help you with that. Sorry.

 
Ryan L Johnson #:

For starters, change your int to a uint and recompile.

(FrameInputs - Working with Optimization Results - MQL5 Reference).


Based on your other error, change your short to a ushort and recompile.

Edit: I found some GetClassNameW code.

(DLL connection specifics - Advanced language tools - MQL5 Programming for Traders).

Unfortunately, I've encountered deprecated code in the official documentation before. I can't help you with that. Sorry.

Thanks for the reply. Yes I've made the changes. It'd be nice if there was a change log somewhere.


Anyway I now have a divide by zero error when running on history data. Never encountered that before.