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

 
A100:
А какая связь с моим примером? Замените Print на Print2 и результат будет одинаковым!

Прямая связь! Две сигнатуры в исходном примере. Одна из которых штатная.

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

 
fxsaber:

Прямая связь! Две сигнатуры в исходном примере. Одна из которых штатная.

И какая по Вашему здесь вторая сигнатура? якобы штатная? Неужели такая?
void Print( int& )
 
A100:
И какая по Вашему здесь вторая сигнатура? якобы штатная? Неужели такая?

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя. Объяснение дал. Не нравится - на здоровье.

 
fxsaber:

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя. Объяснение дал. Не нравится - на здоровье.

Это не объяснение потому что если бы (2) была бы штатной, то следующий пример
#define PRN             { printf( "%s", __FUNCSIG__ ); }
  void Print( const int& ) PRN //(1) //пользовательская
//void Print(       int& )     //(2) //якобы штатная
  void Print(       int& ) PRN //(3) //пользовательская
void OnStart()
{
        const int i = 0;
              int j = 0;
        Print( i );
        Print( j );
}
выдавал бы ошибку ещё на этапе компиляции: (2) и (3) конфликтуют. А все компилируется и выполняется нормально. И в исходном примере в отсутствии void Print( int& ), должна вызываться void Print( const int& ), а не штатная void Print(...)
 
A100:
в исходном примере в отсутствии void Print( int& ), должна вызываться void Print( const int& ), а не штатная void Print(...)

Не должна.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.09.23 17:08

Сами знаете, что Print - нечто не имеющее аналогов в MQL5 для пользователя.

Не понимаю, зачем из этого делать проблему. Штатный Print имеет черти какую сигнатуру, не укладывающуюся в MQL5-возможности.

 
fxsaber:

Не должна.

Не понимаю, зачем из этого делать проблему. Штатный Print имеет черти какую сигнатуру, не укладывающуюся в MQL5-возможности.

Проблемы нет... есть ошибка. Тоже не понимаю зачем пытаться за уши притянуть объяснение. Штатный Print имеет следующую сигнатуру:

и тоже умеет конфликтовать с другими функциями (если потребуется)

 
A100:

Проблемы нет... есть ошибка. Тоже не понимаю зачем пытаться за уши притянуть объяснение. Штатный Print имеет следующую сигнатуру:

и тоже умеет конфликтовать с другими функциями (если потребуется)

Сигнатура Print выбивается за пределы возможностей языка MQL5. Если в MQL5 запретят совсем делать перегрузки Print, это не будет ошибкой.

Надеюсь, данный "баг" не мешает Вам создавать ТС и не требует написания костылей.

 

Замерил производительность Тестера. Для этого на каждом тике открывал и закрывал позицию. Замерял время выполнения 100 тиков. И так прогнал 100 000 тиков. Итого 1000 замеров. Получил такой график

Какие-то всплески замедления почти на одинаковом расстоянии между друг другом. Замерял в режиме Оптимизации. Если не обращать внимание на всплески, то производительность Тестера пляшет на 25%, вместо постоянного значения. Возможно, это снова приколы замера скорости в ОС Windows.


ЗЫ Тот же самый код запустил на MT4

В среднем на обработку одного тика MT4-Тестер затрачивает раза в 1.5-2 меньше времени, чем MT5.

Файлы:
Tester.mq5  2 kb
 

Возможно, всплески через использование генетического алгоритма оптимизации.


... на каждом тике открывал и закрывал позицию.

В среднем на обработку одного тика MT4-Тестер затрачивает раза в 1.5-2 меньше времени, чем MT5.
А это уже чистой воды манипуляции и введение в заблуждение.
 
Sergey Dzyublik:

Возможно, всплески через использование генетического алгоритма оптимизации.

ГА нет. Оптимизация из двух проходов на одном Агенте.

А это уже чистой воды манипуляции и введение в заблуждение.

Исходник на месте.