Нужна пауза после закрытия ордера

[Удален]  
Здесь есть тема про паузу между открытиями позиций. Но мне нужно организовать паузу после закрытия позиции до открытия новой.
Попытался увидеть OrderCloseTime, но не получается.

int z= HistoryTotal();
if (OrderSelect (z,SELECT_BY_POS,MODE_HISTORY))
{
datetime oct=OrderCloseTime();
Comment ("Order Close Time is ", TimeToStr(oct,TIME_SECONDS));
}
else
Comment ("Ошибка № ", GetLastError());


Какие есть идеи?
Заранее спасибо!

 
int z= HistoryTotal();
возвращает общее количество ордеров в Истории (допустим 10). При этом список ордеров начинается с нуля. Дальше сами...

ЗЫ Даже если бы пример был корректным, не факт, что последний закрытый ордер будет находиться на позиции z.
[Удален]  
Спасибо. Это я понял ещё из Документации (там тоже в примере 10. А чего десять?) А как мне выйти на номер последнего ордера в истории?
Я пробовал for(z=1,z<=0,z++)..., но результат тот же
 
Почитайте

24. Техника скользящего стопа

[Удален]  
Rosh:
Почитайте

24. Техника скользящего стопа

Спасибо! Прочитал. Написал необходимый минимум

for ( int z=0;z<HystoryTotal();z++)
{
if (OrderSelect (z,SELECT_BY_POS,MODE_HISTORY))
{
datetime oct=OrderCloseTime();
Comment ("Order Close Time is ", TimeToStr(oct, TIME_SECONDS));
}
else
Comment ("Ошибка № ", GetLastError());
}

При компиляции выдает ошибку: 'HystoryTotal' - function is not defined
 
Попробуйте HistoryTotal(), пожалуй мне хватит.
 
HistoryTotal()
 
Rosh:
Попробуйте HistoryTotal(), пожалуй мне хватит.
=)))


Спасибо! Прочитал. Написал необходимый минимум

Нет, этого недостаточно.
Надо находить последний закрытый ордер, сравнивая все ордера.
Что-то типа этого:
    datetime lastclose = -1;
    int _GetLastError = 0, _OrdersTotal = HistoryTotal();
 
    for ( int z = _OrdersTotal - 1; z >= 0; z -- )
    {
        if ( !OrderSelect( z, SELECT_BY_POS, MODE_HISTORY ) )
        {
            _GetLastError = GetLastError();
            Print( "OrderSelect( ", z, ", SELECT_BY_POS, MODE_HISTORY ) - Error #", _GetLastError );
            continue;
        }
        if ( OrderMagicNumber() != _MagicNumber ) continue;
        if ( OrderSymbol() != _Symbol ) continue;
        if ( OrderCloseTime() <= lastclose ) continue;
        lastclose = OrderCloseTime();
    }
[Удален]  
komposter:
Rosh:
Попробуйте HistoryTotal(), пожалуй мне хватит.
=)))


Спасибо! Прочитал. Написал необходимый минимум

Нет, этого недостаточно.
Надо находить последний закрытый ордер, сравнивая все ордера.


Спасибо!
Оказалось вполне достаточно исправить ошибку в HistoryTotal().
[Удален]  
Итоговый код для паузы в 1 минуту:

for ( int z=0;z<HistoryTotal();z++)
{
if (OrderSelect (z,SELECT_BY_POS, MODE_HISTORY))
datetime oct=OrderCloseTime();
}
if(CurTime()-oct<60) return(0);
 
Gorillych:

Спасибо!
Оказалось вполне достаточно исправить ошибку в HistoryTotal().
Насколько я помню, если история будет отсортирована не по тикету, ваш код вернёт неправильный клоустайм.
В любом случае, мой надежнее