Ошибки, баги, вопросы - страница 905

 

Здравствуйте!

1 У меня такая проблема-когда пытаюсь в индикаторе использовать символ, не тот что на графике, к которому прикреплен индикатор, то он не рисует и выходит ошибка 4806...если символы совпадают, то все рисует нормально..в чем проблема?....язык начал недавно изучать... 

 
vlad_123:

Картинку подправил.

Вот расчеты: 

Показывают, что оптимизатор дурит народ :-)

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

Да и значения результатов оптимизатора не такие, как получается при ручном подсчете. 

А вы уверены, что числа "1.90" и "2.03" именно такие, а не являются результатом округления до второго знака при показе в отчете?

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

 
Yedelkin:
 Совершенно верно. Нет ни в Справочнике, ни в обоих Руководствах пользователя. Спасибо за ссылку.

Ссылка указывает на копию справки. В справке все это было и есть с самого начала:


 
x100intraday:

 И всё-таки.

 Интересуюсь непосредственно у разработчиков: каков алгоритм дальнейших моих действий? Надо что-то решать с "MemoryException 180772428 bytes not available" (закладка Журнал) и "out of memory" (закладка Эксперты). Оформлять ли заявку в СД?

Увеличить объем памяти, перейти на 64 бита, уменьшить объем баров на чарте или переписать код на более экономный вид.

Если программа говорит что не хватает памяти, значит так оно и есть.

 
Renat: Ссылка указывает на копию справки. В справке все это было и есть с самого начала:

Я по-русски спросил: "Что такое "MetaAssist" и где о нём почитать?". Рош ответил, что "Под этим понятием можно понимать всё, что описано в разделе...". При этом ни Вы, ни Рош не ответили, что же такое "MetaAssist". Поэтому не надо ссылаться на раздел "Интеллектуальное управление", если в русскоязычных справочных материалах в принципе нет такого термина, как "MetaAssist". Раздел "Интеллектуальное управление" я и без Вашей помощи бы нашёл.

Иными словами, в справочных материалах не было и нет такого термина, как "MetaAssist", что полностью опровергает Ваше утверждение о том, что "В справке все это было и есть с самого начала".

 
Renat:

А вы уверены, что числа "1.90" и "2.03" именно такие, а не являются результатом округления до второго знака при показе в отчете?

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

Я согласен, что для первой строки скриншота результат оптимизатора 439639 сравним с результатом ручного вычисления 444801 и разбежку можно объяснить округлением.

Вопрос вызывает вторая строка, в которой оптимизатор насчитал 373049, а вручную получилось 504383. 

 
Renat:
Это временный баг, уже исправлен и будет доступен в официальном билде на этой неделе. Пока вышла только бета версия на нашем демо-сервере.
Исправлено в 742 билде. Спасибо.
 
Renat:

Увеличить объем памяти, перейти на 64 бита, уменьшить объем баров на чарте или переписать код на более экономный вид.

Если программа говорит что не хватает памяти, значит так оно и есть.

 Ну как так, Renat?! При 1 Гб памяти not available порядка 100 Мб. Добавил 3 Гб (но так как XP x32 видит максимум 3 Гб, то будем считать, что только 2 добавил) - результат не изменился. Файл подкачки увеличил с 1.5 Гб до 10 Гб (гулять так гулять) - опять впустую, ошибка всё та же. Сколько ещё румяных гусарских Гб нужно вляпать, чтобы заделать маленькую дыру в 100 Мб? Должно же у этого обстоятельства быть разумное логическое объяснение. В коммерческие тайны кода MT5 я не лезу, мне это и не нужно, но признание вами факта внесения каких-то изменений в один из билдов, съедающих теперь память, было бы вполне честным шагом.

 За руководство к действию выражаю искреннюю благодарность. Всё это, конечно, хорошо, Renat. Но уж больно очевидно и тривиально. Мне только и остаётся, что заниматься односторонней оптимизацией того, что беззаботно работало ещё каких-то полгода тому назад. Но рекомендаций в одну сторону всё же недостаточно. Разве я похож на новоявленного программиста, вопиющего оттого, что никак не получается создать мой первый "Hello, world!"? Вовсе нет. Испорчено не мной то, что когда-то работало и не нуждалось в исправлении.

 А вот где, спрашивается, уведомления о том, что новый билд стал кушать больше? Я, как чесный индеец, при каждом обновлении терминала иду на форум и тщательно изучаю каждый пункт нововведений и исправлений. Но вот что-то не припомню, чтобы там был хоть какой-то намёк на "а не пора ли обзавестись новыми вычислительными мощностями, приятель?.. а желательно сразу сервером!". Ну поймите же: не у всех есть такая возможность. Я и так встал на уши и разжился четырьмя одинаковыми (как рекомендуется в мануалах к матплатам) устаревшими и недешёвыми модулями по Гигабайту каждый, причём достиг архитектурного предела, более добавлять некуда и нечего. А ещё через полгода ждать очередной сюрприз от MQ?

 Нам, MQL-программистам, несопоставимо сложнее подстраиваться под ваши новые билды MT5: вы-то знаете, что модифицируете, удаляете и добавляете, а мы этого знать не знаем (не считая явных нововведений команд, функций, библиотек и т. п., которые мы обязаны изучить, чтобы идти в ногу с терминалом и языком). Выходит, что ваш инструмент - логика, а нам остаётся интуитивный поиск, адаптация наугад и выгребание протухшего кода. Как-то это несправедливо, что ли.

 В общем, на x64 я обязательно скоро протестирую и отпишусь, но что-то мне подсказывает...

 
x100intraday:

 Ну как так, Renat?! При 1 Гб памяти not available порядка 100 Мб. Добавил 3 Гб

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

Лучше всего опубликовать тут в форуме полный код и сразу же обнаружится проблемное место. Если нельзя тут, то можно в сервисдеске (код после проверок будет удален).

ps: у нас не возникает никогда вопросов, когда операционка выдает, что недостаточно памяти и мы никогда не виним Майкрософт в этом.

 

после тихого обновления к последнему билду, удалённые агенты стали отваливаться:

FD      0       Tester  23:27:14        expert file added: Experts\grider1.1.ex5. 18867 bytes loaded
KR      3       Network 23:27:14        wrong optimized parameter 7
OG      2       Tester  23:27:14        requested data synchronization error
DR      0       Tester  23:27:14        tester agent shutdown