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

 
gchrmt4:

I've seen the date, and its context is exactly the problem: all the MetaQuotes attention seems to have been on the new language features, and the Market, and not on backward-compatibility.

If you do a search on Google for "mt4 tick chart" you get about 200 000 hits. Almost all these things will break and need to be replaced by each and every individual user because of the changes to the .hst format and the RateInfo structure.

Similarly, the change to the location used by FileOpen() means that lots of tick loggers and spread monitors will break, plus lots of EAs and indicators which use FileOpen() to communicate with some sort of external process.

Yes, I agree . . . the MetaQuotes CEO promised backwards compatibility . . . even recently, but that is not going to happen. The change has been sold on a false promise . . .

Not sure why there will be an issue with FileOpen(), you can only write to experts/files/* currently, with MQL4+ it will be a different folder but still a prescribed one, so there is no change from the point of view of mql4
 
positiveday:

How to debug during Backetsting?

Debug in live mode only is less interesting than in backtest mode.



We had been living without debugger for a decade, so thanks god for something.
 
gchrmt4:

It's documented by a combination of the new PeriodConverter script and FileWriteStruct(). The format is:

No, it is not documented at all . . . the MQ CEO said this . . .

Renat:
HST format is not documented and only for our service.

 
RaptorUK:
[...] so there is no change from the point of view of mql4

... but there is a change from the point of view of an external process, if you are using FileOpen() to send data to that, or receive data from it. For example: you put tick or indicator data into a database by writing it using FileOpen() and then having an external process read it from there.

At the very least, such external processes need to be reconfigured. At worst, they need to be replaced. For example, imagine an external process which asks for the location of the MT4 instance which you want to link to, and then - trying to be helpful - automatically adds on "experts\files" to the directory you give it. That would need to be rewritten and replaced rather than just having some settings changed in its UI.

 
RaptorUK:

No, it is not documented at all . . . the MQ CEO said this . . .

This is why the MT4 is sooo mysterious...
 
gchrmt4:

... but there is a change from the point of view of an external process, if you are using FileOpen() to send data to that, or receive data from it. For example: you put tick or indicator data into a database by writing it using FileOpen() and then having an external process read it from there.

At the very least, such external processes need to be reconfigured. At worst, they need to be replaced. For example, imagine an external process which asks for the location of the MT4 instance which you want to link to, and then - trying to be helpful - automatically adds on "experts\files" to the directory you give it. That would need to be rewritten and replaced rather than just having some settings changed in its UI.



...the question which the service desk has still not responded to is this: old EAs continue to use Ansi strings in DLL calls. Why should they not continue to use experts\files in FileOpen()? What good reason is there for not doing this?

Same sort of issue with the change to the RateInfo structure. Why not use the old RateInfo structure in DLL calls from old EAs?

 
gchrmt4:



... the question which the service desk has still not responded to is this: old EAs continue to use Ansi strings in DLL calls. Why should they not continue to use experts\files in FileOpen()? What good reason is there for not doing this?

Same sort of issue with the change to the RateInfo structure. Why not use the old RateInfo structure in DLL calls from old EAs?


Well, to be fair, this feature has been in beta for two months, and no one complained utill this week. I am afraid it's too late.
 
Ovo:
This is why the MT4 is sooo mysterious...
it's good to keep smiling
 
gchrmt4:

... but there is a change from the point of view of an external process, if you are using FileOpen() to send data to that, or receive data from it. For example: you put tick or indicator data into a database by writing it using FileOpen() and then having an external process read it from there.

At the very least, such external processes need to be reconfigured. At worst, they need to be replaced. For example, imagine an external process which asks for the location of the MT4 instance which you want to link to, and then - trying to be helpful - automatically adds on "experts\files" to the directory you give it. That would need to be rewritten and replaced rather than just having some settings changed in its UI.

OK, but that doesn't break the mql4 code it breaks the external process, I would agree on that but that is outside the scope of MetaQuotes and mql4/mql4+
 
Ovo:

Well, to be fair, this feature has been in beta for two months, and no one complained utill this week. I am afraid it's too late.

I complained to the service desk weeks ago.

I'll give you another example. I'll bet that there are tons of things which check the MT4 connection status by having an EA write an I'm-alive message to experts\files, and then having an external process check that file. On release of build 574, all such things will start firing off erroneous alerts.

There's simply no good reason not to keep the experts\files location for old EAs, like keeping Ansi strings in DLL calls, if you care about backward-compatibility.

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.

Reason: