Почему то иногда не закрывает и не открывает ордер по реверсу,в тестере все нормально,а по факту иногда не работает,приходится в ручную закрывать / открывать,если тут есть программисты ,которые могут посмотреть есть ли ошибка в CloseRevers , советник на пересечении 2х машек,может есть нормальный - рабочий?
Файлы:
Sovetnic_2MA.mq4
6 kb
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- [АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3.
- Помогите найти ошибку в коде.
void CLOSEORDER(int ord) { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()==Symbol() && OrderMagicNumber()==123) { if (OrderType()==OP_BUY && ord==OP_BUY) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE); if (OrderType()==OP_SELL && ord==OP_SELL) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE); } } } } //вот это не правильно, нужно делать перебор ордеров с конца void CLOSEORDER(int ord) { for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()==Symbol() && OrderMagicNumber()==123) { if (OrderType()==OP_BUY && ord==OP_BUY) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE); if (OrderType()==OP_SELL && ord==OP_SELL) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE); } } } }в целом без обработки ошибок советник написан некорректно. Хотя бы для приличия полистали бы базу готовых советников и поглядели бы, как делают другие программисты.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь