Как релизовать?

 

1. Если нет открытых ордеров с нашим MAGIС, то

2.   ordersend  //открыли ордер

3. Если не открылся (реквот и тп), то снова шаг 2.

и то же  самое с закрытием.

 

А в чём собственно проблема?

1. Перебрать все открытые ордера и проверить есть ли среди них твой мэджик.

2.1 если есть, то ничего не делать

2.2 если нет, то открыть ордер

эта процедура повторяется на каждом тике.

 
а  3. ?
 

и в чем проблема?

 

КАК РЕАЛИЗОВАТЬ?

Тема так называется еще)

 
вам только что описали решение шагайте на ветку к Киму собирайте нужные кирпичики и стройте...
 

если ордер не открылся и getlasterror вернул ошибку 138 (реквоты), то опять пункт 2

 
for(int k=0;k<OrdersTotal();k++)
{
   OrderSelect(k,SELECT_BY_POS);
   if(OrderMagicNumber()==наш_меджик)return(0);
}
OpenOrder();
if(GetLastError()==138)OpenOrder();
 
еще вопрос по ходу- как в журнале отображаются реквоты при работе советника
 
requote 1.3660 / 1.3663 for open sell 0.05 EURUSD at 1.3664 sl: 0.0000 tp: 0.0000
requote 1.1237 / 1.1241 for order #5601828 buy 0.04 USDCHF closing at 1.1241
 
shevss >>:
а  3. ?

Не надо п.3. Если ордер не открылся по какой-либо причине, то на повторе п.1 обнаружится, что такого ордера нет и будет повторная попытка открыться. Т.е. весь алгоритм в два шага.

Приличные люди анализируют причины неоткрытия ордера, но это уже за рамками данного вопроса.

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