Привет форумчане! Написал такой код для поиска всех ордеров открытых в терминале:
Вернее не всех вообще а всех кроме текущей пары. Моя задача сделать ограничение: если в терминале открыто N ордеров (неважно каких, кто и как открыл тоже не важно) то советник не торгует, если меньше N тогда входим по сигналу...
Видать я где-то накосячил, неработает... Подскажите где искать проблему...
Если во всём терминале, то это лишнее OrderSymbol()!=Symbol()
int CountOtherOrders(int cmd) { int count=-1; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) { if(OrderType()==cmd ) count++; } } return(count); }
Если во всём терминале, то это лишнее OrderSymbol()!=Symbol()
Нет, я дальше уточнил "кроме текущей пары"... Ну хз, вроде должно работать...
int CountOtherOrders(int cmd) { int count=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol()) continue; if(OrderType()==cmd ) count++; } } return(count); }
Спасибо, буду пробовать...
но разве
if(OrderSymbol()==Symbol()) continue;
не то же самое что и
if(OrderSymbol()!=Symbol()) count++;?
Спасибо, буду пробовать...
но разве
не то же самое что и
Тоже самое, но добавил "MODE_TRADES"
Тоже самое, но добавил "MODE_TRADES"
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет форумчане! Написал такой код для поиска всех ордеров открытых в терминале:
Вернее не всех вообще а всех кроме текущей пары. Моя задача сделать ограничение: если в терминале открыто N ордеров (неважно каких, кто и как открыл тоже не важно) то советник не торгует, если меньше N тогда входим по сигналу...
Видать я где-то накосячил, неработает... Подскажите где искать проблему...