Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Отслеживай все платежи в профиле. Это просто!
Zendom
9
Zendom 2013.08.29 06:32 

Здравствуйте!

Я новичок в программирование на языке mqlи наткнулся на такую проблему!

Задача простая но не пойму почему не работает:

Открыт ордер Bay с TP=50 SL=0

Нужно его закрыть Если текущая цена опустилась ниже самой низкой цены предыдущего бара.

Я делаю так:

///////////////////////////////////////////////////////////////////////////////////

for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер

{

if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий

{

//Закрытие ордера Bay

if(Ask>iLow(NULL,0,1))

{

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),2,Red);

}

}

}

///////////////////////////////////////////////////////////////////////////////////

Буду рад выслушать поучения. Всем заранее СПАСИБО!!!

Valeriy Korobeynik
24363
Valeriy Korobeynik 2013.08.29 09:47  

Попробуйте if(Bid<iLow(NULL,0,1)).

ilunga
744
ilunga 2013.08.29 13:04  
Zendom:

 for(int i=1; i<=OrdersTotal(); i++) // Нумерация ордеров с нуля, а не с единицы


Должно выглядеть так:


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

А еще лучше в обратную сторону:

for(int i=OrdersTotal(); i>=0; i--)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий