Будущее MQL5 - MQL5+ или даже MQL6 - страница 8

 
Karputov Vladimir:

Не знаю что такое одновременное тестирование на нескольких ТФ, а вот то, что нельзя переключаться на другие ТФ хотя бы после тестирования, не есть гуд. Ну а переключаться во время визуального тестирования было бы просто шикарно.
 

Будущее... ну-ну. "Спасибо, поржал" (с)



 
При оптимизации хотелось бы увидеть результат прохода в процентах, а не в тех числах которые отображаются в столбце "Результат". Да и в бэктесте неплохо было бы рядом с результатом "Чистая прибыль" указывалась прибыль в %.
 
Rinat Tukaev:
При оптимизации хотелось бы увидеть результат прохода в процентах, а не в тех числах которые отображаются в столбце "Результат". Да и в бэктесте неплохо было бы рядом с результатом "Чистая прибыль" указывалась прибыль в %.
Вставьте свою формулу в обработчик события OnTester() и смотрите такой результат, какой Вам необходим.
 
Yury Reshetov:
Вставьте свою формулу в обработчик события OnTester() и смотрите такой результат, какой Вам необходим.
Спасибо! не знал)
 
Предлагаю сделать, чтобы глобальные переменные программы не пересекались с переменными и параметрами в подключаемых модулях, в MQL4 и MQL5. А то объявил в советнике переменную point и читаю кучу сообщений вида: "declaration of 'point' hides global declaration in file 'expert.mq4' at line 153    ChartObject.mqh    154    39". Ведь, єто ужас кокой то, в модуле, программе, нельзя объявить переменную, которая есть в параметрах другого модуля. Зачем модулю ChartObject.mqh видеть мой советник, expert.mq4, если в ChartObject.mqh єто не указано явно?
 
Mihail Matkovskij:
Предлагаю сделать, чтобы глобальные переменные программы не пересекались с переменными и параметрами в подключаемых модулях, в MQL4 и MQL5. А то объявил в советнике переменную point и читаю кучу сообщений вида: "declaration of 'point' hides global declaration in file 'expert.mq4' at line 153    ChartObject.mqh    154    39". Ведь, єто ужас кокой то, в модуле, программе, нельзя объявить переменную, которая есть в параметрах другого модуля. Зачем модулю ChartObject.mqh видеть мой советник, expert.mq4, если в ChartObject.mqh єто не указано явно?
Очевидно вам поможет
#property strict
 
Igor Volodin:
Очевидно вам поможет
Да, в советнике данная строчка у меня есть, но её нет в модуле ChartObject.mqh. Не стану же я переписывать все стандартные модули из-за этого...
 
Mihail Matkovskij:
Да, в советнике данная строчка у меня есть, но её нет в модуле ChartObject.mqh. Не стану же я переписывать все стандартные модули из-за этого...


Понял. Тогда не создавайте глобальных переменных. Без них вполне можно обходиться. Иначе при любом совпадении, например очень распространенное имя:

int i;

 глобально объявленное будет затираться локально объявленными. О чем вас и предупреждают.

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

 
Igor Volodin:


Понял. Тогда не создавайте глобальных переменных. Без них вполне можно обходиться.

То есть, как это не создавать? В любом языке программирования свободно используются глобальные переменные и это нормально, а здесь компилятор ругается. И хоть ошибка не критичная, но всё равно неудобно.

double point = MarketInfo(EA_Symbol(), MODE_POINT);

Переменная point сообщает цену 1 пункта и является заменой стандартному Point. Функция MarketInfo(EA_Symbol(), MODE_POINT) даёт цену 1 пункта любого инструмента. Далее, переменную point можно использовать в любой функции, в теле советника, если она является глобальной переменной конечно же. Согласитесь что, подобные случаи вызывают определённые неудобства и довольно часто (если вы конечно имеете опыт программирования на MQL). И хоть их можно обойти, но, вопрос, зачем, если в других современных ЯП подобных проблем попросту нет?