Массивы, уперся в стену непонимания.

 

Функция открывает файл оптимизации, читает построчно все в массив, потом выдергивает значения нужные и вставляет в другой массив. Результат:


читать с низу вверх


2008.11.24 16:07:21 TEST EURUSD,M1: cannot resize the array
2008.11.24 16:07:05 TEST EURUSD,M1: В массиве ArrayData 21151772 строк
2008.11.24 16:06:17 TEST EURUSD,M1: Файл полносью прочитали, всего 6504 строк


В какое ограничение я уперся не пойму, раньше проблем не было вроде.

 

Ой, много-то как - да еще и строчек! Наверно, просто в память RAM уперся.

 

Оперативка при засасывании значений из файла не растет до безумных размеров.

тут что-то другое, а что никак понять не могу.

 
HIDDEN >>:

Оперативка при засасывании значений из файла не растет до безумных размеров.

тут что-то другое, а что никак понять не могу.

Каким макаром в массиве оказалось столько строк? Если в файле их всего 6000.

 

У меня тоже с массивами нескладушки, отловить с документальным подтвержедением пока не удалось, выглядит это так:

Функция, в ней 3 массива, один передаваемый по ссылке (одномерный), и два локальных двух-мерных (небольшие, не более 100 элементов), в функции эти массивы сразу ресайзятся пеередаваемый туда параметром.Иногда после долгого гоняния эксперта в оптимизаторе, и последущего тестирования начинают вылезать различные ошибки работы с массивами. Проверка показывает, что локальные массивы имеют нулевой размер, а массив передаваемый по ссылке - размер правильный. Просто перекомпиляция эксперта без всяких изменений устраняет эту ошибку, на что думать не пойму... Может кто сталкивался с подобным, или я чего накосячил?

bool ProbabCalc (int Params,  int OffSet,  int Variant, int& Param_D[])
{
  int Param_Mass [][4],Param_Digital [][3],;

  Print(ArrayResize (Param_Mass, Params));
  Print(ArrayResize (Param_Digital, Params));
  Print(ArrayResize (Param_D,Params));
 
Figar0 >>:

У меня тоже с массивами нескладушки, отловить с документальным подтвержедением пока не удалось, выглядит это так:

Функция, в ней 3 массива, один передаваемый по ссылке (одномерный), и два локальных двух-мерных (небольшие, не более 100 элементов), в функции эти массивы сразу ресайзятся пеередаваемый туда параметром.Иногда после долгого гоняния эксперта в оптимизаторе, и последущего тестирования начинают вылезать различные ошибки работы с массивами. Проверка показывает, что локальные массивы имеют нулевой размер, а массив передаваемый по ссылке - размер правильный. Просто перекомпиляция эксперта без всяких изменений устрает эту ошибку, на что думать не пойму... Может кто сталкивался с подобным, или я чего накосячил?

Собственно история у меня похожая. Работает эксперт. Запускает оптимизацию на тестере стратегий, сохраняет результат этой оптимизации, разбирает файл, параметры пишет в массив. Массив локальный. После этого происходит выборка параметров из массива и обновление переменных в работающем эксперте. При всем при этом эксперт не перекомпелируется, терминал не перезагружается, инициализации эксперта не происходит. Ошибки до определенного момента небыло, потом начала вылазить. Может быть переполнение памяти или зависание этой оптимизации где-то в терминале остаётся незнаю. Сейчас занимаюсь функцией проверки всего выше описанного.


TheXpert >>:

Каким макаром в массиве оказалось столько строк? Если в файле их всего 6000.



Для меня тоже это странный момент. Файл небольшой, колличество строк совпадает. Переменных не так много, откуда что выпалзает пока не ясно. Постараюсь подготовить эксперта который этот момент выявит, если сам не разберусь в чём проблема.

 
HIDDEN >>:

Для меня тоже это странный момент. Файл небольшой, колличество строк совпадает. Переменных не так много, откуда что выпалзает пока не ясно. Постараюсь подготовить эксперта который этот момент выявит, если сам не разберусь в чём проблема.

Тогда очень похоже на бесконечный цикл, который вылетает по какому-то ограничению, вполне возможно, и из-за нехватки памяти, может и по другой причине.

Вобщем если выложите кусок соответствующего кода и файл, помощи наверное будет больше.

 

Под капотом скрипт который показывает проблему я думаю полностью.

Файл оптимизации распаковать и положить в папку \experts\files\


При запуске скрипта, в тойже папке создаются 2 файла

FileTest1.csv - Осторожно! Объём получается под 700Mb.

FileTest2.csv


Сама идея анализа взята из статьи статьи.


Голова кипит, решения так и не найду никак, прошу помощи или хотя-бы совета.

Файлы:
 

поправил... Ты Кирилл, запутался в фигурных скобках и в логике поиска дублёров...

Если дублёр найден, то из цикла нужно выходить. Зачем искать дальше?

Файлы:
 
KimIV >>:

поправил... Ты Кирилл, запутался в фигурных скобках и в логике поиска дублёров...

Если дублёр найден, то из цикла нужно выходить. Зачем искать дальше?

Опередил, я только начал разбираться. Значит можно пойти покурить.

 

Спасибо.

Со скобками беда, раз ошибок не выдаёт значит все путем. А с логикой да, что-то не досмотрел.

Причина обращения: