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

 
Mihail Matkovskij:

Никто его и не отрицает. Просто бывает концепция, когда есть один экран в виде канвы. В свою очередь, та же пользовательская канва (массив пикселей) рисуется на канве окна (чарта). Точнее, он сначала передаётся чарту (копируется) с помощью ResourceCreate (в OBJ_BITMAP либо OBJ_BITMAP_LABEL). В окне же чарта всё рисуется с помощью Win API (если не ошибаюсь). Хотя, можно и с помощью других API это делать. А вот в классе CCanvas прописаны свои методы рисования на элементах массива m_pixels.

Получается, рисуя маленький прямоугольник потом всё равно приходится передавать множество пикселей с помощью ResourceCreate (экономится время только на рисовании). А так можно просто перемещать OBJ_BITMAP_LABEL по графику, без обработки массива m_pixels и последующего его копирования OBJ_BITMAP_LABEL.

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

ЗЫ Прошу прощения, только сейчас увидел, что в текущей версии iCanvas в КБ нет реализации этого метода, а только его декларация. Сейчас поправлю. 

bool iCanvas::MoveCanvas(const int x,const int y) {
   if(ObjectSetInteger(m_chart_id,m_objname,OBJPROP_XDISTANCE,x) && ObjectSetInteger(m_chart_id,m_objname,OBJPROP_YDISTANCE,y))  return(true);
   else return(false);
}

Поправил


Файлы:
iCanvas.mqh  45 kb
Movement.mq5  2 kb
 
Nikolai Semko:

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

ЗЫ Прошу прощения, только сейчас увидел, что в текущей версии iCanvas в КБ нет реализации этого метода, а только его декларация. Сейчас поправлю. 

Поправил


То что в CCanvas нет перемещения это не страшно. Любой внимательный пользователь поймёт, что перемещается канва с помощью перемещения её объекта чарта. А это стандартные функции. Поэтому, любой может дописать недостающие методы. Или написать свои методы рисования и прочие... Можно делать всё, что угодно. Исходный код CCanvas можно изучать.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 

У меня перестала работать портативная версия MetaEditor (/portable в свойствах ярлыка). Произошло это с сегодняшним обновлением. Убрал /portable из свойств, редактор запустился, но с настройками из установленного терминала и MetaEditor-а. Также, рабочие каталоги он использует не из моей папки с портативной версией. Терминал вроде продолжает нормально запускаться с опцией /portable, но  MetaEditor также не запускается по нажатию F4. Пишет в журнале:

2020.07.14 20:00:17.560 Error MetaEditor not found

Как теперь можно наладить портативную версию терминала и редактора для нормальной работы?

 
Mihail Matkovskij:

У меня перестала работать портативная версия MetaEditor (/portable в свойствах ярлыка). Произошло это с сегодняшним обновлением. Убрал /portable из свойств, редактор запустился, но с настройками из установленного терминала и MetaEditor-а. Также, рабочие каталоги он использует не из моей папки с портативной версией. Терминал вроде продолжает нормально запускаться с опцией /portable, но  MetaEditor также не запускается по нажатию F4. Пишет в журнале:

Как теперь можно наладить портативную версию терминала и редактора для нормальной работы?

Вышло очередное обновление. Решил проверить MetaEditor. Добавляю /portable в свойства ярлыка, запускаю и всё заработало. Все настройки и рабочие каталоги на месте, как и было ранее.

 

Возможно ли штатными способами сделать следующее?


  1. Просматриваю лог через ПКМ->Просмотр. Там использую фильтр. 
  2. В полученном результате нахожу нужную строку.
  3. Хочу увидеть, что было до и после этой строки в логе, если фильтр отключить.
Никак не получается это сделать. Приходится запоминать время и примерное содержание строки, а потом отключать фильтр и по запомненному искать вручную ее.
 
fxsaber:

Возможно ли штатными способами сделать следующее?


  1. Просматриваю лог через ПКМ->Просмотр. Там использую фильтр. 
  2. В полученном результате нахожу нужную строку.
  3. Хочу увидеть, что было до и после этой строки в логе, если фильтр отключить.
Никак не получается это сделать. Приходится запоминать время и примерное содержание строки, а потом отключать фильтр и по запомненному искать вручную ее.

Штатный просмотрщик логов - очень неудобный (включая и указанный use case), приходится пользоваться внешними программами.

 
Дайте, плиз, какие-нибудь наводки (линки, предложения) по поводу того, как в тестере в режиме математических вычислений хранить и обновлять общее состояние алгоритма. Идея с общим файлом выглядит неубедительно. Фреймы ходят только в одну сторону (от агента в терминал).
 

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

Что-то сломалось в автовалидаторе маркета мт4.

Пытался пройти автовалидацию 5-6 раз разными советниками.

Всегда эта ошибка

ь

Даже тот советник, который вчера прошел автовалидацию, сегодня автовалидацию уже не проходит

Вот сообщение о вчерашней успешной валидации

т

реально что-то сломалось

 
Denis Nikolaev:

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

Что-то сломалось в автовалидаторе маркета мт4.

Пытался пройти автовалидацию 5-6 раз разными советниками.

Всегда эта ошибка

Даже тот советник, который вчера прошел автовалидацию, сегодня автовалидацию уже не проходит

Вот сообщение о вчерашней успешной валидации


реально что-то сломалось

Спасибо за сообщение. Исправлено.

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