Скачать MetaTrader 5

Фоновые расчёты

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Roma
1019
Roma  
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
Alexey Volchanskiy
20880
Alexey Volchanskiy  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
С потоками MQL4/5 не работает, так что только выносить расчеты во внешнюю DLL и там открывать поток с вычислениями.
Yuriy Asaulenko
4115
Yuriy Asaulenko  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
Никак. Но если оч хочется, то можно. Открываете еще неск графиков и туда цепляете индикаторы-советники для фоновых задач.
Yuriy Asaulenko
4115
Yuriy Asaulenko  
Alexey Volchanskiy:
С потоками MQL4/5 не работает, так что только выносить расчеты во внешнюю DLL и там открывать поток с вычислениями.
При этом, эт д.б. DLL-сервер, т.е экзешник.
Ihor Herasko
12127
Ihor Herasko  
Yuriy Asaulenko:
При этом, эт д.б. DLL-сервер, т.е экзешник.
Почему? Достаточно лишь самой DLL. Передача информации из MQL в DLL - вызов функции DLL, а обратно - событие на графике индикатора.
Sergey Pavlov
10190
Sergey Pavlov  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.

На видеокарте.

Yuriy Asaulenko
4115
Yuriy Asaulenko  
Ihor Herasko:
Почему? Достаточно лишь самой DLL. Передача информации из MQL в DLL - вызов функции DLL, а обратно - событие на графике индикатора.

Пожалуй.

Я тут для подобных задач цикл придумал. Эксперт пустой. Ну, там еще немного.

OnTick()

{

j=1;

while(j==1)

{

sleep(v);  //системный в мс

//проверка внешних событий

//..........................

}

}

В DeInit() { j=0}.

Как-то так.

Alexey Volchanskiy
20880
Alexey Volchanskiy  
Yuriy Asaulenko:
Никак. Но если оч хочется, то можно. Открываете еще неск графиков и туда цепляете индикаторы-советники для фоновых задач.
Да, но придется извращаться с синхронизацией, ибо атомарные операции в МТ4/5 не поддерживаются
Alexey Volchanskiy
20880
Alexey Volchanskiy  
Вы сами пробовали? Как видяха позволяет организовать независимые потоки?
Alexey Volchanskiy
20880
Alexey Volchanskiy  
Yuriy Asaulenko:
При этом, эт д.б. DLL-сервер, т.е экзешник.
М-м-м-м, почему сервер? Вы даете ДЛЛ команду открыть поток, в потоке исполняется нужная функция. Когда поток завершается, в ДЛЛ выставяется флаг завершения расчетов. Ну а ваш советник/индюк по таймеру проверяет этот флаг. Если флаг взведен, считываем результаты расчетов.
Dmitry Fedoseev
45909
Dmitry Fedoseev  
Только индикаторы тормозят пользовательский интерфейс. Эксперты не тормозят. У эксперта при вычислениях только сложности с открытием окна свойств.
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий