MetaTrader 4 Build 574 with Updated MQL4 Language and Market of Applications Released - page 15

 
gchrmt4:


But there's clearly no care for backward-compatibility: if you do care, you don't get to a week before release with fundamental things like changing EA properties not working properly.

Of course not, it's just lip service . . . what is cared about is forward compatibility and an end goal of MT5 and MT4 RIP.
 
RaptorUK:
Of course not, it's just lip service . . . what is cared about is forward compatibility and an end goal of MT5 and MT4 RIP.


There is one fact that is not in line with this statement - in the MQL+ hybrid there are a lot of MQL5 functions that are not implemented yet, while the "compatibility" MQL4 functions are. That is weird.
 
RaptorUK:

the MQ CEO said this . . .

Well, that was clearly nonsense. The format was documented in the past because:

  • MQ chose to hand out the source code for period_converter as well as just the .ex4
  • There are posts on this forum from MQ staff pointing people to the source code of period_converter as documentation of the HST format
  • FileOpenHistory() is pointless unless you are meant to be able to read and write history files

And, going forwards, it's re-documented in exactly the same way.

It's all part of the strange MQ reality-distortion field.

 
Ovo:

There is one fact that is not in line with this statement - in the MQL+ hybrid there are a lot of MQL5 functions that are not implemented yet, while the "compatibility" MQL4 functions are. That is weird.
It is of course my own opinion . . . the compatibility functions have to be left in place otherwise MT4 might as well be killed outright. The trading system is very different from MT5
 
RaptorUK:
It is of course my own opinion . . . the compatibility functions have to be left in place otherwise MT4 might as well be killed outright. The trading system is very different from MT5

And because the MQL5 framework is too weird to port across?

There's a language with objects, inheritance etc... but you get things like position properties using PositionGetInteger() and PositionGetString() rather than querying properties of a Position object such as Position.sl or Position.symbol. One of the strangest things I've seen in trading platforms.

 
gchrmt4:

And because the MQL5 framework is too weird to port across?

I think it would be too much in one go . . . at least with what we have there can be the claim that mql4 is still alive and kicking . . . most of my code will work without mods and even with a recompile I won't have too many changes to make. Changing the trading to the same as mql5 would be a radical departure and would alienate many, many users . . . including me.
 
gchrmt4:
Ticket #937128. I also very strongly suggest that #933683 and #927090 are fixed. It is now a long time since I have had any response from the Service Desk to any of my open tickets.

All tickets in work.

 
alexvd:

All tickets in work.

Does this mean that you are making the changes suggested in #933683 and #927090?

If so, thank you very much. That will greatly reduce the support queries to brokers and to yourselves.

 

There's come a new one ...

Here's come ... panic.


 

Here is an issue: In the new mql4, GetTickCount() is a uint function in the old mql4 it is an int function.

This causes an issue with int val = GetTickCount(). The result is a negative value that wont work in MathAbs(), for example int val = MathAbs(GetTickCount()) gets the same negative value.

uint is better because it was a nuisance when GetTickCount() wrapped around to negative vals in the old mql4, but it should be documented as a backwards compatability issue.

void OnStart()
  { 
   int intval = GetTickCount();
   uint uintval = GetTickCount();
//---
   Alert("intval = ",intval);
   Alert("uintval = ",uintval);
  }

output:

  • intval = -639086502
  • uintval = 3655880794
void OnStart()
  { 
   int intval = MathAbs(GetTickCount());
//---
   Alert("intval = ",intval);
  }

output: intval = -638526474

Reason: