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

 
coderex:
может это конструктор структуры? он ведь есть в любом случае
А что так неуверенно? Конечно это он :)
 
Andrey Barinov:
А что так неуверенно? Конечно это он :)
да не уверенно, потому как не знаешь уже чего ожидать, обновил терминал до 1395 и теперь не знаю как откатить на 1375, потому как робот перестал отрабатывать то что должен...
 
Andrey Barinov:
А что так неуверенно? Конечно это он :)
Ок а где деструктор ?
 
Vladimir Pastushak:
Ок а где деструктор ?
Главное - где всё остальное?
 

Оффлайн-тестер после нажатия на "Старт" не возвращается к исходному состоянию - кнопка "Стоп" горит постоянно. Происходит это, когда интервал тестирования выходит за пределы имеющейся истории.

2016.08.28 10:19:48     Core 1  RTS-9.16: read container failed
2016.08.28 10:19:48     Core 1  RTS-9.16: ticks synchronization started
2016.08.28 10:19:48     Core 1  RTS-9.16: history synchronized from 2015.06.22 to 2016.08.25
2016.08.28 10:19:48     Core 1  RTS-9.16: load 2651 bytes of history data to synchronize in 0:00:00.016
2016.08.28 10:19:48     Core 1  RTS-9.16: symbol synchronized, 3224 bytes of symbol info received
2016.08.28 10:19:48     Core 1  RTS-9.16: symbol to be synchronized
....
2016.08.28 10:19:41     Tester  RTS-9.16,M1 (BCS-MetaTrader5): testing of Experts\Test.ex5 from 2016.08.01 00:00 to 2016.08.28 00:00

 

 
Прошу объяснить, почему нельзя использовать конструкцию, что в коде? И как изменить (видимо, новый для MQL  вид указателей), чтобы такая конструкция работала? И будет ли она тормозить?
void f1( int i1, int i2, int i3, int i4, int i5 ) {}
void f2( int i1, int i2, int i3, int i4, int i5 ) {}

void OnStart()
{  
  bool Condition = true;
  
//  (Condition) ? f1(1, 2, 3, 4, 5) : f2(1, 2, 3, 4, 5); // 'f1', 'f2' - expression of 'void' type is illegal

  if (Condition)
    f1(1, 2, 3, 4, 5);
  else
    f2(1, 2, 3, 4, 5);
  
  (Condition ? f1 : f2)(1, 2, 3, 4, 5); // Почему так нельзя? Как сделать, чтобы можно было?
}
 
fxsaber:
Прошу объяснить, почему нельзя использовать конструкцию, что в коде? И как изменить (видимо, новый для MQL  вид указателей), чтобы такая конструкция работала? И будет ли она тормозить?

Попробуй так

int b = (Condition) ? f1(1, 2, 3, 4, 5) : f2(1, 2, 3, 4, 5);
 

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

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

A100, 2016.08.25 14:49

Ошибка при выполнении 

в более сложном варианте воспроизводится как: EX5 loading failed

В build 1398 ошибка 'EX5 loading failed' осталась (видимо не была связана с тем примером)

//Script1.mq5
typedef void (*fn)();
#import "Script2.ex5"
        void g( fn );
#import "Script3.ex5"
        void h();
#import
void OnStart() { g( h ); }
//Script2.mq5
#property library
typedef void (*fn)();
void g( fn f ) export { f(); }
//Script3.mq5
#property library
void h() export {}
 
Vladimir Pastushak:
Вы сами пользуетесь стораджем ?

Отвечаю через 4 дня. Но как говорится, лучше поздно чем никогда.

Редко, но пользуюсь хранилищем. В основном чтобы сохранить проделанную работу, от потери. С компьютера на компьютер , тоже переношу через сторадж. Раньше пользовался яндекс -диском. Но там чтобы перенести вот сколько манипуляций надо сделать.

На первом компе: открыть ЯД- выбрать файл- загрузить

На втором компе- приёмнике: открыть ЯД- выбрать файл- скачать- создать в редакторе новый код- скопировать туда скачанный код -скомпелировать.

И не возникает дополнительной путаницы с версиями расположенными на ЯД.

У меня вот какой вопрос.  Хранилище работает.  Подключаются разные компы, код переносится. А вот с аккаунта хранилище не просматривается. Не появляется кнопка "Просмотр". В папке Projects файлы есть.

 

Здравствуйте. Используется функция ChartSetInteger (MT5 1395 билд), для изменения высоты окна индикатора: 

 if(!ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS, 1, subWindowPixels))
    {
        Print(__FUNCTION__+", Error Code = ",GetLastError());
        return;
    } 
После изменения размера окна таким способом, окно индикатора блокируется, и вручную его изменить уже нельзя.
В соседней теме https://www.mql5.com/en/forum/59754, решением подобной проблемы для МТ4, являлась установка размера окна индикатора в 0 пикселей, однако на МТ5 подобный прием не работает. Подскажите пожалуйста, можно ли как-то решить данную проблему? Спасибо.