Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Roma
1019
Roma 2016.04.08 18:41 
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
Alexey Volchanskiy
17135
Alexey Volchanskiy 2016.04.08 18:47  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
С потоками MQL4/5 не работает, так что только выносить расчеты во внешнюю DLL и там открывать поток с вычислениями.
Yuriy Asaulenko
3476
Yuriy Asaulenko 2016.04.08 19:17  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.
Никак. Но если оч хочется, то можно. Открываете еще неск графиков и туда цепляете индикаторы-советники для фоновых задач.
Yuriy Asaulenko
3476
Yuriy Asaulenko 2016.04.08 19:22  
Alexey Volchanskiy:
С потоками MQL4/5 не работает, так что только выносить расчеты во внешнюю DLL и там открывать поток с вычислениями.
При этом, эт д.б. DLL-сервер, т.е экзешник.
Ihor Herasko
9262
Ihor Herasko 2016.04.08 20:03  
Yuriy Asaulenko:
При этом, эт д.б. DLL-сервер, т.е экзешник.
Почему? Достаточно лишь самой DLL. Передача информации из MQL в DLL - вызов функции DLL, а обратно - событие на графике индикатора.
Sergey Pavlov
9388
Sergey Pavlov 2016.04.08 20:12  
Roma:
Подскажите как индикатору или эксперту производить расчёты в фоновом режиме – т.е. не тормозя польз интерфейс.

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

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

Пожалуй.

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

OnTick()

{

j=1;

while(j==1)

{

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

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

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

}

}

В DeInit() { j=0}.

Как-то так.

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