Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Алексей, спасибо! В документации этого нюанса нет.
Обожаю писать код - ломаешь голову целый день, потом добавил два слова и счастлив как ребенок:)
Как же нет, если вот он:
https://docs.mql4.com/ru/objects/objectname
Видите, тут ObjestsTotal без параметров?
Как же нет, если вот он:
https://docs.mql4.com/ru/objects/objectname
Видите, тут ObjestsTotal без параметров?
Именно этот вариант ObjectName() и не возвращает имя объекта если количество объектов получено по типу
А вот второго варианта ObjectName() в документации mql4 нету.
Именно этот вариант ObjectName() и не возвращает имя объекта если количество объектов получено по типу
А вот второго варианта ObjectName() в документации mql4 нету.
Должен быть большим или равным 0 и меньшим, чем ObjectsTotal().
ObjectTotal, как можно заметить, без параметров.
Должен быть большим или равным 0 и меньшим, чем ObjectsTotal().
ObjectTotal, как можно заметить, без параметров.
Но есть ещё и с параметрами даже в документации mql4
именно этот вариант был использован в проблемном коде в паре ObjectName(i) без других параметров..
Конечно можно было сказать типа, «не заморачивай голову пятёркой…» и всё будет работать… Но у меня иной подход и я советовал использовать функции mql5. А вперемешку они не всегда работают.
Получилось так, что вы посоветовали тот вариант который был изначально с проблемой.
Но есть ещё и с параметрами даже в документации mql4
именно этот вариант был использован в проблемном коде в паре ObjectName(i) без других параметров..
Конечно можно было сказать типа, «не заморачивай голову пятёркой…» и всё будет работать… Но у меня иной подход и я советовал использовать функции mql5. А вперемешку они не всегда работают.
Получилось так, что вы посоветовали тот вариант который был изначально с проблемой.
Опять Вы начинаете морочить голову. Я посоветовал обратиться к справке и увидеть, что надо получать количество объектов через ObjectsTotal() БЕЗ ПАРАМЕТРОВ.
Опять Вы начинаете морочить голову. Я посоветовал обратиться к справке и увидеть, что надо получать количество объектов через ObjectsTotal() БЕЗ ПАРАМЕТРОВ.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы по коду.
Alexey Viktorov, 2022.05.17 16:12
Но есть ещё и с параметрами даже в документации mql4
именно этот вариант был использован в проблемном коде в паре ObjectName(i) без других параметров..
Конечно можно было сказать типа, «не заморачивай голову пятёркой…» и всё будет работать… Но у меня иной подход и я советовал использовать функции mql5. А вперемешку они не всегда работают.
Получилось так, что вы посоветовали тот вариант который был изначально с проблемой.
Я нигде не сказал, что ваш вариант не будет работать, но лучше привыкать к новому языку. Благо есть возможность использовать mql5 при написании на mql4.
Не могу решить вот такую задачу:
Требуется найти на графике объекты определенного цвета и удалить их все.
for(int i=0; i<ObjectsTotal(); i++) {
if(ObjectGet(ObjectName(i), OBJPROP_COLOR)==clrDodgerBlue) {
Print(" Имя объекта - ", ObjectName(i));
ObjectDelete(0,ObjectName(i));
}
}
Через такой циклы удаляет объекты только через один. Дайте идею, пожалуйста.
Не могу решить вот такую задачу:
Требуется найти на графике объекты определенного цвета и удалить их все.
for(int i=0; i<ObjectsTotal(); i++) {
if(ObjectGet(ObjectName(i), OBJPROP_COLOR)==clrDodgerBlue) {
Print(" Имя объекта - ", ObjectName(i));
ObjectDelete(0,ObjectName(i));
}
}
Через такой циклы удаляет объекты только через один. Дайте идею, пожалуйста.
Цикл крутите в обратную сторону от больших к меньшим.
Цикл крутите в обратную сторону от больших к меньшим.
Работает, спасибо за подсказку. Правда если просто крутить в обратную сторону, то вообще ничего не удаляет.
А вот если, зная что объектов не более 10 написать так, то работает:
for(int i=OrdersTotal()+10; i>=0; i--) {
if(ObjectGet(ObjectName(i), OBJPROP_COLOR)==clrDodgerBlue) {
ObjectDelete(0,ObjectName(i)); }}
Хотя кривой вариант какой-то.
Работает, спасибо за подсказку. Правда если просто крутить в обратную сторону, то вообще ничего не удаляет.
А вот если, зная что объектов не более 10 написать так, то работает:
for(int i=OrdersTotal()+10; i>=0; i--) {
if(ObjectGet(ObjectName(i), OBJPROP_COLOR)==clrDodgerBlue) {
ObjectDelete(0,ObjectName(i)); }}
Хотя кривой вариант какой-то.
Не нужно там +10