MetaTrader 4 Build 600 with Updated MQL4 Language and Market of Applications Released - page 33

 
rod178:

build 600 is merely a mechanism to eventually force all to a (merged) MT5.

The currentt release is a total disaster as far as backwards compatibility is concerned. It is rather difficult to determine the reason why so many of my indicators are now broken unless one has a detailed knowledge of the MT5 language.


I am afraid that the other way round should be taken into consideration - they may want to abandon the unsuccessful MT5 project with statement, that it is no longer needed as the platforms are nearly identical.
 
rwbta:

2) I don't know where you got the 99% number. Who was it that tested every compiled mq4 in the world (or at least a statistically significant number of them)? Don't make up numbers in the hopes of proving a point. It's nice that you are trying so hard to defend MQL; but sometimes it's better for a company to admit they made a mistake and just fix it without trying to blame everyone else.


Earlier I downloaded the codebase (which they said will be fully compatible) and much more than 1% of them compiled with errors.
 
Ovo:

I am afraid that the other way round should be taken into consideration - they may want to abandon the unsuccessful MT5 project with statement, that it is no longer needed as the platforms are nearly identical.

Yes - exactly. MT5 will probably be replaced bt MT4(600+)

I downloaded the new Help for MT4 build 600

totally useless - eg did a search on ObjectCreate and OBJ_TREND

..........nothing,.

I suppose we are expected to search MT5 and find the new constructs.

For some reason, I have yet to identify, my trendline Function no longer produces output. ie

void SetTLine(string name, int timeFrame, datetime time1, double price1, datetime time2,double price2, color clr = Green, int style = 0, int width = 0)
{
   //Print("method-> ", "SetTLine ");
   ObjectCreate(name, OBJ_TREND, 0, 0, time1,price1,time2,price2); 
   ObjectSet(name, OBJPROP_TIME1,  time1);   
   ObjectSet(name, OBJPROP_PRICE1, price1);
   ObjectSet(name, OBJPROP_TIME2,  time2+1);   //##########
   ObjectSet(name, OBJPROP_PRICE2, price2);     
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, RayProject);
   ObjectSet(name, OBJPROP_COLOR, clr);
   ObjectSet(name, OBJPROP_WIDTH, width);
   ObjectSet(name, OBJPROP_TIMEFRAMES, timeFrame);
   //ObjectSet(name, OBJPROP_TIMEFRAMES, 0);
   ObjectSetText(name,DayOfWeekName(time1)+" "+TimeDay(time1)+" "+MonthName(time1)+" "+TimeYear(time1),8,"Arial",Black); 
}

Has anyone else come across this issue?

EDIT - ok, found the new construct in MT5. Have to add the chart_ID. Suspect this is going to be a long process for other errors, unless there exits a "Functions Comparison Table" of some sort(???) Otherwise I may as well start learning MT5. Hmm - I thought this is MT4.

/*
const long            chart_ID=0,        // chart's ID
const int             sub_window=0,      // subwindow index
ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)
*/

void SetTLine(string name, int timeFrame, datetime time1, double price1, datetime time2,double price2, color clr = Green, int style = 0, int width = 0)
{
   //Print("method-> ", "SetTLine ");
   ObjectCreate(0,name, OBJ_TREND, 0, 0, time1,price1,time2,price2); 
   ObjectSet(name, OBJPROP_TIME1,  time1);   
   ObjectSet(name, OBJPROP_PRICE1, price1);
   ObjectSet(name, OBJPROP_TIME2,  time2+1);   //##########
   ObjectSet(name, OBJPROP_PRICE2, price2);     
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, RayProject);
   ObjectSet(name, OBJPROP_COLOR, clr);
   ObjectSet(name, OBJPROP_WIDTH, width);
   ObjectSet(name, OBJPROP_TIMEFRAMES, timeFrame);
   //ObjectSet(name, OBJPROP_TIMEFRAMES, 0);
   ObjectSetText(name,DayOfWeekName(time1)+" "+TimeDay(time1)+" "+MonthName(time1)+" "+TimeYear(time1),8,"Arial",Black); 
}
 
Ovo: I am afraid that the other way round should be taken into consideration - they may want to abandon the unsuccessful MT5 project with statement, that it is no longer needed as the platforms are nearly identical.

They should have re-program mt5 to allow Hedging + Import m1-Data. Then release it as mt4+.

They need to keep mt5 for Non-Forex markets. They just made their jobs harder with all the compatibility issues.

The above is an extreme position to take ... but I just couldn't help but say it ... I apologize in advance.

