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

 

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

в видео пример

 
Dmitry Melnichenko:

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

в видео пример

MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"

Смотреть пост #1.

 

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

https://www.mql5.com/ru/forum/6343/page1020#comment_11112212

Коротко: на фьючерсах (в тестере) сделки открываются и закрываются (по SL/TP), но всегда с нулевой прибылью. Может это быть багом тестера? Или какая-то хитрость нужна?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2019.03.26
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 

Баг компилятора.  При компиляции (проверке синтаксиса) файла .mqh с таким кодом не выдаётся ошибка.  Она выдаётся только при компиляции исполняемого файла, что неудобно.

class A
{
 public: 
  A(int) {  }
};

class B : public A { };  // Здесь должна быть ошибка  'A' - wrong parameters count

B b;
 
Alexey Navoykov:

Баг компилятора.  При компиляции (проверке синтаксиса) файла .mqh с таким кодом не выдаётся ошибка.  Она выдаётся только при компиляции исполняемого файла, что неудобно.

Потому что хэдер не компилируется в принципе :)))

Если заставить целиком компилировать хэдер, вы огребете множество ложных ошибок.

PS. Компилятор C++ без использования таких классов тоже не ругается.
 
Andrey Pogoreltsev:

Потому что хэдер не компилируется в принципе :)))

Если заставить целиком компилировать хэдер, вы огребете множество ложных ошибок.

PS. Компилятор C++ без использования таких классов тоже не ругается.

Я в курсе, что не компилируется.  Речь идёт о проверке синтаксиса (что в ME тоже называется термином "Компилировать"), ведь я в прошлом посте даже уточнил это в скобках.  Если в компиляторе C++ тоже запустить проверку синтаксиса (через командную строку обычно), то он будет ругаться как миленький.

 
Alexey Navoykov:

Я в курсе, что не компилируется.  Речь идёт о проверке синтаксиса (что в ME тоже называется термином "Компилировать"), ведь я в прошлом посте даже уточнил это в скобках.  Если в компиляторе C++ тоже запустить проверку синтаксиса (через командную строку обычно), то он будет ругаться как миленький.

Смотрите, если не указать:

B b;

то C++ отлично компилирует данный код. Значит синтаксис верен. Проблема начинается на уровне создания объектников, потому что именно там будут аллоцироваться объекты классов.

Просто представьте себе template, который вы ну никак не проверите на использование в хэдере. Что должен делать компилятор в данном случае? Или, допустим, надо std:lower реализовать для структуры, и в *.h нет реализации... Тоже компилятор не должен ругаться на этапе проверки же.

Можете уточнить, как из командной строки вы проверяете синтаксис для *.h чтобы ругалось на данный код? Интересно стало)

 
Andrey Pogoreltsev:

Смотрите, если не указать:

то C++ отлично компилирует данный код. Значит синтаксис верен.

Интересная у вас логика )  А если вообще удалить весь код, значит синтаксис ещё более верен? )  Я привёл конкретный код.  Речи не шло о том, что именно класс B некорректен.  Его вполне можно использовать для вызова статических методов и т.д.

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

Не стоит подменять понятия.  Шаблон проверяется только в момент его раскрытия конкретными типами, это понятное дело.

Можете уточнить, как из командной строки вы проверяете синтаксис для *.h чтобы ругалось на данный код? Интересно стало)

Тут я не подскажу, т.к. не стал заморачиваться с такими бубнами,  а написал себе макрос для VS, делающий компиляцию хедера.  Для этого он на лету переключает режим текущего документа на cpp, проводит компиляцию, затем возвращает обратно.  Простенько и со вкусом.

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

 
Alexey Navoykov:

Мне вообще не понятно, почему в студии нет нормальной штатной опции для проверки синтаксиса хедеров.

Ctrl+F7 , такое сочетание есть начиная наверное минимум с 2008 студии - компилировать отдельный файл
 
TheXpert:
Ctrl+F7 , такое сочетание есть начиная наверное минимум с 2008 студии - компилировать отдельный файл
Речь шла о хедерах.  А данное сочетание относится к cpp. По крайней мере у меня в 2010 студии так.