Разница между барами

 

Здравствуйте, подскажите пожалуйста. В следующем коде получаю время закрытия последнего ордера для определенной бумаги:

for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime();
break;
}

Я хотел бы, что бы следующий ордер по этой бумаге можно было бы открыть только спустя три бара, то есть на четвертом, но не раньше. Как сделать проверку?

 
first_may:

Здравствуйте, подскажите пожалуйста. В следующем коде получаю время закрытия последнего ордера для определенной бумаги:

for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime();
break;
}

Я хотел бы, что бы следующий ордер по этой бумаге можно было бы открыть только спустя три бара, то есть на четвертом, но не раньше. Как сделать проверку?

1. есть специальная тема вопросы для новичка

2. почему вы решили, что таким кодом вы обязательно узнаете время последнего ордера?

 
ilunga:

1. есть специальная тема вопросы для новичка

2. почему вы решили, что таким кодом вы обязательно узнаете время последнего ордера?


В документации написано: datetime OrderCloseTime( ) Возвращает время закрытия для выбранного ордера... А в теме вопросы для новичка я не нашел или плохо искал :(.
 
first_may:

В документации написано: datetime OrderCloseTime( ) Возвращает время закрытия для выбранного ордера... А в теме вопросы для новичка я не нашел или плохо искал :(.

1. вот именно, выбранного, а не последнего. То есть Ваш код найдет первый же ордер в истории, закрытый на данном символе и остановится, запомнив его время

2. в теме для новичка следует задавать свои вопросы, она специально сделана, чтобы не было огромного количества тем по 3-4 сообщения

3. смотрите iBarShift

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