Александр написал: А как определить в какую ячейку памяти записан?
Устанавливаете одну из точек линии тренда на какое-то значение, например 12,35467, потом ищете все ячейки памяти, в которые записано это значение, и смотрите, какая из этих ячеек меняет значение при перетаскивании линии тренда или этой точки. Эта ячейка и содержит Y-координату одной из точек тренда. ArtMoney так работает.
Если бы адрес ячейки сохранялся при перезапуске Quik, можно было бы забить в скрипт lua адреса ячеек, в которые пишутся координаты точек тренда, и использовать библиотеку, которая определяет значение переменной, записанной в ячейку, по адресу ячейки. Но проблема как-раз в том, что адреса не сохраняются.
Александр М написал: ЦитатаЦитата Александр М написал: https://trdrobot.ru/interaktivnyj-indikator-postroeniya-trendovoj-linii-dlya-quik/ Ещё один. Из видео невозможно понять, меняется ли линия индикатора сама или только при получении новых свечек/перестройке индикатора, поэтому ваша ссылка бесполезна.Общайтесь корректно к коллегам, тогда и они начнут вас уважать. Из видео прекрасно видно, что линия меняется сама с заданной задержкой. Задержка сделана специально, надеюсь понимаете для чего.
Во-первых, мы с вами не коллеги, я не пытаюсь никому впарить бессмысленные скрипты. Во-вторых, вопрос был о линии тренда, а не об индикаторах, читайте внимательнее.
В-третьих, из видео не понятна причина перестройки индикатора - то ли это обновление графика для ликвидного инструмента во время торговой сессии, то ли ещё что-то, видно только что он обновляется через промежуток времени. Программный код, как он реализован, также не приводится.
И, наконец, требовалось программное решение, которое можно воспроизвести, а не какой-то закрытый скрипт, поэтому, ваша ссылка по-прежнему остается бесполезной.
Александр написал: Возможно я не понял вопроса. Получить координаты тренда программно по идентификатору сразу в скрипт? Или просто получить записать на бумажку?
Александр, получить сразу в скрипт или получить и записать в файл, или куда-то, откуда можно будет считать их. В принципе, удается не только получить, но даже изменить тренд при помощи программы ArtMoney, обращаясь непосредственно к ячейкам памяти, в которые он записан, правда, при перезагрузке квика адрес ячеек меняется и этот способ становится бесполезным.
Ещё один. Из видео невозможно понять, меняется ли линия индикатора сама или только при получении новых свечек/перестройке индикатора, поэтому ваша ссылка бесполезна.
Вопрос был о линии тренда, а не об индикаторе. К тому же у вас, как я понимаю, индикатор не перерисовывается при перетаскивании мыши, а ждет перестройки графика - это уж совсем не комильфо.
А можно ли получить координаты точек линии тренда, построенной вручную, при помощи сторонних средств? (то, о чём спрашивал Ilya несколькими сообщениями ранее)
Если у кого-то получалось, напишите, пожалуйста, в каком направлении двигаться.
Sergey Gorokhov написал: Кнопка "Остановить" это не аварийный выход, а просто остановка скрипта. Принудительная (в Вашем термине "аварийная") остановка происходит не по нажатию кнопки, а по истечении таймаута 5 сек. И это не зависит от того что в это время делает main, что-бы Вы туда не написали скрипт принудительно завершится. Таймаут можно изменить, это делается в return события OnStop (см документацию QLUA.chm) Если Вам что-то нужно снять заявки перед остановкой скрипта, делайте это в самом OnStop
Я могу и в main-е снять заявки, вопрос не в этом был, а в том, почему OnOrder не отрабатывает после остановки. Запустите скрипт из начала темы, сразу все станет понятно. Строка message(tostring(IS_STOPPING)) должна была бы выводить true в конце, если бы OnOrder отрабатывал.
Попробовал перенести снятие заявки в OnStop, как вы написали, - всё то же, не работает OnOrder.
_sk_, спасибо, это хорошая идея, думаю реализовать что-то подобное. Вопрос был к разработчикам относительно кнопки "Остановить", аварийный выход - это всё-таки когда скрипт падает с выводом ошибки в поле "Ошибки выполнения скрипта".
Он не остановит работу, ведь main продолжает работать. Что вы посоветуете сделать, как выйти из main-a только удостоверившись, что все заявки сняты (а это можно сделать только по результатам колбека OnOrder)?
И кстати, с таблицами такая же ситуация, после нажатия на "Остановить" я уже не могу корректно запустить SetCell - он просто ждет 5 секунд и содержимое ячейки не меняет.