Не знаю, что в ней не так, она мне просто не нравится. Такой вариант
все же привычней и информативней для меня
//+------------------------------------------------------------------+//| разворачивает одну позицию из множества!!! |//+------------------------------------------------------------------+intBuySellReversTrue(){intTP,SL;
doubleclosePrice;
//----for(inti=OrdersTotal()-1;i>=0;i--){if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue;
if(OrderSymbol()!=Symbol())continue;
if(OrderType()==OP_SELL && OpenLong()==1){if(SecondsAfterOpenLastPos()>3600){closePrice=Ask;
if(OrderClose(OrderTicket(),OrderLots(),closePrice,3,CLR_NONE)){OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0);
return(1);
}else{RefreshRates();
Print("Не удалось закрыть ордер в продажу #",OrderTicket()," по цене ",closePrice," текущий Ask=",Ask," код ошибки ",GetLastError());
}}}if(OrderType()==OP_BUY && OpenShort()==1){if(SecondsAfterOpenLastPos()>3600){closePrice=Bid;
if(OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE)){OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0);
return(2);
}else{RefreshRates();
Print("Не удалось закрыть ордер в покупку #",OrderTicket()," по цене ",closePrice," текущий Bid=",Bid," код ошибки ",GetLastError());
}}}}return(0);
//----}
Приходится все додумывать самому. Это последний раз.
//+------------------------------------------------------------------+//| разворачивает одну позицию из множества!!! |//+------------------------------------------------------------------+intBuySellReversTrue(){intTP,SL;
doubleclosePrice;
stringSymbolName;
//----for(inti=OrdersTotal()-1;i>=0;i--){if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue;
if(OrderSymbol()!=Symbol())continue;
if(OrderType()==OP_SELL && OpenLong()==1){if(SecondsAfterOpenLastPos()>3600){SymbolName=OrderSymbol();
closePrice=MarketInfo(SymbolName,MODE_ASK);
if(OrderClose(OrderTicket(),OrderLots(),closePrice,3,CLR_NONE)){OrderSend(SymbolName,OP_BUY,0.1,closePrice,3,0,0);
return(1);
}else{RefreshRates();
Print("Не удалось закрыть ордер в продажу #",OrderTicket(),"",SymbolName," по цене ",closePrice," текущий Ask=",MarketInfo(SymbolName,MODE_ASK)," код ошибки ",GetLastError());
}}}if(OrderType()==OP_BUY && OpenShort()==1){if(SecondsAfterOpenLastPos()>3600){SymbolName=OrderSymbol();
closePrice=MarketInfo(SymbolName,MODE_BID);
if(OrderClose(OrderTicket(),OrderLots(),closePrice,3,CLR_NONE)){OrderSend(closePrice,OP_SELL,0.1,closePrice,3,0,0);
return(2);
}else{RefreshRates();
Print("Не удалось закрыть ордер в покупку #",OrderTicket(),"",SymbolName," по цене ",closePrice," текущий Bid=",MarketInfo(SymbolName,MODE_BID)," код ошибки ",GetLastError());
}}}}return(0);
//----}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не знаю, что в ней не так, она мне просто не нравится. Такой вариант все же привычней и информативней для меня
Спасибо за помошь, но результат не изминился вот что пишет
Не удалось закрыть ордер в покупку #3492916 по цене 0.8364 текущий Bid=0. 8364 код ошибки 4107
Так что мне делать с этим "неправлиным пареметром цены" все вроде правильно что за лажа?
Так что мне делать с этим "неправлиным пареметром цены" все вроде правильно что за лажа?
В SecondsAfterOpenLastPos() передергивается результат функции OrderSelect полученный в BuySellReversTrue()
Так что мне делать с этим "неправлиным пареметром цены" все вроде правильно что за лажа?
В SecondsAfterOpenLastPos() передергивается результат функции OrderSelect полученный в BuySellReversTrue()
спасибо прибольшое все заработало я че-то не подумал об этом да вот времени потерял :)