People think they can compile their Old-Codes in the New-Mt4+ and it'll have the same behavior as Old-Mt4 ... Sad ... Sad ... Sad.

 
ubzen:

They should have re-program mt5 to allow Hedging +Import m1-Data. Then release it as mt4+.

They need to keep mt5 for Non-Forex markets. They just made their jobs harder with all the compatibility issues.

The above is an extreme position to take ... but I just couldn't help but say it ... I apologize in advance.

People think they can compile their Old-Codes in the New-Mt4+ and it'll have the same behavior as Old-Mt4 ... Sad ... Sad ... Sad.


All except the very simplest code seems to require at least a minor rewrite. Suspect that many code vendors, as well as Brokers, will be inundated with 'complaints. Suppose that the last laugh is on the Brokers (and their clients) who would not offer MT5, as 600 is more MT5 than MT4.

On the plus side 600 is much faster, and, I suppose, the oop will make one more productive.

This will be similar to a visit to the Dentist. A lot of initial pain for that nice smile. So far I'm not smiling!!

 
rod178: All except the very simplest code seems to require at least a minor rewrite. Suspect that many code vendors, as well as Brokers, will be inundated with 'complaints. Suppose that the last laugh is on the Brokers (and their clients) who would not offer MT5, as 600 is more MT5 than MT4.

On the plus side 600 is much faster, and, I suppose, the oop will make one more productive.

This will be similar to a visit to the Dentist. A lot of initial pain for that nice smile. So far I'm not smiling!!

Yeah I agree with that. This is a gambit from metaQuotes. This could certainly back-fire on them. It toke me hours, to figure-out how Array-Resize worked within one of the Beta.

There was the mt4 behavior. The mt5 behavior. And finally the mt4+ behavior which was more like mt5 resize, but for dynamic arrays only. https://www.mql5.com/en/forum/148673/page3#888572. I called it a Bug ... and then I toke down my post after testing the mt5 version. The mt5 version made more sense (to me) when the dynamic array was set-as-series.

The next wave of arguments is going to be the Documentation. Let me be the first one to say that MQ isn't going to document changes (in behavior) between mt4 and mt4+.

I just don't think metaQuotes have been keeping track ... and that some of these are actively changing. Unit testing every single function you taught you knew ... yea get ready.

 
ubzen:

Yeah I agree with that. This is a gambit from metaQuotes. This could certainly back-fire on them. It toke me hours, to figure-out how Array-Resize worked within one of the Beta.

There was the mt4 behavior. The mt5 behavior. And finally the mt4+ behavior which was more like mt5 resize, but for dynamic arrays only. https://www.mql5.com/en/forum/148673/page3#888572. I called it a Bug ... and then I toke down my post after testing the mt5 version. The mt5 version made more sense (to me) when the dynamic array was set-as-series.

The next wave of arguments is going to be the Documentation. Let me be the first one to say that MQ isn't going to document changes (in behavior) between mt4 and mt4+.

I just don't think metaQuotes have been keeping track ... and that some of these are actively changing. Unit testing every single function you taught you knew ... yea get ready.

Another function that has altered output is StrToTime

previously "-00:00" returned a negative time, in seconds

It now returns 0 for a string with a leading "-"

 
euclid:

"Terminal: Added display of subfolders and the structure of Expert Advisors, scripts and indicators in Navigator window"

I have found a problem with this feature (on build 604). If you have indicators in a subfolder, sometimes MT4 looks for them in the main folder.

e.g.

loading from the navigator window: 2014.02.09 13:36:42.347 Custom indicator b509\NewsCal-v107 EURUSD,M5: loaded successfully

loading via Insert>Indicators>Custom: 2014.02.09 13:50:33.851 Cannot open file 'C:\Program Files\MT4 Exchange\MQL4\indicators\NewsCal-v107.ex4' [2]

I've also seen indicators fail to load from a subfolder occasionally at start up.


Thanks. We will check it.
 
Jimdandy:
Has anyone found online the manual or pdf for the latest version of Mql4?
I asked the Service Desk the question about the online documentation . . . they replied that it will be updated this week
 

Meanwhile (just in case) I grabbed a copy of the old MQL4 docs using ...

wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains docs.mql4.com \
     --no-parent \
     --referer=http://docs.mql4.com \
     -w 20 \
     --random-wait \
        http://docs.mql4.com/

Then deleted the /cn/ and /ru/ folders.

I had to wait between pages, if not I got a temporary IP ban :)

Reason: