По всей видимости, Вы пытаетесь выставить чрезмерно большой размер массива.
Код для примера:
В 214 билде мы исправили ошибку с непереинициализируемостью статических переменных в библиотеках после окончания работы эксперта. Теперь библиотеки принудительно переинициализируются после выполнения функции deinit. Поищите причины в своих библиотеках.
Код для примера:
int start() { double arr[]; //---- ArrayResize(arr,2000000000); ArrayInitialize(arr,2000000000); //---- return(0); }Выдает как раз такие строки в лог файле:
Test EURUSD,M1: ArrayInitialize function internal error Test EURUSD,M1: cannot resize the arrayЯвным образом контролируйте размер выделяемых блоков (особенно в библиотеках), пожалуйста.
В 214 билде мы исправили ошибку с непереинициализируемостью статических переменных в библиотеках после окончания работы эксперта. Теперь библиотеки принудительно переинициализируются после выполнения функции deinit. Поищите причины в своих библиотеках.
Сразу упало тестирвание и оптимизация. Ни одного прохода не прошло? А если запустить тестирование без оптимизации?
Доброе время суток.
Ренат,
я не совсем подробно описал ситуацию.
1. перед апдейтом на 214 на терминале работала оптимизация эксперта, а на графиках N-количество копий оптимизируемого эксперта
2. после перезапуска эксперта по завершении апдейта, я решил продолжить процесс оптимизации. Вот эдесь-то и обнаружилось следующее
а- после начала оптимизации 1-й проход завершился успешно (результаты, статистика и пр.), все следующие проходы проскочили за пару секунд с нулевыми результатами
б- в режиме тестирования аналогично - первый после загрузки или перекомпиляции проход завершается успешно. Все последующие, без каких-было изменений в эксперте приводят к результату, который я выслал в логе.
С 213-м билдом (как и с предыдущими) этот код работает и на тестах и в реальном времени.
Относительно размеров массивов - они вполне разумные (если не сказать малые)
К тому-же на первом проходе тестера или оптимизатора проблем нет.
Сразу к вопросу о компе (Core2 3000Мгц ОЗУ 2 Гб - available 1 040 000)
Ренат,
я не совсем подробно описал ситуацию.
1. перед апдейтом на 214 на терминале работала оптимизация эксперта, а на графиках N-количество копий оптимизируемого эксперта
2. после перезапуска эксперта по завершении апдейта, я решил продолжить процесс оптимизации. Вот эдесь-то и обнаружилось следующее
а- после начала оптимизации 1-й проход завершился успешно (результаты, статистика и пр.), все следующие проходы проскочили за пару секунд с нулевыми результатами
б- в режиме тестирования аналогично - первый после загрузки или перекомпиляции проход завершается успешно. Все последующие, без каких-было изменений в эксперте приводят к результату, который я выслал в логе.
С 213-м билдом (как и с предыдущими) этот код работает и на тестах и в реальном времени.
Относительно размеров массивов - они вполне разумные (если не сказать малые)
#define DISPLAY_INDIC_MAX 19 // trend dimensions double UP[][DISPLAY_INDIC_MAX][2]; double DOWN[][DISPLAY_INDIC_MAX][2]; double TOP[][DISPLAY_INDIC_MAX][2]; //double BOT[][DISPLAY_INDIC_MAX][2]; double TRD[][DISPLAY_INDIC_MAX][2]; double TRDS[][DISPLAY_INDIC_MAX][2];
void nnsInit(){ if(inited) return; tfInit(); tfNUM=tfSize(); ArrayResize(UP,tfNUM); ArrayInitialize(UP,0); ArrayResize(DOWN,tfNUM); ArrayInitialize(DOWN,0); ArrayResize(TOP,tfNUM); ArrayInitialize(TOP,0); ArrayResize(TRD,tfNUM); ArrayInitialize(TRD,0); ArrayResize(TRDS,tfNUM); ArrayInitialize(TRDS,0);Ну и собственно tfNUM
//+------------------------------------------------------------------+ //| My data | //+------------------------------------------------------------------+ static int _TF[]={0,PERIOD_M1,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4,PERIOD_D1,PERIOD_W1,PERIOD_MN1}; static int _TFUSED[][2]; static datetime _TFCALCTIME[][2]; static bool _TFCALC[][2]; //+------------------------------------------------------------------+ //| My function | //+------------------------------------------------------------------+ int tfSize(){ return(ArraySize(_TF)); }Гигабайтами тут не пахнет :)
К тому-же на первом проходе тестера или оптимизатора проблем нет.
Сразу к вопросу о компе (Core2 3000Мгц ОЗУ 2 Гб - available 1 040 000)
Можете выслать мне на renat AT metaquotes.ru в ZIP архиве полные исходники эксперта с библиотеками для проверки?
Я их удалю после тестов.
Я их удалю после тестов.
Renat:
Можете выслать мне на renat AT metaquotes.ru в ZIP архиве полные исходники эксперта с библиотеками для проверки?
Я их удалю после тестов.
Вы писали:Можете выслать мне на renat AT metaquotes.ru в ZIP архиве полные исходники эксперта с библиотеками для проверки?
Я их удалю после тестов.
В 214 билде мы исправили ошибку с непереинициализируемостью статических переменных в библиотеках после окончания работы эксперта. Теперь библиотеки принудительно переинициализируются после выполнения функции deinit. Поищите причины в своих библиотеках.
==============================================================================
Это серьезная модификация и скорее всего причина трабла с последующими проходами тестера и оптимизатора именно в инициализации/деинициализации статической памяти.
Спасибо за информацию, сначала проверю повторную входимость с учетом инициализации статики в библиотеках.
Если ситуация окажется блокирующей, сообщу Вам и вышлю тексты.
Renat:
Можете выслать мне на renat AT metaquotes.ru в ZIP архиве полные исходники эксперта с библиотеками для проверки?
Я их удалю после тестов.
Можете выслать мне на renat AT metaquotes.ru в ZIP архиве полные исходники эксперта с библиотеками для проверки?
Я их удалю после тестов.
Простой пример эксперта с необходимыми конструкциями массивов и логами я выслал Вам по почте.
Надеюсь Ваш адрес я понял правильно.
Несколько попутных наблюдений:
1. аналогичные функции работы с массивами в составе библиотек, которые линкуются непосредственно в тело эксперта по типу
#include "libraries\AllOrdersLib.mq4" #include "libraries\AllSignalsControl.mq4" #include "libraries\TradeBusyLib.mq4" #include "libraries\ProcessOrders.mq4" #include "libraries\TradePauseLib.mq4"на вскидку работают (по крайней мере без вывала при переинициализации), но полной уверенности пока нет ( см. п 2)
2. более простые по структуре зксперты, в которых используется инициализация и изменение разиеров массивов в принципе стартовали и отработали,
НО !
- с каждым последующим запуском время прохода теста (я 1.1.2007 по сегодня) увеличивается раза в 1.5-2.
- Результат теста "плавает"
- по показаниям Task Manager память утекает с приличной скоростью
К счастью сохранил 213 билд от 18 числа, он на оптимизации работает сутками (как впрочем и предыдущие радакции)
Спасибо, будем разбираться.
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
satco, спасибо за сообщение об ошибке. Мы её нашли и исправили.
Renat:
Спасибо, будем разбираться.
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
Добрый день,Спасибо, будем разбираться.
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
майлер вроде подтвердил доставку письма, в Вашем адрес, если есть необходимость могу повторить на stringo
Но как я понял из сообщения stringo вы уже разобрались в ситуации.
Спасибо вам за оперативность!
Когда ожидать исправленного билда ?
Renat:
Спасибо, будем разбираться.
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
Спасибо, будем разбираться.
К сожалению, не получил письма. Попробуйте продублировать его на stringo AT metaquotes.ru (вместо AT нужно поставить @).
Предыдущий вопрос снят.
Скачал и установил 215.
Проблема исчезла.
Успешных Вам разработок и внедрений!
Александр.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сегодня 26.03.2008 30-минут назад терминал bild 213 проапдейтился до bild 214
И сразу УПАЛО ТЕСТИРОВАНИЕ И ОПТИМИЗАЦИЯ ЭКСПЕРТА :(
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: cannot resize the array
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
2008.03.26 19:05:08 2007.01.01 00:00 sgnLib EURUSD,H1: ArrayInitialize function internal error
Рекомпиляция эксперта и библиотек в него входящих положение дел не исправило.
Что случилось с функцией ArrayInitialize ???