Разве обязательно нужно, чтобы горизонтальность сохранялась во время перемещения? По-моему, вполне достаточно делать корректировку уже после перемещения линии.
![HorizontalTrendLines HorizontalTrendLines](https://c.mql5.com/36/30/horizontaltrendlines.jpg)
- www.mql5.com
Разве обязательно нужно, чтобы горизонтальность сохранялась во время перемещения? По-моему, вполне достаточно делать корректировку уже после перемещения линии.
Да, нужна горизонтальность именно в момент перемещения, так сразу визуально видно уровень (1-й скрин). На 2-м скрине если делать корректировку после перемещения.
Да, нужна горизонтальность именно в момент перемещения, так сразу визуально видно уровень (1-й скрин). На 2-м скрине если делать корректировку после перемещения.
![](https://c.mql5.com/3/299/image__41.png)
Если речь о ручном перемещении, таскайте за центральный узел
Если речь о ручном перемещении, таскайте за центральный узел
Спасибо, но этот вариант не подходит
Почему?
Перетаскивая один узел, можно создавать временную линию, потому удалять ее после отпускания основной линии.Уважаемые коллеги!
Столкнулся вроде с простой задачей, но не могу найти оптимальное решение. Необходимо чтобы при перемещении точки 1 трендовой линии, параллельно двигалась точка 2, т.е. трендовая линия всегда должна быть горизонтальной. CHARTEVENT_OBJECT_DRAG не подходит, так как перемещение 2-й точки происходит после окончания перемещения первой. Пробовал через CHARTEVENT_OBJECT_CLICK получить название линии и сохранить ее в глобальной переменной, а в CHARTEVENT_MOUSE_MOVE если ЛКМ нажата перемещать вторую точку этой линии. Данный вариант работает, но если на графике несколько линий, при нажатии на вторую линию в глобальной переменной не успевает обновиться название второй линии и перемещается точка первой линии. Пробовал в CHARTEVENT_MOUSE_MOVE запускать цикл определяя какая линия сейчас находится под курсором (преобразовывал координату y курсора в цену и сравнивал с ценой линии), при резком смещении 1-й точки не всегда верно определяется линия. Подскажите пожалуйста как сделать правильно, думаю есть легкое решение, которое мне никак в голову не приходит)
Если нужна горизонтальная линия, то и создавать нужно горизонтальную, а не трендовую.
Пока одна координата трендовой зажата, свойства линии недоступны для изменения. Поэтому никак это не получится.
НО... Если по событию перемещения мыши двигать линию которая выделена, то вполне выполнимая задача.
Почему?
Перетаскивая один узел, можно создавать временную линию, потому удалять ее после отпускания основной линии.![Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика](https://c.mql5.com/36/30/dokumentaciya-po-mql5-konstanti__19.png)
- www.mql5.com
Пока одна координата трендовой зажата, свойства линии недоступны для изменения. Поэтому никак это не получится.
НО... Если по событию перемещения мыши двигать линию которая выделена, то вполне выполнимая задача.
Ну в общем то да, можно как вариант. А как правильно определить что узел зажат, и название линии . В CHARTEVENT_OBJECT_CLICK название появляется только после отпускания мыши.
Почти никак, разве что по таймеру проверять координаты точек.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые коллеги!
Столкнулся вроде с простой задачей, но не могу найти оптимальное решение. Необходимо чтобы при перемещении точки 1 трендовой линии, параллельно двигалась точка 2, т.е. трендовая линия всегда должна быть горизонтальной. CHARTEVENT_OBJECT_DRAG не подходит, так как перемещение 2-й точки происходит после окончания перемещения первой. Пробовал через CHARTEVENT_OBJECT_CLICK получить название линии и сохранить ее в глобальной переменной, а в CHARTEVENT_MOUSE_MOVE если ЛКМ нажата перемещать вторую точку этой линии. Данный вариант работает, но если на графике несколько линий, при нажатии на вторую линию в глобальной переменной не успевает обновиться название второй линии и перемещается точка первой линии. Пробовал в CHARTEVENT_MOUSE_MOVE запускать цикл определяя какая линия сейчас находится под курсором (преобразовывал координату y курсора в цену и сравнивал с ценой линии), при резком смещении 1-й точки не всегда верно определяется линия. Подскажите пожалуйста как сделать правильно, думаю есть легкое решение, которое мне никак в голову не приходит)