Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 822

 
Monter10000:
Доброго времени суток всем форумчанам! Столкнулся с проблемой,второй день голову ломаю,никак не могу понять как реализовать задумку! Как нарисовать прямоугольник,круг,овал (не важно какая фигура) на определенной свече,чтоб не перерисовывать по новым координатам. А чтоб при срабатывании каких-то условий рисовалась фигура? Каждая фигура на своей свече. Только недавно начал изучать mql4,и с графикой еще вообще не знаком. Вот решил вчера попробовать вывести квадрат на 10-ом баре (как пример),один выводится и все,и больше не рисуется. Вчера мучал-мучал код,и в итоге стало получаться,но только квадрат постоянно стирается на старом месте и рисуется на новом,потом домучался,что стал выводиться квадрат только один раз. Подскажите,кто знает как это реализовать! Или подскажите,где есть соответствующая ветка на форуме. А то уже кучу инфы прочел,только больше запутался! Заранее всем спасибо за ответы

универсальный способ - "закат солнца вручную" - накладывать на график канву и по ней рисовать. Смещая нарисованное при открытии новых баров или смещении графика. Но это долго и муторно

быстрый способ отметок - размещать на "свечке" фигурки Arrows или подписи - с привязкой по времени. Тогда терминал сам сдвигает всё как надо.

штатно, в 4-ке прямоугольником привязанным ко времени обвести отдельную свечку невозможно. Только задевая её "соседей". Это не всегда красиво и годно. Остаётся RectLabel с привязкой к экрану, но опять-же придётся пересчитывать координаты на каждый новый бар или скролл/масштабирование графика.

 
Monter10000:
Доброго времени суток всем форумчанам! Столкнулся с проблемой,второй день голову ломаю,никак не могу понять как реализовать задумку! Как нарисовать прямоугольник,круг,овал (не важно какая фигура) на определенной свече,чтоб не перерисовывать по новым координатам. А чтоб при срабатывании каких-то условий рисовалась фигура? Каждая фигура на своей свече. Только недавно начал изучать mql4,и с графикой еще вообще не знаком. Вот решил вчера попробовать вывести квадрат на 10-ом баре (как пример),один выводится и все,и больше не рисуется. Вчера мучал-мучал код,и в итоге стало получаться,но только квадрат постоянно стирается на старом месте и рисуется на новом,потом домучался,что стал выводиться квадрат только один раз. Подскажите,кто знает как это реализовать! Или подскажите,где есть соответствующая ветка на форуме. А то уже кучу инфы прочел,только больше запутался! Заранее всем спасибо за ответы

Самое простое, это внимательно почитать документацию по языку и понять, что имя объекта должно быть уникальным. Например в имя объекта поставить время открытия нужного бара.

 
Существует ли разница между использованием идентификатора периода (PERIOD_H4) и его числовым значением (240). Например, если советник 2TF. ?
 
Vladimir Baskakov:
Существует ли разница между использованием идентификатора периода (PERIOD_H4) и его числовым значением (240). Например, если советник 2TF. ?

Лучше сразу привыкать к формату типа PERIOD_** поскольку в mql5 PERIOD_H4 не равен 240, а переходить на mql5 всё-же придётся. Да и более информативно. К примеру вы помните сколько секунд в неделе или в месяце? Лично для меня надо ещё посчитать, а PERIOD_W1 без проблем понятно.

 
Vladimir Baskakov:
Существует ли разница между использованием идентификатора периода (PERIOD_H4) и его числовым значением (240). Например, если советник 2TF. ?

Используйте значение перечисления - это избавит вас от проблем при переходе на MQL5

 
Alexey Viktorov:

Самое простое, это внимательно почитать документацию по языку и понять, что имя объекта должно быть уникальным. Например в имя объекта поставить время открытия нужного бара.

Спасибо за подсказку, попробую!

 

Если открыто несколько позиций по одному инструменту, а советник нужно запустить только для сопровождения одной из них, можно ли как-то сделать выбор тикета при его запуске чтобы руками не писать?

 
psyman:

Если открыто несколько позиций по одному инструменту, а советник нужно запустить только для сопровождения одной из них, можно ли как-то сделать выбор тикета при его запуске чтобы руками не писать?

Используйте магик - он для этого и предназначен.

Но если все позиции открыты вручную, то, естественно, советник как-то должен знать какую позицию ему сопровождать - тут только тикет поможет. А чтобы сделать выбор тикета при запуске советника - тут он должен просмотреть все открытые позиции, составить список их тикетов и предложить вам окно с выбором нужного тикета - проще вручную в настройках вводить.

 
Artyom Trishkin:

Используйте магик - он для этого и предназначен.

Но если все позиции открыты вручную, то, естественно, советник как-то должен знать какую позицию ему сопровождать - тут только тикет поможет. А чтобы сделать выбор тикета при запуске советника - тут он должен просмотреть все открытые позиции, составить список их тикетов и предложить вам окно с выбором нужного тикета - проще вручную в настройках вводить.


Так ведь геморойно цифры набивать. Можно ли создать библиотеку в которой записывать выборку тикетов в массив, а потом как-то подсовывать советнику?

 
psyman:


Так ведь геморойно цифры набивать. Можно ли создать библиотеку в которой записывать выборку тикетов в массив, а потом как-то подсовывать советнику?

Можно. А нужно? Это не на раз.

Можно читать тикет ордера (если на графике есть его значок) по клику мышкой по значку ордера.