OrderSelect

 

Подскажите, мне нужно что бы советник проверил наличие текущего ордера, если такой ордер есть то возвращаемся в начало, если нету текущих ордеров то продолжаем.

Достаточно ли указать так ?!

for(i=0; i<OrdersTotal(); i++){

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){

break; }}

 

Этим Вы проверили есть ли какие то позиции в рынке. Вам это нужно ?

Так это проверяется проще if( OrdersTotal()>0).

Удачи

 

Нет. OrderSelect предназначен для выбора ордера и работы с ним. Закрытие\удаление, перестановка стопов\тейков и т.п.

После выбора ордера, как правило проверяют его на соответствие символу, магику и только после таких проверок принимается решение о дальнейших действиях.

 
vlad1949:

Этим Вы проверили есть ли какие то позиции в рынке. Вам это нужно ?

Так это проверяется проще if( OrdersTotal()>0).

Удачи


Спасибо, именно это и нужно.

Тогда получается можно так написать:

if(OrdersTotal()==0) (остальной функционал советника)

так ?

 
Rafting:


Спасибо, именно это и нужно.

Тогда получается можно так написать:

if(OrdersTotal()==0) (остальной функционал советника)

так ?


Если нет необходимости отличать отложенные ордера от рыночных, то так. Если нужно учитывать только рыночные позиции, а отложенные можно игнорировать, то циклом.