Servicedesk. Complaints, suggestions. - page 7

 
Ilya Malev:
I have just found your problem already in MT5 in an indicator, without exiting one OnTimer loop, I check time series on another symbol/period (not current one) - the function tells me that it is built and gives correct number of bars. Immediately after that I call another function to build the indicator - inside this function, called from the same call of OnTimer, the timeseries manages to be unloaded and the SeriesInfoInteger returns zeros. I had to embed an additional cyclic check, so that everything builds itself without incoming ticks.

What is the build of the MT5 terminal? Mikhail wrote that MT5 build 1200 should be fine:

Forum on trading, automated trading systems and strategy testing

Service Desk. Complaints, suggestions.

Mikhail, 2015.10.29 17:46

I raised the problem with the data in the indicators a long time ago!

https://www.mql5.com/ru/forum/42180

I have been assured that the problem has been resolved.

They even wrote about it in the abstract of release 1200

17: Terminal: Fixed a bug that caused historical data to be unloaded as unused, despite regular data accesses from MQL5 programs.

And if the build is new, but the error persists - go to servicedesk with proofs!

 
Alexey Kozitsyn:

What is the build of the MT5 terminal? Mikhail wrote that MT5 build 1200 should be fine:

If the build is new and the error is still there, go to Service Desk with proof!

The build is the same as the 1200/64. To reproduce the error, I need to simulate the situation that I had in a fairly complex product, which I cannot send to desk. I'll do it as soon as I'm free from work for a while.
 

The topic-starter was given advice on his problem in the first reply, which he, the topic-starter, ignored.

Stanislav Starikov| 10.29 12:41

In order to get the actual data from someone else's symbol-period you need to access this data more frequently than once every 10 seconds. Or access this data from Expert Advisor, e.g. using iTime (then the data can be accessed at least once every 3 minutes)


The topic-starter obviously saw this advice as there is some commented code in his indicator that he presented here

         //if( bars_count == 0 || firstDate == 0 || serv_firstDate == 0 )
         //     {
         //      Print( "Подкачка iTime()" );
         //      datetime tm = iTime( _Symbol, period, 0 );
         //     }

If you insert the unconditional call iTime(_Symbol,period,0) in OnInit and at the beginning of OnCalculate, you won't have any problems described above

The SeriesInfoInteger simply collects the already existing information without calling the data swap, and that's logical.

 
Slawa:

The topic-starter was given advice on his problem in the first reply, which he, the topic-starter, ignored.

Stanislav Starikov| 10.29 12:41

In order to get actual data from someone else's symbol-period you need to access this data more frequently than once every 10 seconds. Or access this data from Expert Advisor, e.g. using iTime (then the data can be accessed at least once every 3 minutes)


The topic-starter obviously saw this advice as there is some commented code in his indicator that he presented here

If you insert the unconditional call iTime(_Symbol,period,0) in OnInit and at the beginning of OnCalculate, you won't have any problems described above

The SeriesInfoInteger simply collects the already existing information without calling the data swap, and that's logical.

Vyacheslav, who are you addressing now? Me? Or to Ilya?

If you are addressing Ilya, he is already talking about mql5. Please read carefully before you answer. I have told you more than once that you are in a hurry to respond without going into details.

I have seen your advice, the commented code confirms it, thanks, it helped. Since Renat said that aggressive unloading of data will be fixed, no need to go on discussing mql4.

But if the same situation continues in mql5, although it should be fixed starting from build 1200, then what to do?

Once again, if you (the developers) are not going to change anything in mql4, add to the documentation that SeriesInfoInteger() only gathers existing information, and that's it! All questions will disappear, or you can just poke your nose in the documentation!

 
Alexey Kozitsyn:

Vyacheslav, who are you talking to now? Me? Or to Ilya?

Since iTime was mentioned, it's obviously about MT4. I haven't given a specific code example to answer me yet.
 
Ilya Malev:
Since iTime was mentioned, it's clearly about MT4. I haven't given a specific code example yet to answer me.
I understood that, but it's more likely that you were addressed. But you wrote about error in mql5.
 
Alexey Kozitsyn:
I understood that, but it was probably addressed to you as well. But you wrote about error in mql5.
I am not the topicstarter :)
 
Ilya Malev:
I'm not the topicstarter :)
Yes, but the post was like explaining to you what I, in Vyacheslav's opinion, did not grasp.
 
Alexey Kozitsyn:
Yes, but the post was like explaining to you what I, according to Vyacheslav, didn't catch.

I think that's the way to talk to you :)

I'll come back to my problem and provide a verification code. Unless something has been fixed in build 1210. So far I've done a cyclic check and moved on, no time to stop.

 
Ilya Malev:
Write then the result of your experiments with the history in MT4)

Started experimenting with loading the history from scratch. I.e. I delete all the history by the symbol and start the terminal. Terminal setting max bars in the window = 5000.

If using a script similar to the one from Data Access Organization in MT5, you can see that the history is loaded either to the maximum number of bars or to the last date on the server.

Using a similar scheme in MT4 the data is not loaded. I.e. initially approximately 2050 are available, and in order to get more history you need to scroll the chart to the depth of the history.

I also noticed one peculiarity. When scrolling, if new bars are loaded, prev_calculated is reset to 0 (works like "refresh" button).

Dear developers. Please comment if there is any way to swap history without using chart scrolling (MT4!).

Reason: