Пишу советник нужна помощь

 

Дневной график. Как написать выполнение функции, если произошло открытие нового бара. Неоходим именно момент открытия бара.

Например:

bool OpenBar()

{

res=false;

if (произошло открытие нового бара на дневном графике)

{

res=true;

}

return(res);

}

 
serega393 >>:

Дневной график. Как написать выполнение функции, если произошло открытие нового бара. Неоходим именно момент открытия бара.

Например:

bool OpenBar()

{

res=false;

if (произошло открытие нового бара на дневном графике)

{

res=true;

}

return(res);

}

Почитай сюда

 

Можно так (если я правильно понял вопрос):

int ExpertBars;// в глобальных переменных

int init()
  {
ExpertBars = Bars;
   return(0);
  }
//-------------------------------------------
int start()
  {
 bool isNewBar=false;
if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; }
 if (isNewBar) {// ЕСЛИ ПОЯВИЛСЯ новый бар 
здесь делать всё то, что нужно по ценам открытия
               }
 
// попробуй

if(Volume[0]<2 && ....)
 
leonid553 писал(а) >>

Можно так (если я правильно понял вопрос):

int ExpertBars;// в глобальных переменных

int init()
  {
ExpertBars = Bars;
   return(0);
  }
//-------------------------------------------
int start()
  {
 bool isNewBar=false;
if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; }
 if (isNewBar) {// ЕСЛИ ПОЯВИЛСЯ новый бар 
здесь делать всё то, что нужно по ценам открытия
               }

Bars - Количество баров на текущем графике. Надо чтоб именно на дневном графике. Например: советник включён на минутном или любом другом, а расчёт открытия бара проводился на дневном.

 
KONDOR писал(а) >>
// попробуй

if(Volume[0]<2 && ....)
Тоже самое Volume на текущем графике, надо советник запущен на любом графике, а расчёт открытия бара именно на дневном.
 

Ну тогда вот:

(не совсем то, но по аналогии - сами там сообразите...)

extern int       timeFr=0; //задаем нужный тф
datetime OpenTime;
//----------------------------------------------------
if ( iBarShift(NULL,timeFr,OpenTime)!= 0) {
//делаем - что нужно ...
OpenTime = iTime(NULL,timeFr,0);
                                       }
 

Всем спасибо, проблему решил...

bool OpenBar()

{

bool res=false;

if (iVolume(Symbol(),PERIOD_D1,0)<2)

{

res=true;

}

return(res);

}

 

ну как советничег торгует немного??)))

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