CopyTicksRange () does not work correctly in MQL5. a - page 4

 
Alexey Viktorov #:

One line back to the dialogue:

The function should work the way the developers intended, not the way the users want it to work. One wants one thing, one wants another, and one wants nonsense.

This is the reason the developers don't respond to you. And I am not an advocate, I am trying to bring you a simple truth, do not burden others if you can not do it yourself. You, on the other hand, have turned on the "don't......... give in..." and are making up myths about crutches.

That's really ALL¡¤¡¤¡¤ Developers won't answer you...don't get your hopes up.

I know you will, so I will write. The function must work as described in the documentation and nothing else. If there are nuances, write them in the documentation and you won't have a problem.

I have no sense to convince you of anything. You'd better let developers know simple truths. I'm sure you have never worked in a team of programmers - you are a typical self-taught programmer without a solid knowledge base. While I have worked and managed serious projects. We used to fire people for communicating with commonplace truths not supported by experience and knowledge. I don't need you as an intermediary for communicating with developers. I got an answer from them about two years ago - "make crutches, everything works here". I hope the author of this phrase has already been fired because programmers are not God and often make mistakes.

We had a tester position - you cannot even imagine how many bugs can be found in a couple of pages of code in an overconfident and inexperienced programmer.

 
RusPro #:

In your example it works, because calling conditions are different - start time is always equal to start of existing bar (i.e. ticks are known to exist) and you read all tick history of the last bar at once.

By the way, one of my crutches works similar to yours. I also get the times of existing bars at first, and then break them into maximal continuous segments and get the ticks. But another problem occurs - if there's not enough of receiving array for data, the rest resuming is a tambourine dance (about which I've talked above).

And working with dynamic arrays is much slower and you have to take into account possible memory fragmentation.

Have you read all the docs to the end?

Примечание

Функция CopyTicksRange() предназначена для запроса тиков из строго указанного диапазона, например, за конкретный день истории.

And everything works fast with dynamic arrays.

Compare your ping and forget about the speed of dyn. arrays :)

It's not a dedicated MMB channel

Added by

If you need speed, then why did you "sit down" on BCS, those u--holes deliberately limit the speed of the standard FORTS login

from 30 transactions per sec. to 10 tr. per sec.!

Added

And it's better to write in the "Exchange Trading" section

 
RusPro #:

On forex, the same mistakes. Alpari broker, test account. EURUSD symbol

Custom symbol is made based on EURUSD, just left the name too

If we are talking about the operation of CopyTicks in the Strategy Tester, I'm incompetent, because I've never requested a tick history in the Strategy Tester.

I can only speak for the battle mode.

 
prostotrader #:

Do you read the documents all the way through?

Yes, I read the function descriptions all the way through, and if I have doubts, I also look through the forums. Everyone has a different notion of fast. Dynamics is slower by definition because there is constant redistribution of memory. The second disadvantage is fragmentation - sometimes you make a mistake with the dynamics and then the memory is not enough to close the terminal :)))

Ping has nothing to do with it, after the first download, the ticks are given already from the base, in theory, of course :) I was taught that the program should be accelerated by optimization, but not by the hardware base - this is automatic. And what difference does it make, what is the connection - today it is one, tomorrow another - it doesn't depend on the algorithm.

I have my own broker, but I have not got the right one, I just did not know how to open it and I have not got the right one. My task now is to test the mathematics on ticks, not trading or freelancing.

 
RusPro #:

And working with dynamic arrays is much slower and you have to consider possible memory fragmentation.

Please provide measurements for this statement. I pay much attention to performance issues in Expert Advisors.

 
fxsaber #:

If we are talking about CopyTicks operation in the Tester, I'm not competent, because I've never requested tick history in the Tester.

I can speak only for the battle mode.

I'm not talking about the tester, but about a demo account. Because it is problematic to check in Alpari on a live account on a weekend.

 
RusPro #:

I don't mean the tester, I mean the demo account. The Tester, not the tester, but the demo account.

Yes, if you ask for ticks in an interval where there were none, it gives out not zero, but for the whole day.

It feels like this is deliberately done. But I don't know what for.


Investigation has shown that the problem occurs when From hits the time after the last tick of the trading week. I think it's a bug.

On real and custom characters it behaves identically.


Obviously, if I request ticks from the last tick of the previous request, the problem will not occur. But if you make a request with SymbolInfoTick_time_msc, the bug may occur. Therefore, it's better not to do it yet.

 

fxsaber #:

But if you make a query with SymbolInfoTick_time_msc, the bug may appear. That's why it's better not to do it yet.

It's been tested how many times?

If you don't like SymbolInfoTick, use

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, поставьте 1
   );
CopyTicks

from

[in] Date from which ticks are requested. Specified in milliseconds since 01.01.1970. If parameter from=0, then the last count of ticks is passed .

 
Alexey Viktorov #:

Has this been checked how many times?

Don't like SymbolInfoTick use

Thanks, great at working with ticks. That doesn't invalidate the existence of the bug.

 
Alexey Viktorov #:

Has this been checked how many times?

Don't like SymbolInfoTick use

it's been tested for two years!

What a stubborn one! Read what was written above - CopyTicks is glitchy as well. If you like looking for ways to make a buggy function work or find buggy workarounds, then don't bother - it's not about that