Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1321

 
Кто еще может помочь? Как сделать паузу в тиках или свечах(бара), не заснуть (Sleep), а именно например после закрытия сделки 100 баров не торговать, ничего не делать, чтобы функция и в тестере работала и на реале. 
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить. В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды.
 
Порт-моне тв:
Кто еще может помочь? Как сделать паузу в тиках или свечах(бара), не заснуть (Sleep), а именно например после закрытия сделки 100 баров не торговать, ничего не делать, чтобы функция и в тестере работала и на реале. 

найти последний закрытый ордер в истории с Вашим магиком и символом

у этого ордера будет доступно время закрытия

каждый тик узнавать сколько сейчас времени и вычитать это время от найденного времени закрытого ордера, а счем сравнивать дело Ваше, хоть в барах - у бара есть время открытия и ТФ, хоть просто в секундах


единственная проблема - первый ордер, нужно при определении последнего закрытого ордера если не нашли в истории, то вернуть 0, т.е. 1970.01.01


писать код не буду - в КИМовских функциях должно быть как найти последний закрытый ордер

 
Igor Makanu:

найти последний закрытый ордер в истории с Вашим магиком и символом

у этого ордера будет доступно время закрытия

каждый тик узнавать сколько сейчас времени и вычитать это время от найденного времени закрытого ордера, а счем сравнивать дело Ваше, хоть в барах - у бара есть время открытия и ТФ, хоть просто в секундах


единственная проблема - первый ордер, нужно при определении последнего закрытого ордера если не нашли в истории, то вернуть 0, т.е. 1970.01.01


писать код не буду - в КИМовских функциях должно быть как найти последний закрытый ордер

вы мне лучше скажите как это работает. 

  int WaitXBars = 100;

   datetime signalTime = TimeCurrent();

    if (iBarShift(NULL,0, signalTime) < 100) return; // to skip.. 


В тестере не хочет. А то что вы написали - сложно и отталкивает. 

 
Порт-моне тв:

вы мне лучше скажите как это работает. 

  int WaitXBars = 100;

   datetime signalTime = TimeCurrent();

    if (iBarShift(NULL,0, signalTime) < 100) return; // to skip.. 

input int WaitXBars = 100;
//+------------------------------------------------------------------+
void OnStart()
{
   int WaitXBarsInSec = PeriodSeconds() * WaitXBars;
   if(TimeCurrent() - LastOrderCloseTime() > WaitXBarsinSec)
   {
      // выставим новый ордер
   }
Порт-моне тв:

 А то что вы написали - сложно и отталкивает. 

ничего не имею против, ждите может кто подскажет как проще, я как надежнее предложил

 
Порт-моне тв:

вы мне лучше скажите как это работает. 

  int WaitXBars = 100;

   datetime signalTime = TimeCurrent();

    if (iBarShift(NULL,0, signalTime) < 100) return; // to skip.. 

у вас всегда текущий бар - нулевой
и он всегда меньше 100, так как НОЛЬ меньше СТА
вам написали что нужно время последней закрытой позиции
и даже указали где искать

там даже есть функция которая возвращает номер бара, уже все готово


 
Igor Makanu:

ничего не имею против, ждите может кто подскажет как проще, я как надежнее предложил

если есть возможность - пришлите пример с кодом по сделке, ничего в инете не нашел

 
Порт-моне тв:

если есть возможность - пришлите пример с кодом по сделке, ничего в инете не нашел

https://www.mql5.com/ru/forum/131859

 
Iurii Tokman:

у вас всегда текущий бар - нулевой
и он всегда меньше 100, так как НОЛЬ меньше СТА
вам написали что нужно время последней закрытой позиции
и даже указали где искать

там даже есть функция которая возвращает номер бара, уже все готово


что-то я не никак въехать не могу, гже указывается количество баров ожидания тогда?

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Если указаны параметры start_time и stop_time, то функция возвращает количество баров в диапазоне дат. Если эти параметры не указаны, то функция возвращает общее количество баров. Если данные для таймсерии с указанными параметрами при вызове функции Bars() еще не сформированы в терминале, или данные таймсерии в момент вызова функции не...
 
что-то я не никак въехать не могу, гlе указывается количество баров ожидания тогда?
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Если указаны параметры start_time и stop_time, то функция возвращает количество баров в диапазоне дат. Если эти параметры не указаны, то функция возвращает общее количество баров. Если данные для таймсерии с указанными параметрами при вызове функции Bars() еще не сформированы в терминале, или данные таймсерии в момент вызова функции не...
 
Порт-моне тв:
что-то я не никак въехать не могу, гlе указывается количество баров ожидания тогда?

в вашем примере уже указано
только время нужно поменять