You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
If you're running an indicator, the return code is REASON_CLOSE. If it's an EA, the return code is REASON_CHARTCLOSE.
Isn't MQL4 delightful, with all its weird quirks? It's like playing a game of easter-egg hunt, where you're required to find the silliest bugs that could possibly exist. Except that you only discover them after days of frustration while writing up a program.
I reported it and it should be fixed in 1170.
Forum on trading, automated trading systems and testing trading strategies
New version of MetaTrader 4 build 1160
Slava , 2018.12.18 15:28
Fixed. Thank.I reported it and it should be fixed in 1170.
Thank you, that probably helps me a lot with frequent explanations to users.
//
Regarding calling the event methods after the OnDeinit(), I have often record like this in the logs. It actually does not hurt me, as the dispatcher object is already destroyed, but it is definitively not correct. And there is also highlighted the 3-sec delay caused by the ChartSymbol() command.
Thank you, that probably helps me a lot with frequent explanations to users.
//
Regarding calling the event methods after the OnDeinit(), I have often record like this in the logs. It actually does not hurt me, as the dispatcher object is already destroyed, but it is definitively not correct. And there is also highlighted the 3-sec delay caused by the ChartSymbol() command.
Testcase code and information to reproduce ?
I faced the issue as well and it causes forced shutdown of experts, here is the code to reproduce:
2018.12.19 09:54:36.001 Expert test-CAppDialog-Destroy GBPUSD,H1: removed
2018.12.19 09:54:32.926 test-CAppDialog-Destroy GBPUSD,H1: OnDeinit triggered.
As seen, it takes more than 3 seconds per chart.
EDIT: This gets worse if there are controls on the Panel and those controls work with dynamic pointers to CObject* subclasses.
These webupdates causing problems with union datatype definition in backtesting and I don't know about live..
Am using tick data suite and backtesting is 100% different from 1090 compared with latest two builds.
Worst thing if the update occurs randomly and terminal froze on live.
Webupdates folder I deny permission to everyone and didn't work.
I have server 2008 is fine, win 7 & 10 have updated.
Freelancers can find details on updates? I cannot.
Freelancer needs "WebUpdates" skills.
Updates causing problems; what fix?
Hey Alain, I have some more bugs to report. I've been aware of them for a long time and have had to make accommodations for them in all my code.
The first few bugs concerns the functions ObjectGetValueByTime and ObjectGetTimeByValue, especially as applied to a Channel. I suspect the problem also occurs for a Fibonacci Channel, though I haven't checked. I work with channels quite a lot and I typically disable the Ray feature. When I try to get time and price values off of the Channel's 2nd line (line index = 1), ObjectGetValueByTime and ObjectGetTimeByValue often give errors. Please see the picture which I've attached to illustrate what I'm talking about. Suppose I draw a channel and the co-ordinates are laid out as in the picture. If there are any time values on the channel's 2nd line which exceed the time2 co-ordinate of the first line, ObjectGetValueByTime for the second line doesn't work for those time values. Likewise, if there are any price values on the channel's 2nd line which exceed the price2 co-ordinate of the first line, ObjectGetTimeByValue for the second line doesn't work for those price values. Basically ObjectGetValueByTime only works for time values which are valid on the first line while ObjectGetTimeByValue only works for price values which are valid on the first line, even though the second line has its own range of time and price values.
Up to now, I have made accommodations for these bugs bug in my code as follows: I align the channel's Point 1 with Point 3, so that time1 = time3. This way, ObjectGetValueByTime always works for the second line. For the error with ObjectGetTimeByValue, I have to write code to draw a new line, get values off of it, and then delete the line.
Please see if you can resolve these bugs in any way in a future build of MT4.
I reported it and it should be fixed in 1170.
I faced the issue as well and it causes forced shutdown of experts, here is the code to reproduce:
2018.12.19 09:54:36.001 Expert test-CAppDialog-Destroy GBPUSD,H1: removed
2018.12.19 09:54:32.926 test-CAppDialog-Destroy GBPUSD,H1: OnDeinit triggered.
As seen, it takes more than 3 seconds per chart.
EDIT: This gets worse if there are controls on the Panel and those controls work with dynamic pointers to CObject* subclasses.
2018.12.19 16:41:37.456 294630 EURUSD,H1: uninit reason 0
2018.12.19 16:41:37.456 294630 EURUSD,H1: OnDeinit triggered.
2018.12.19 16:41:37.463 Expert 294630 EURUSD,H1: removed
Build 1161.
Hey Alain, I have some more bugs to report. I've been aware of them for a long time and have had to make accommodations for them in all my code.
The first few bugs concerns the functions ObjectGetValueByTime and ObjectGetTimeByValue, especially as applied to a Channel. I suspect the problem also occurs for a Fibonacci Channel, though I haven't checked. I work with channels quite a lot and I typically disable the Ray feature. When I try to get time and price values off of the Channel's 2nd line (line index = 1), ObjectGetValueByTime and ObjectGetTimeByValue often give errors. Please see the picture which I've attached to illustrate what I'm talking about. Suppose I draw a channel and the co-ordinates are laid out as in the picture. If there are any time values on the channel's 2nd line which exceed the time2 co-ordinate of the first line, ObjectGetValueByTime for the second line doesn't work for those time values. Likewise, if there are any price values on the channel's 2nd line which exceed the price2 co-ordinate of the first line, ObjectGetTimeByValue for the second line doesn't work for those price values. Basically ObjectGetValueByTime only works for time values which are valid on the first line while ObjectGetTimeByValue only works for price values which are valid on the first line, even though the second line has its own range of time and price values.
Up to now, I have made accommodations for these bugs bug in my code as follows: I align the channel's Point 1 with Point 3, so that time1 = time3. This way, ObjectGetValueByTime always works for the second line. For the error with ObjectGetTimeByValue, I have to write code to draw a new line, get values off of it, and then delete the line.
Please see if you can resolve these bugs in any way in a future build of MT4.
I understand but if you want me to try please provide a testcase code. (I can draw a channel manually but I will not code myself trying to reproduce it).
OK, I've attached an indicator which provides the testcase. I wrote the code long time ago specifically to do a thorough evaluation of the bugs in ObjectGetValueByTime or ObjectGetTimeByValue. (Please excuse the verbosity in the commenting. I was trying to figure out what was going on at the time and make a thorough record of it.)
Here are the instructions for usage: