Ну совсем с нуля!

 

1. инит старт запускается по любому когда приходит минутный тик?

2. мне нужно чтобы инит старт запускался когда приходит бар например 5 минутный

объясните чайнику

 
BAM:

1. инит старт запускается по любому когда приходит минутный тик?

2. мне нужно чтобы инит старт запускался когда приходит бар например 5 минутный

объясните чайнику


1. Init() запускается при старте

2. Start() запускается на каждом тике

3. Для работы по ценам открытия бара произвольного таймфрейма нужен контроль нового бара на нужном таймфрейме

 
BAM:

1. инит старт запускается по любому когда приходит минутный тик?

2. мне нужно чтобы инит старт запускался когда приходит бар например 5 минутный

объясните чайнику


Если время нулевого бара больше записанного в переменной, то

{

Записываете время текущего бара в переменную;

Выполняете что вам нужно

}

 
start(){
  if(iVolume("USDCHF",PERIOD_M5,0)>1) return(0);
  .
  .
  .
  return(0);
}
может так?
 
valenok2003:
может так?

Плохо, но для тестера сойдет.
 
BAM:

1. инит старт запускается по любому когда приходит минутный тик?

2. мне нужно чтобы инит старт запускался когда приходит бар например 5 минутный

объясните чайнику


Для всего использую функцию NewBar():


if(NewBar == true)
{
//код 
}

//вне старта следует функция:

bool NewBar()
{
  static datetime lastbar = 0;
  datetime curbar = Time[0];
  if(lastbar != curbar)
  {
    lastbar = curbar;
    return(true);
  }
  else
  {
    return(false);
} }
 

https://book.mql4.com/ru/variables/arrays

Очень рекомендую топикстартеру и всем прочим, желающим исполнять какие-нибудь операции не на каждом тике, а когда они сами считают нужным :)

 
tara:

https://book.mql4.com/ru/variables/arrays

Очень рекомендую топикстартеру и всем прочим, желающим исполнять какие-нибудь операции не на каждом тике, а когда они сами считают нужным :)


к сожалению пример только для текущего ТФ, а не для произвольного
 
Figar0:

Плохо, но для тестера сойдет.

как лучше?
 
valenok2003:

как лучше?


Вариант лучше тремя постами выше.

Первый тик бара и весь бар при торговле советника на счете может быть пропущен, например советник открывал или закрывал ордера, или был занят рассчетами ( в момент прихода первого тика уже /или все еще выполнялась функция start). Кратковременный дисконнект в момент прихода первого тика так же приведет к пропуска бара. Потому - только для тестера, для торговли лучше сравниватть время бара с временем уже обработаного бара.

 

Удивлен что все еще есть люди использующие тики для контроля нового бара.

Похоже они очень много пропустили. Или потеряли. Что одно и то же.

Причина обращения: