Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 219
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я всегда знал что она содержит количество ордеров -1, то есть OrdersTotal()-1 и всё работало, но стал писать программу и вдруг, один ордер перестал учитываться, запросил OrdersTotal() и он выдал общее кол-во ордеров = 3, а не 3-1.
Что происходит?
Обычный вид цикла в справке:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
}
То есть первый ордер идёт как нулевое значение.
Но по факту нет, первый ордер и идёт как 1, значит перебор надо начинать с единицы, а не с нуля?
Метаквоты что-то начудили, или я туплю?
Здравствуйте, что с OrdersTotal()?
Я всегда знал что она содержит количество ордеров -1, то есть OrdersTotal()-1 и всё работало, но стал писать программу и вдруг, один ордер перестал учитываться, запросил OrdersTotal() и он выдал общее кол-во ордеров = 3, а не 3-1.
Что происходит?
Обычный вид цикла в справке:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
}
То есть первый ордер идёт как нулевое значение.
Но по факту нет, первый ордер и идёт как 1, значит перебор надо начинать с единицы, а не с нуля?
Метаквоты что-то начудили, или я туплю?
Вы смешали в кучу ОТЛОЖЕННЫЕ ОРДЕРА и ПОЗИЦИИ. Прочтите справку. Сформилуйте точнее свой вопрос: что именно Вы пытаетесь посчитать: ОТЛОЖЕННЫЕ ОРДЕРА или ПОЗИЦИИ? И таки да, ничего не изменилось - первый индекс элемента начинается с '0'.
ДОбавлено: пример
Example: Calculate Positions and Pending Orders
Вы смешали в кучу ОТЛОЖЕННЫЕ ОРДЕРА и ПОЗИЦИИ. Прочтите справку. Сформилуйте точнее свой вопрос: что именно Вы пытаетесь посчитать: ОТЛОЖЕННЫЕ ОРДЕРА или ПОЗИЦИИ? И таки да, ничего не изменилось - первый индекс элемента начинается с '0'.
ДОбавлено: пример
Example: Calculate Positions and Pending Orders
Я имею ввиду MQL4, а не MQL5, тут нет разделения на отложки и рыночные!
Я имею ввиду MQL4, а не MQL5, тут нет разделения на отложки и рыночные!
Вы пишите на форуме MQl5. Вы пишете в основном разделе. Вы пишите в теме о MQL5 - естественно ответы получаете про MQL5.
Вопросы по старому терминалу задаются в специальном разделе: MQL4 и MetaTrader 4. Впредь пишите там. Ваши вопросы перенесу.
Вот я сравнил два варианта, в первом применил OrdersTotal()-1 и начал перебор с нуля - получил ошибку
Во втором варианте начал с единицы и взял целиком OrdersTotal(), - ошибки нет в этот раз
Смотрите скрины, там видно что OrdersTotal() отображает фактическое кол-во ордеров, а не OrdersTotal()-1 ...
Вопрос, почему OrdersTotal() выдаёт точное количество ордеров, а не -1, так и должно быть или это что то новое?
Ведь в этом случае, перебор надо начинать не с нуля, а с единицы!
Вот я сравнил два варианта, в первом применил OrdersTotal()-1 и начал перебор с нуля - получил ошибку
Во втором варианте начал с единицы и взял целиком OrdersTotal(), - ошибки нет в этот раз
Смотрите скрины, там видно что OrdersTotal() отображает фактическое кол-во ордеров, а не OrdersTotal()-1 ...
Вопрос, почему OrdersTotal() выдаёт точное количество ордеров, а не -1, так и должно быть или это что то новое?
Ведь в этом случае, перебор надо начинать не с нуля, а с единицы!
Кажется я понял свою ошибку сорри...
В этом условии идёт смещение на -1:
if (OrderSelect(i-1,SELECT_BY_POS)==true){}
Извините за тупость, взял строку из другой программы и не обратил внимание на смещение!