Подскажите, пожалуйста, как создаются подобные объекты?
Есть открытый код индикатора (скрин 2) от автора: _https://www.mql5.com/en/code/9175
Но я не совсем понимаю как там создаются подобные вещи… Хотелось бы использовать подобное в советнике, например для индикации текущей просадки, или чего угодно. Может кто в курсе как ЭТО делается?
Комментарии (25)
35 AM2 Сообщений: 16250 - Андрей
11 FEEX Автор Сообщений: 361 - Владимир
35 AM2 Сообщений: 16250 - Андрей
И одно такое тире выводится на график через ObjectCreate?
И если таких тире должно быть 10, то для каждого создается свой ObjectCreate?
11 FEEX Автор Сообщений: 361 - Владимир
пример со свободной маржой:
14 verta81 Сообщений: 389
я, как бы, сделал — первый кирпич рисуется если профит > 0, второй если > 5, profit > 10, profit > 15 и т.д.
Но слишком громоздкая конструкция получилась…
это только один кирпич, а всего их 10…
Как сделать компактнее — я хз… Редактирован: 2 октября 2023, 02:10
11 FEEX Автор Сообщений: 361 - Владимир
14 verta81 Сообщений: 389
11 FEEX Автор Сообщений: 361 - Владимир
на строчку:
и вместо "-" можно использовать "|" или "."
14 verta81 Сообщений: 389
Единственный момент: для горизонтального вывода в этой с троке
умножение не на 7 нужно, а больше, я 17 поставил, тогда расстояния между «кирпичами» без наложения друг на друга получается (см. скрин)
Еще раз спасибо))
P.S. Еще хотел спросить: по этой схеме мы выводим шкалу для одного параметра. А если мы хотим вывести индикацию одновременно для двух, или трех параметров? Как это сделать с использованием этой схемы?) Редактирован: 2 октября 2023, 15:25
11 FEEX Автор Сообщений: 361 - Владимир
Где «ind2» Уже имена новых объектов, плюс смещение по оси Х не 30 а 40(например).
Далее в функции OnTick() добавить условие индикации:
И т.д.
Экспериментируйте.
14 verta81 Сообщений: 389
где как раз и выбирается переменная. И тут непонятно.
у меня есть две переменные: profitToday и Pr_01
т.е у меня должна появиться еще строка
как её добавить в эту конструкцию, чтобы работало?
P.S. При добавлении строки objectCreate(«ind2»+string(i),40+(i*7),30);
сразу ошибка: 'i' — undeclared identifier
P.S.2. еще одна проблемка: выставил ради интересa step=3, шкала заполнилась на макс и тестер отключился с ошибкой в журнале
2023.10.03 11:46:14.937 2023.01.03 13:21:27 Testing pass stopped due to a critical error in the EA
2023.10.03 11:37:20.811 2023.01.03 10:52:38 ZolotoAM2__4 EURUSD,H1: array out of range in 'ZolotoAM2__4.mq4' (631,52)
Как я понял, у нас стоит ограничение на 10 «кирпичей», при попытке нарисовать 11-й — ошибка.
это где-то тут прописано:
Как оставить 10 кирпичей, т.е. не рисовать 11-й, а просто разрешить работать дальше без ограничений? Редактирован: 3 октября 2023, 12:04
11 FEEX Автор Сообщений: 361 - Владимир
Давайте весь код, поправлю.
14 verta81 Сообщений: 389
Пока надо как-то вылечить это, но я не могу сообразить как создать нужное условие…
Я ранее писал, что у меня есть рабочий вариант, который я сам слепил, но он очень громоздкий, там на каждый киприч отдельный объект, но там есть и условия на каждый кирпич
И последний «кирпич» с условием if (profitToday > 45.0) — т.е. если значение profitToday > 45.0 то последний «кирпич» отрисуется, и не имеет значения до какой величины profitToday будет дальше расти, все будет работать.
В вашем варианте так пока что не получается…
11 FEEX Автор Сообщений: 361 - Владимир
14 verta81 Сообщений: 389
8 Maxix Сообщений: 59
или
14 verta81 Сообщений: 389
использовал этот вариант.
Теперь второй вопрос: две и более переменных)
Первая ProfitToday
Вторая Pr_01
Как это реализовать?)
11 FEEX Автор Сообщений: 361 - Владимир
14 verta81 Сообщений: 389
11 FEEX Автор Сообщений: 361 - Владимир
14 verta81 Сообщений: 389
В эту схему добавить еще одну переменную Pr_01, чтобы в итоге для каждой переменной (ProfitToday и Pr_01) отрисовывалась своя отдельная шкала «кирпичей»
P.S. В коде я уже внес последние изменения:
int step=5;// шаг индикации
int i=(int)(ProfitToday/step);//замените ProfitToday на нужную переменную
if(i>10) i=10;
чтобы все на этом этапе работало правильно)
11 FEEX Автор Сообщений: 361 - Владимир
Моя система, с тем же шагом, что и у вас, отрисовыавает всю шкалу на 50 долларах, и дальше, если прибыль продолжает расти, советник продолжает работу без ошибок, т.е. 10 кирпичей нарисовал и работает дальше.
В вашем варианте отрисовал 10 кирпичей, дошли до 50 долларов, и дальше болкируется работа — в журнале ошибка:
2023.10.03 11:46:14.937 2023.01.03 13:21:27 Testing pass stopped due to a critical error in the EA
2023.10.03 11:37:20.811 2023.01.03 10:52:38 ZolotoAM2__4 EURUSD,H1: array out of range in 'ZolotoAM2__4.mq4' (631,52)
11 FEEX Автор Сообщений: 361 - Владимир
Если Ваша система работает, используйте Вашу.
14 verta81 Сообщений: 389
Теперь второй вопрос: две и более переменных)
Первая ProfitToday
Вторая Pr_01
Как это реализовать?) Редактирован: 3 октября 2023, 21:30
11 FEEX Автор Сообщений: 361 - Владимир
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий