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

 
Подскажите пожалуйста, в metatrader5 в папке MQL5/logs сохраняются логи за последние 7 дней. Это где то меняется в настройках или это баг-терминала?
 

Вот 2 предложения.

1- сделать вариант (кнопка) остановки оптимизации и переход к форвард оптимизации.

Тоесть, это должна была быть быстрая считалка. Но он считает и считает... А мне форвард также интересен, приходится ждать.

Иногда надо поподробнее посчитать, подольше, а иногда надо кратко. 

Нужны 2 кнопки - продлить оптимизацию и остановить оптимизацию, с переходом к форварду.

2- Панели инструментов опять сползли в 2 яруса! Дочка маленькая была, как-то сказала "скатывается и скатывается - скатина!"...)

Вот и тут всё скатываются и скатываются панельки во 2 ряд. Уже надоело их назад переносить (в один ряд). Уже почините это! Сколько места пропадает!

 

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

Последовательность действий такая.

  1. Компилируем индикатор, размещаем на чарте, убеждаемся, что выведен 0 ("капслок" не включен).
  2. Переключаемся в ME, включаем CapsLock, делаем перекомпиляцию. Возвращаемся в терминал. По логам убеждаемся, что старый индикатор выгрузился, а новый загрузился. Однако состояние "капслок" по прежнему возвращается как 0.
  3. Если убрать индикатор с чарта и повесить его заново, то капслок распознается нормально - выводится 1.

Что за чудеса? При перезагрузке по компиляции какие-то переменные окружения не чистятся или еще что?

Файлы:
CapsLock.mq5  1 kb
 
Stanislav Korotky:

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

Последовательность действий такая.

  1. Компилируем индикатор, размещаем на чарте, убеждаемся, что выведен 0 ("капслок" не включен).
  2. Переключаемся в ME, включаем CapsLock, делаем перекомпиляцию. Возвращаемся в терминал. По логам убеждаемся, что старый индикатор выгрузился, а новый загрузился. Однако состояние "капслок" по прежнему возвращается как 0.
  3. Если убрать индикатор с чарта и повесить его заново, то капслок распознается нормально - выводится 1.

Что за чудеса? При перезагрузке по компиляции какие-то переменные окружения не чистятся или еще что?

А если так?

void OnDeinit(const int reason)
{
  if (ind != INVALID_HANDLE)
  {
    IndicatorRelease(ind);
  }
}
 
Vitaly Muzichenko:

А если так?

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

 
Stanislav Korotky:

При перезагрузке по компиляции какие-то переменные окружения не чистятся или еще что?

Да, это баг. Индикатор или советник - без разницы.

 
Stanislav Korotky:

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

Последовательность действий такая.

  1. Компилируем индикатор, размещаем на чарте, убеждаемся, что выведен 0 ("капслок" не включен).
  2. Переключаемся в ME, включаем CapsLock, делаем перекомпиляцию. Возвращаемся в терминал. По логам убеждаемся, что старый индикатор выгрузился, а новый загрузился. Однако состояние "капслок" по прежнему возвращается как 0.
  3. Если убрать индикатор с чарта и повесить его заново, то капслок распознается нормально - выводится 1.

Что за чудеса? При перезагрузке по компиляции какие-то переменные окружения не чистятся или еще что?

Опрос состояния клавиш - специфическая операция.

Реальное состояние клавиш отдаётся только для активного окна. Это сделано специально, чтобы при обработке OnChartEvent неактивное окно не получило интерференцию

 

Пользовательский символ, выход найден в журнале журнала Что это значит?

2019.12.11 00:07:13.252    History    'DA6_CUSTOM' invalid container 2014.01.02 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.254    History    'DA6_CUSTOM' invalid container 2014.01.03 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.254    History    'DA6_CUSTOM' invalid container 2014.01.05 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.254    History    'DA6_CUSTOM' invalid container 2014.01.06 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.255    History    'DA6_CUSTOM' invalid container 2014.01.07 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.255    History    'DA6_CUSTOM' invalid container 2014.01.08 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.255    History    'DA6_CUSTOM' invalid container 2014.01.09 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.256    History    'DA6_CUSTOM' invalid container 2014.01.10 symbol settings - digits: 4, tick size: 0
2019.12.11 00:07:13.256    History    'DA6_CUSTOM' invalid container 2014.01.12 symbol settings - digits: 4, tick size: 0


[Удален]  
Slava:

Опрос состояния клавиш - специфическая операция.

Реальное состояние клавиш отдаётся только для активного окна. Это сделано специально, чтобы при обработке OnChartEvent неактивное окно не получило интерференцию

Скажите, а не планируется в OnChartEvent добавить Windows Events? Бывает - что пришли какие-то данные извне, и через dll можно сразу сгенерировать событие для чарта, чтобы забрать данные, а не опрашивать данные по таймеру. Можно было бы в OnChartEvent ждать события от Windows Event по его имени.

Раньше в MT4 баловались с эмуляцией нового тика через PostMessage, чтобы вызвать срабатывание эксперта на чарте.

 
Slava:

Опрос состояния клавиш - специфическая операция.

Реальное состояние клавиш отдаётся только для активного окна. Это сделано специально, чтобы при обработке OnChartEvent неактивное окно не получило интерференцию

Мда, вот один из моря случаев, когда на лицо неполнота документации. Подробности выясняются по капле, только после возникновения проблем.