Вот к примеру код
//| 111.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
datetime Timer;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
if(!EventSetTimer(60))
Print("Cannot initialize timer");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if((TimeCurrent()-Timer)>50)
{
EventKillTimer();
OnTimer();
if(!EventSetTimer(1))
{
Print("Error of set timer. Error = ",GetLastError());
}
else
{
Print ("Timer initialized");
}
}
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
Timer=TimeCurrent();
}
//+------------------------------------------------------------------+
на терминале метаквотов (чистом) все аботает
на 4х значном брокера 1 все работает
на 5ти значном с суффиксами брокера 2 не работает
при том не работает вообще никак, не инициализируется и все тут.
как решить проблему?
Не совсем понятно зачем внутрь OnTick() пихаем OnTimer()
Какая задача решаеться?
Из справки:
Рекомендуется вызывать функцию EventSetTimer() однократно в функции OnInit(), а функцию EventKillTimer() вызывать однократно в OnDeinit().
Возможно они как-то конфликтуют между собой!
Не совсем понятно зачем внутрь OnTick() пихаем OnTimer()
Какая задача решаеться?
(должно) решается то, что ели с ОнИнит не вызвался, то походу с ОнТик точно вызовется
а он не вызывается вообще не как
не обычно, не с извращениями по коду...
я уже психовать начинаю... ррр.......... бредятина какая-то
(должно) решается то, что ели с ОнИнит не вызвался, то походу с ОнТик точно вызовется
а он не вызывается вообще не как
не обычно, не с извращениями по коду...
я уже психовать начинаю... ррр.......... бредятина какая-то
У тебя этот принт выходит?
Print("Cannot initialize timer");
Посмотрю у себя
Может у кого есть самописная функция таймера чтобы подходила и для тестера тоже?
Смотря какая задача решается, если нужен таймер от секунды, то вполне достаточно использовать TimeLocal(). Всё зависит от задачи
Вот секундный
Selected(); // что-то делаем
Paused=TimeLocal();
}
Смотря какая задача решается, если нужен таймер от секунды, то вполне достаточно использовать TimeLocal(). Всё зависит от задачи
Вот секундный
Selected(); // что-то делаем
Paused=TimeLocal();
}
идею понял
спс
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот к примеру код
//| 111.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
datetime Timer;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
if(!EventSetTimer(60))
Print("Cannot initialize timer");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if((TimeCurrent()-Timer)>50)
{
EventKillTimer();
OnTimer();
if(!EventSetTimer(1))
{
Print("Error of set timer. Error = ",GetLastError());
}
else
{
Print ("Timer initialized");
}
}
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
Timer=TimeCurrent();
}
//+------------------------------------------------------------------+
на терминале метаквотов (чистом) все аботает
на 4х значном брокера 1 все работает
на 5ти значном с суффиксами брокера 2 не работает
при том не работает вообще никак, не инициализируется и все тут.
как решить проблему?