Скачать MetaTrader 5

Вопросик [можно ли заставить скрипт в терминале постоянно самому запускаться?] - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как купить продукт в MetaTrader AppStore? Прочитай статью об этом!
Vitalie Postolache
12135
Vitalie Postolache 2014.01.17 20:25  
mikhail12:
Может проще зацикливающий элемент в советник поставить, и придумать как бороться с обновлением цикла, то есть его перезагрузкой как бы.

while(!IsStopped){} в помощь. В скобки впихнуть всё остальное. В новых билдах ещё есть OnTimer(), это изящнее, но только не работает со скриптами.
yellownight
617
yellownight 2014.01.17 20:38  
mt4Ticker отличное решение, спасибо еще раз
yellownight
617
yellownight 2014.01.17 20:44  

DataCenter connecting failed [6] - это сервер отторгает терминал?


Выскочило такое разок, когда зацикливание работало

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2014.01.17 20:57  
mikhail12:
mt4Ticker отличное решение, спасибо еще раз

Не за что ! Удачи и профитов.
Ahmad Mehdiyev
478
Ahmad Mehdiyev 2014.01.17 20:58  
mikhail12:

DataCenter connecting failed [6] - это сервер отторгает терминал?


Выскочило такое разок, когда зацикливание работало


Если это вопрос ко мне то я абсолютно не в курсе.
Vadim Zhunko
5227
Vadim Zhunko 2014.01.18 00:52  
mikhail12:
mt4Ticker отличное решение, спасибо еще раз

Вот этим можно без удалённого приложения. Автономные тики прям в терминале.

 //==================================================================================================================================================
 // 4.7. Функции для управления обновлением графика.
 //==================================================================================================================================================
 // 4.7.1. Функция запускает обновление всех графиков с указанным периодом. Если обновление уже запущено, то функция меняет период обновления графиков.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshAllCharts(int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //==================================================================================================================================================
 // 4.7.2. Функция запускает обновление всех графиков однократно. Вызов функции при работающих других режимах останавливает обновление всех графиков.
 void ServiceRefreshAllOnceCharts();
 //==================================================================================================================================================
 // 4.7.3. Функция запускает обновление указанного графика с указанным периодом. Если обновление уже запущено, то функция меняет только период обновления графика.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshChart(int hwndChart,        // Системный дескриптор обновляемого графика.
                          int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //==================================================================================================================================================
 // 4.7.4. Функция запускает обновление автономных графиков с указанным периодом. Если обновление уже запущено, то функция меняет период обновления графиков.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshOfflineCharts(int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //==================================================================================================================================================
 // 4.7.5. Функция запускает обновление online-графиков с указанным периодом. Если обновление уже запущено, то функция меняет период обновления графиков.
 //        Останавливается обновление функциями "ServiceStopRefreshChart()" или "ServiceStopRefreshAllCharts()" или закрытием графика.
 void ServiceRefreshOnlineCharts(int nPeriodMilliSec); // Период обновления графика в миллисекундах.
 //==================================================================================================================================================
 // 4.7.6. Функция останавливает обновление указанного графика.
 void ServiceStopRefreshChart(int hwndChart); // Системный дескриптор графика, на котором останавливается обновление.
 //==================================================================================================================================================
 // 4.7.7. Функция корректно останавливает обновление всех графиков при bTerminate = FALSE, иначе функция завершает обновление аварийно.
 void ServiceStopRefreshAllCharts(int bTerminate); // Флаг аварийной остановки потоков обновления графиков.
                                                   // FALSE - потоки останавливаются корректно, TRUE - потоки останавливаются аварийно.
 //==================================================================================================================================================
 // 4.7.8. Функция эммулирует тик для эксперта на указанном графике.
 void ServiceTickExpert(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.
 //==================================================================================================================================================
 // 4.7.9. Функция эммулирует тик для индикаторов на указанном графике.
 void ServiceTickIndicators(int hwndChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.
 //==================================================================================================================================================
yellownight
617
yellownight 2014.01.18 14:53  
Zhunko:

Вот этим можно без удалённого приложения. Автономные тики прям в терминале.

Спасибо, тоже отличная вещь.

набор функций

Вот только регулировка периода обновления не видно. И параметров других много идет, изучить придется)

Vadim Zhunko
5227
Vadim Zhunko 2014.01.18 15:55  
mikhail12:

Спасибо, тоже отличная вещь.

Вот только регулировка периода обновления не видно. И параметров других много идет, изучить придется)

:-)) Это тестовый скрипт со всеми функциями библиотеки!!! Он не предназначен для Вашей задачи. Берите из него пример кода использования конкретной функции и вставляйте в свой код.

Смена периода обновления это вызов той же функции с другим значением параметра. Читайте описание функции. Всё расписано.

yellownight
617
yellownight 2014.01.18 16:17  
Zhunko:

:-)) Это тестовый скрипт со всеми функциями библиотеки!!! Он не предназначен для Вашей задачи. Берите из него пример кода использования конкретной функции и вставляйте в свой код.

Смена периода обновления это вызов той же функции с другим значением параметра. Читайте описание функции. Всё расписано.


// 4.7.8. Функция эммулирует тик для эксперта на указанном графике. Функция возвращает TRUE в случае успеха, иначе - FALSE.

if (TickExpert) while (!IsStopped()) {ServiceTickExpert(hwndChart); Sleep(1000);} // Системный дескриптор окна графика, для эмуляции тика для эксперт.

работает, только один варн в компиляции 'tickexpert'- comparison expression expected

Vadim Zhunko
5227
Vadim Zhunko 2014.01.18 16:23  
mikhail12:

Пардон, а где код для void ServiceTickExpert(int hwndChart); взять.

// 4.7.8. Функция эммулирует тик для эксперта на указанном графике. Функция возвращает TRUE в случае успеха, иначе - FALSE.

if (TickExpert) while (!IsStopped()) {ServiceTickExpert(hwndChart); Sleep(1000);} // Системный дескриптор окна графика, для эмуляции тика для эксперт.

Вот оно?


Да. Только это не автономное обновление. Так надо будет держать работающий скрипт или советник.
Функции от 4.7.1 по 4.7.7 для атономного обновления. Надо только один раз запустить. Потом будет работать без MQL-программ.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий