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

 
mladen:

Why the is it prohibited to make a recursive call to the indicators now (build 582 - strict or no strict mode does not matter)? What is the purpose of that? Wasn't it the responsibility of the coders to make working code?

Here is one simple example that uses the same indicator not once but 3 times (to calculate normal values, to get the number of changed bars of the target time frame when in multi time frame mode and to do multi time frame calculations) that worked perfectly well till this last build which prohibits it to work in multi time frame mode. And that is just one example of such a multi time frame indicator that will not work any more (and there are hundreds of similar ones). This restriction has no cause in any common coding errors. If the code for this indicator was not written properly it simply would not work properly and nobody would use an indicator that is not working. This is a great disappointment and it, if it stays like this, will put us back 10 years in the ways how the things were done then and how the things are done today. Not even metatrader 5 has that restriction

PS: enum options are still having inverted order when used from the drop down box


I want to check your issue. I run your indicator and got this result :

What should be the "right" result ?

 
RaptorUK:

A script is not a script . . .

I've just written a test script to test capturing screen shots . . . I'm having problems with screen shot being captured under 582 from an EA running in the Strategy Tester, WindowScreenShot() returns true but the file is nowhere to be found . . . anyway, I created this simple script . . .

it works as expected under 509, so I compile it under ME 883 and run it in build 582 . . .

. . . oh yes it is ! !

I can't reproduce this problem. Can you explain how to reproduce it precisely ?

I try to attach it to a chart and got :

2014.01.30 22:56:49.068 Script testScript AUDJPY,H1: removed
2014.01.30 22:56:49.068 testScript AUDJPY,H1: uninit reason 0
2014.01.30 22:56:49.050 testScript AUDJPY,H1: ChartGrab - Path: shots\ Filename: AUDJPY2014-1-30.gif
2014.01.30 22:56:49.050 testScript AUDJPY,H1: initialized
2014.01.30 22:56:49.045 Script Forum\testScript AUDJPY,H1: loaded successfully

 
pips4life:

I'm just now running into this difference in behavior: I have indies that create a lot of objects, so one easy way to ensure each has a unique name-per-bar is to include the object OBJ_TIME1 in the object name.

509 and 509 ex4 behavior: string objName = StringConcatenate("_P4L_",Time[0]); // objName = "_P4L_1391115600"


582 behavior:

string objName = StringConcatenate("_P4L_",Time[0]); // objName = "_P4L_2014.01.30 21:00:00"

string objName = StringConcatenate("_P4L_",IntegerToString(Time[0])); // objName = "_P4L_1391115600"

I might not care most times because for short names, either one works. But I have other examples that use TIME1 and TIME2 and even also TIME3, so the extra characters are killing me. It exceeds the max ObjectName length and breaks my code.

Anyone see any problem using my workaround, "IntegerToString(Time[0])" ?

P.s. Filed a service ticket.


The problem is that type datetime is not type long. Though they share internal representation, they may have different implicit casting to other types.
 
angevoyageur:

I want to check your issue. I run your indicator and got this result :

What should be the "right" result ?


Try it in multi time frame mode and see what "error" is written out in the experts tab when it does not show anything at all

That way of iCustom() calling is perfectly legal even in metatrader 5 - it became "illegal" in this build 582 only today, and was legal from the start of metatrader 4 till a few hours ago

 
mladen:

Try it in multi time frame mode and see what "error" is written out in the experts tab

I don't get an error, can you post a procedure to reproduce it ?

MTF = H4 on a H1 chart :


 
angevoyageur:

I don't get an error, can you post a procedure to reproduce it ?

MTF = H4 on a H1 chart :



That is the code that causes this (build 582, as it is seen from the picture) - 1 hour chart 4 hour target time frame :


it was working OK with build 579

 
angevoyageur:

I can't reproduce this problem. Can you explain how to reproduce it precisely ?

I try to attach it to a chart and got :

2014.01.30 22:56:49.068 Script testScript AUDJPY,H1: removed
2014.01.30 22:56:49.068 testScript AUDJPY,H1: uninit reason 0
2014.01.30 22:56:49.050 testScript AUDJPY,H1: ChartGrab - Path: shots\ Filename: AUDJPY2014-1-30.gif
2014.01.30 22:56:49.050 testScript AUDJPY,H1: initialized
2014.01.30 22:56:49.045 Script Forum\testScript AUDJPY,H1: loaded successfully


Compile the script in the new Meta Editor, copy the .ex4 to the Script folder of MT4 build 582, start MT4, drag and drop the script onto a chart.
 
mladen:

That is the code that causes this (build 582, as it is seen from the picture) - 1 hour chart 4 hour target time frame :


it was working OK with build 579



I used the code you posted, build 582 too ( I use /portable switch, but I don't see how this can related).


I can't reproduce it so, it's a little mysterious. Let us know if you got some new information.
 
angevoyageur:

I used the code you posted, build 582 too ( I use /portable switch, but I don't see how this can related).


I can't reproduce it so, it's a little mysterious. Let us know if you got some new information.

Same case : using /portable switch too. And I am getting that error in every case when such a call is attempted (not just in that code)
 
mladen:

Same case : using /portable switch too. And I am getting that error in every case when such a call is attempted (not just in that code)
Weird. Sorry I don't understand.
Reason: