MemoryException 47751964592 bytes not available, 0 heapmin result. что это и как с этим бороться? - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Pavel Verveyko
5163
Pavel Verveyko  
Vitalii Ananev:

https://www.mql5.com/ru/docs/series/copyticks

скажите пожалуйста а как мне получить данные в CopyTicks ВСЕ от указанной даты ? что можно указать в CopyTicks кроме -1 ?

-1 работает) только строчку выдаёт про память

Vitalii Ananev
14589
Vitalii Ananev  
Pavel Verveyko:


-1 работает) только строчку выдаёт про память

Работает, но не правильно. Если вы знаете, что uint это положительные целые числа, то зачем упорно пытаетесь ему впихнуть отрицательное число. В этом случае происходит неявное преобразование типов int в uint и в результате этого получается непредсказуемый результат.

В документации все написано. Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000.

То есть надо получать данные порциями по 2000 тиков. Сразу все тики получить нельзя.

Pavel Verveyko
5163
Pavel Verveyko  
спасибо Вам за помощь, да уж( я думал есть разумный способ загрузки тиков..
Vitalii Ananev
14589
Vitalii Ananev  
Pavel Verveyko:
спасибо Вам за помощь, да уж( я думал есть разумный способ загрузки тиков..

Что есть то есть. А зачем вам так много тиков? Они действительно сожрут у вас прорву оперативной памяти. Не зря сделано это ограничение.

Pavel Verveyko
5163
Pavel Verveyko  
Vitalii Ananev:

Что есть то есть. А зачем вам так много тиков? Они действительно сожрут у вас прорву оперативной памяти. Не зря сделано это ограничение.

кстати а закачать можно и больше 2000 намного больше
если указать это явно. и это не вызывает той строчки про памяти.
строчка вылазит только из за минуса в функции( но работает она всё равно правильно. данные скачиваются до конца массива.

это эксперимент с таблицей сделок за вчера и сегодня. отсюда и тиков множество
Vitalii Ananev
14589
Vitalii Ananev  
Pavel Verveyko:

кстати а закачать можно и больше 2000 намного больше
если указать это явно. и это не вызывает той строчки про памяти.
строчка вылазит только из за минуса в функции( но работает она всё равно правильно. данные скачиваются до конца массива.

Так это и сразу было понятно, что все дело в минусе. Просто я думал, что за раз можно получить не более 2000 тиков, а на самом деле ограничение только в случае если не задано явно нужное кол-во тиков.

Pavel Verveyko
5163
Pavel Verveyko  
Vitalii Ananev:

Так это и сразу было понятно, что все дело в минусе. Просто я думал, что за раз можно получить не более 2000 тиков, а на самом деле ограничение только в случае если не задано явно нужное кол-во тиков.

вот так грузит 

MqlTick ticks[];
   int rest = CopyTicks(Symbol(),ticks,COPY_TICKS_TRADE,D'2019.02.13 00:00',429496729);
UINT_MAX вылазит строчка про память а вот если убрать последнюю цифру и написать цифрами то работает.. но всё равно это бред( почему нельзя дать возможность получить все данные(((((( по константе WHOLE_ARRAY или -1
Vitalii Ananev
14589
Vitalii Ananev  
Pavel Verveyko:

вот так грузит 

UINT_MAX вылазит строчка про память а вот если убрать последнюю цифру и написать цифрами то работает.. но всё равно это бред( почему нельзя дать возможность получить все данные(((((( по константе WHOLE_ARRAY или -1

А вы попробуйте (UINT_MAX -1) .

Pavel Verveyko
5163
Pavel Verveyko  
Vitalii Ananev:

А вы попробуйте (UINT_MAX -1) .

это было первое) после UINT_MAx но почему то нет( только если её написать цифрами и убрать последнее число , может там какой то резерв технический в функции установлен.

fxsaber
12673
fxsaber  
Pavel Verveyko:

вот так грузит 

UINT_MAX вылазит строчка про память а вот если убрать последнюю цифру и написать цифрами то работает.. но всё равно это бред( почему нельзя дать возможность получить все данные(((((( по константе WHOLE_ARRAY или -1
 int rest = CopyTicks(Symbol(),ticks,COPY_TICKS_TRADE,(ulong)D'2019.02.13 00:00' * 1000,50000);
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий