Snaf: I found the error in the first script myself, but I don't have enough brains for the second one .
Bild 630
This example is written using the new build of MQL5 compiler. We apologize for not taking this into account. But it will be out soon. Please wait a bit and everything will compile.
MetaDriver: Yeah, well, it's with string handling that I messed up, too. My function used to assemble a long string from chunks returned by other functions (OpenCL program generation). In the debugger it's like clockwork - the build crashes and says "Acces Violation"... ;)
I was about to write to Service Desk, but out of nowhere it worked. :) I could not reproduce it (although I tried to do it honestly), so why should I send it to service Desk?
Yes, there is a clear problem with CLProgramCreate(). I specifically tracked down where in the script the first execution glitch was, and it was in this function. The function does not return a value.
The CL-program in the form of a string seems to be reproduced correctly. But the CL program itself is not created.
When testing on crosses there is accurate modelling of other rates as well for correct conversion of profits and margin requirements.
Try running the visualisation and you will immediately understand the volume of calculations based on the number of background characters in the marketwatch.
Please tell me how to merge my laptop and PC, when testing strategies, computers are working through a router, one via cable, the other via Wi-Fi, tried to create on the desktop computer file mt5, I threw to the laptop, added to the section remote, but the names of agents are the same as on a laptop
It turned out that in 630/64 either structure assignment, or reading from array into array got screwed up, although the worst variant seems to be conversion of signed (short/int/char) into unsigned (ushort/uint/uchar).
Somewhere there are extra bits or offsets. As a result, the programmer reads quite a different number than intended. It will be easier for you to sort it out and double-check in the function.
But it works steadily in the same code on 4 computers (the code is large, I can't stretch the plot).
lazarev-d-m: Please tell me how to merge my laptop and PC, when testing strategies, computers are working through a router, one via cable, the other via Wi-Fi, tried to create a file mt5 on a desktop computer, threw it on the laptop, added to the section remote, but the names of agents are the same as on a laptop
I must have done something wrong, now I created mt5 file again, now notebook sees PC processors, but in the connecting test nothing goes further, what can be the problem, and do I need to add notebook processors to PC tester, if I will not use them on PC?
Bild 630
I was about to write to Service Desk, but out of nowhere it worked. :) I could not reproduce it (although I tried to do it honestly), so why should I send it to service Desk?
Yes, there is a clear problem with CLProgramCreate(). I specifically tracked down where in the script the first execution glitch was, and it was in this function. The function does not return a value.
The CL-program in the form of a string seems to be reproduced correctly. But the CL program itself is not created.
Try running the visualisation and you will immediately understand the volume of calculations based on the number of background characters in the marketwatch.
from the post https://www.mql5.com/ru/forum/1111/page736#comment_185306
localized the problem to the point :
- on function from CFastFile::ReadInteger class
It turned out that in 630/64 either structure assignment, or reading from array into array got screwed up, although the worst variant seems to be conversion of signed (short/int/char) into unsigned (ushort/uint/uchar).
Somewhere there are extra bits or offsets. As a result, the programmer reads quite a different number than intended. It will be easier for you to sort it out and double-check in the function.
But it works steadily in the same code on 4 computers (the code is large, I can't stretch the plot).
Please tell me how to merge my laptop and PC, when testing strategies, computers are working through a router, one via cable, the other via Wi-Fi, tried to create a file mt5 on a desktop computer, threw it on the laptop, added to the section remote, but the names of agents are the same as on a laptop
It doesn't work like this? Client Terminal / Strategy Tester / Agents
Developers, you've won me over with this bug! As they say, "I'm crying".
Functions from CFastFile ( ::ReadInteger)
It returns nonsense when reading SHORT_VALUE.
Started digging around, wrapping my head around different options for reading from an array.
It turned out that if instead of ushort s=ReadShort() put the body of function ReadShort itself, all numbers are read normally.
But then I found a variant that really made me cry.
That is, the Print function magically transforms a wrong number s into a correct one and returns the correct value.
Dear developers, come to your senses! You are making a rubbish!!!
How will you compensate for losses in the marketplace resulting from your own attitude to your product?
After all, MT5 is just a huge consumer resource, which is served by third-party programmers.
And you with your negligent actions question their competence and the quality of their programs!
Developers, you've won me over with this bug! As they say, "I'm crying".
Functions from CFastFile ( ::ReadInteger)
Wait, but this is your code of the CFastFile class, isn't it? What have platform developers got to do with it?
Wait, but this is your code of the CFastFile class, isn't it? What do the platform developers have to do with it?
Yes Renat, that's my code.
It worked in previous builds. But it stopped working in the current 630/64.
And it continues to work successfully in 630/32.
The bug I've found is rather odd and frankly speaking, frightening.