Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1687
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Размер массива-это количество элементов массива (или ордеров например)
первый элемент имеет индекс 0, всегда,
последний - на единицу меньше, чем размер массива.
Если Вы хотите создать массив с одним элементом, то обратится к этому элементу Вы можете только так arr[0]. Во всех других случаях, Вы получите ошибку выхода за пределы массива.
С ордерами также, просто ошибки нет, но до первого элемента (ордера) по другому Вы не достучитесь.
Да причем тут ваши индексы и возвращаемая сумма ордеров. Создайте пару ордеров и в цикле пройдитесь по ним. Проход будет не по массиву, а числу которое вернёт OrdersTotal как обычная функция, она же не возвращает адрес на индекс массива где хранятся ордера.
Вы не по числу делаете проход, а по списку ордеров вашего торгового счета! А число ордеров это просто число.. по нему нельзя проходы делать.. как вы сделаете проход по числу 100? Никак.. А по списку где 100 строк, можно сделать проход каждой строки.
Число, которое возвращает функция OrdersTotal() - это простое число.. НО задумано так, что оно ВСЕГДА совпадает с числом ордеров в списке.
Если вы знаете что у вас всего 1 ордер всегда, то тогда вам достаточно работать с ордером под номером "0" безо всяких OrdersTotal()...
Вы не по числу делаете проход, а по списку ордеров вашего торгового счета! А число ордеров это просто число.. по нему нельзя проходы делать.. как вы сделаете проход по числу 100? Никак.. А по списку где 100 строк, можно сделать проход каждой строки.
Число, которое возвращает функция OrdersTotal() - это простое число.. НО задумано так, что оно ВСЕГДА совпадает с числом ордеров в списке.
Если вы знаете что у вас всего 1 ордер всегда, то тогда вам достаточно работать с ордером под номером "0" безо всяких OrdersTotal()...
Размер массива-это количество элементов массива (или ордеров например)
первый элемент имеет индекс 0, всегда,
последний - на единицу меньше, чем размер массива.
Если Вы хотите создать массив с одним элементом, то обратится к этому элементу Вы можете только так arr[0]. Во всех других случаях, Вы получите ошибку выхода за пределы массива.
С ордерами также, просто ошибки нет, но до первого элемента (ордера) по другому Вы не достучитесь.
Я понял, OrdersTotal дает только сумму, а чтобы обратиться к ордеру мы используем OrderSelect и вот оно уже перебирает массив. Я упустил этот момент из виду.
Массив(список) перебирает ЦИКЛ. А OrderSelect только выделяет для дальнейшей работы тот ордер, порядковый номер которого был создан в этом цикле.
Да причем тут ваши индексы и возвращаемая сумма ордеров. Создайте пару ордеров и в цикле пройдитесь по ним. Проход будет не по массиву, а числу которое вернёт OrdersTotal как обычная функция, она же не возвращает адрес на индекс массива где хранятся ордера.