![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это всего лишь пример кода. Писалось даже без проверки синтаксиса. Смысл - показать направление. Поэтому могут быть какие-то мелкие ошибки.
Я тут повозился с настройкой, в итоге:
Ошибка 4051...
Может быть вы знаете, что здесь за проблема.
Я тут повозился с настройкой, в итоге:
Ошибка 4051...
Может быть вы знаете, что здесь за проблема.
Во-первых, почему все это делается в OnInit()?
Во-вторых, почему вместо тикета ордера указываете переменную цикла?
В-третьих, почему в OrderSelect указан выбор по индексу списка, а не по тикету?
Начните с простого - работу с одним ордером. До работы с множеством ордеров еще далеко. Там все сложнее.
Во-первых, почему все это делается в OnInit()?
Во-вторых, почему вместо тикета ордера указываете переменную цикла?
В-третьих, почему в OrderSelect указан выбор по индексу списка, а не по тикету?
Начните с простого - работу с одним ордером. До работы с множеством ордеров еще далеко. Там все сложнее.
Oninit, т.к. массив заполняется один раз. Этому советнику нужно подхватывать другой советник, который выставляет ордера, поэтому мне нужно узнавать тикет уже открытых ордеров, а чтобы узнать тикет я знаю только способ через индекс, и там проверяются абсолютно все ордера, и т.к. нужен тикет, то порядок не важен. Тестил советник с одним открытым оредром.
Понятно. Но тогда проблема в том, что массив распределяется на все имеющиеся ордера, а заполняется только теми, которые имеют определенный магик.
Чтобы добавить в массив все ордера с определенным магиком, нужно сделать так:
причина ошибки - ордера с номером OrdersHistoryTotal() не существует. Обратите внимание, во всех примерах, которые вам показали, циклы идут от последнего в списке (OrdersHistoryTotal()-1) до первого в списке (индекс 0)
причина ошибки - ордера с номером OrdersHistoryTotal() не существует. Обратите внимание, во всех примерах, которые вам показали, циклы идут от последнего в списке (OrdersHistoryTotal()-1) до первого в списке (индекс 0)
Понятно. Но тогда проблема в том, что массив распределяется на все имеющиеся ордера, а заполняется только теми, которые имеют определенный магик.
Чтобы добавить в массив все ордера с определенным магиком, нужно сделать так: