Подскажите пожалуйста, возможно ли средствами языка QLUA делать какие-либо графические отметки на графике инструмента в QUIK? Например, если алгоритм находит удачный момент для сделки - ставить графическую отметку на графике и т.п.
Ivanco написал: Подскажите пожалуйста, возможно ли средствами языка QLUA делать какие-либо графические отметки на графике инструмента в QUIK? Например, если алгоритм находит удачный момент для сделки - ставить графическую отметку на графике и т.п.
Заранее благодарен.
Функции для работы с метками Предназначены для построения меток и установки их на графике.
AddLabel - добавляет метку с заданными параметрами
А такое банальное действо как вывод текста в рамках индикатора недоступно? Простой пример - текущий ATR. Я не хочу выводить линию или что-то еще. Нужно вывести просто текст.
Добавление меткаи есть в скрипте, а в индикаторе? Так много информации надо выводить в рамках индикаора, где нет проблемы идентификации окна. Я в WLab писал индиктор зиг-заг с выводом процентов каждого движения и поиска моделей. Пости все было текстом в виде меток над свечками. Линий минимум.
Sergey Gorokhov написал: Здравствуйте, Вы можете выводить текст через механизм меток. По другому возможности нет.
Хорошо. Вывел метки индикатором.
Но у меня падает Квик при изменении настроек индикатора. При смене инструмента в привязанном окне падения не происходит, а при нажатии ОК в окне редактрирования, да.
Возникает вопрос - какой метод удаления меток правильный.
У меня падение происходит после добавления такого кода в OnCalculate:
Код
if index == 1 and Settings.ChartId ~= '' then
DelAllLabels(Settings.ChartId)
AddedLabels = {}
end
Также добавлена процедура:
Код
function OnDestroy()
if Settings.ChartId ~= '' then
DelAllLabels(Settings.ChartId)
AddedLabels = {}
end
end
Падения не должно происходить. приведите полный код скрипта индикатора и сообщите версию терминала QUIK
Версия 7.6.1.1 (Сбербанк выше не дает).
Собственно весь код работы с метками такой и есть
Код
function OnCalculate(index)
if index == 1 and Settings.ChartId ~= '' then
DelAllLabels(Settings.ChartId)
AddedLabels = {}
end
if index == 1 then
DSInfo = getDataSourceInfo()
min_price_step = getParamEx(DSInfo.class_code, DSInfo.sec_code, "SEC_PRICE_STEP").param_value
end
return myFunc(index, Settings, 37)
end
Внутри функции расчета данных выводится (обновляется) метка
Код
if AddedLabels[1] ~= nil then
SetLabelParams(Settings.ChartId, AddedLabels[1], label)
else
local LabelID = AddLabel(Settings.ChartId, label)
if LabelID ~=nil and LabelID ~= -1 then
AddedLabels[1] = LabelID
end
end
Код
if AddedLabels[2] ~= nil then
SetLabelParams(Settings.ChartId, AddedLabels[2], label)
else
local LabelID = AddLabel(Settings.ChartId, label)
if LabelID ~=nil and LabelID ~= -1 then
AddedLabels[2] = LabelID
end
end
Падение происходит не каждый раз. Иногда на третий раз применения параметров. Иногда на первый.
Подниму тему еще раз. Те функции, что вы написали наверху устанавливают текстовую метку. Лазаю уже неколько часов по всем форумам и не могу найти информацию.
Как поставить скриптом трендовую линию?? у нее больше параметров чем у простой метки.
В Квике есть еще много других графических объектов, а как их устанавливать? В описании я не нашел на это ответа.
Попутный вопрос про метки . Как получить список вкладок и всех графиков на вкладке?? Видимо там и будет хранится тег графика, к которому привязывается метка
Владимир Павлов написал: Как поставить скриптом трендовую линию?? у нее больше параметров чем у простой метки.
Через SetLabelParams можно устанавливать на график произвольную bmp картинку, через параметр IMAGE_PATH Ничего не мешает в bmp файле нарисовать нужную линию.
Цитата
Владимир Павлов написал: В Квике есть еще много других графических объектов, а как их устанавливать? В описании я не нашел на это ответа.
В описании нет ответа т.к. в текущей реализации через QLUA нет такой возможности
Цитата
Владимир Павлов написал: Как получить список вкладок и всех графиков на вкладке?? Видимо там и будет хранится тег графика, к которому привязывается метка
Тег графика Вы указываете самостоятельно вручную, в поле Идентификатор, в свойствах графика на вкладке Дополнительно
Владимир Павлов, Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Цитата
Владимир Павлов написал: А ка долго вы реализуете такие пожелания??
Если следовать вашему Регламенту то задача "выделения библиотеки графических символов" может получить высший приоритет. - не влияет ни на какую функциональность - заинтересованность всеми слоями трейдеров - улучшает пользовательские свойства терминала.
Я бы сам занялся под вашим руководством, да кто-же мне даст...........
Владимир Павлов написал: Если следовать вашему Регламенту то задача "выделения библиотеки графических символов" может получить высший приоритет. - не влияет ни на какую функциональность - заинтересованность всеми слоями трейдеров - улучшает пользовательские свойства терминала.
Я бы сам занялся под вашим руководством, да кто-же мне даст...........
пожелания об этом регулярно возникают уже в течение десятка лет или даже больше. Видимо, разработчикам недосуг этим заниматься.
Владимир Павлов, Добрый день, Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Подскажите. Нужно в собственном Индикаторе на lua вывести несколько меток на график, примерно в левый верхний угол и в правый нижний угол. Как получить параметры окна графика?
Goodchild написал: Подскажите. Нужно в собственном Индикаторе на lua вывести несколько меток на график, примерно в левый верхний угол и в правый нижний угол. Как получить параметры окна графика?
Здравствуйте, К сожалению такой возможности не предусмотрено. И свечки устанавливаются на координаты дата/цена, а не X,Y окна
Столкнулся с проблемой вывода меток в разных областях одного окна. Это возможно? В одной области метки выводятся. При попутке вывести метки во второй области того же окна метки из первой области пропадают. Версия 8.3.2.4
Рекомендуем выполнить обновление терминала до последней версии (8.11). Сделать это можно одним из следующих способов. - включить настройку Система/Настройки/Основные настройки/Программа - "Проверять наличие обновлений" - запросить новую версию у Вашего брокера если программа не обновится самостоятельно - если брокер не сможет предоставить нужную версию, скачать ее с нашего ftp: ftp://ftp.quik.ru/public/updates/8.11/quik_8.11.0_upd.zip В последнем случае, необходимо будет закрыть QUIK, сделать резервную копию папки, где он находится и скопировать все содержимое архива в первоначальную папку с подтверждением замены всех файлов.
Если проблема сохранится, просим прислать снимки экрана, на которых она наблюдается, и скрипт, выводящий метки.
Перешёл на версию 8.8.4.3., проблема осталась. Поясню подробнее. Я использую свой скрипт индикатора, он отображается в отдельной области, перерисовывается на каждом новом баре, метки на индикаторе тоже меняются на каждом новом баре. Чтобы при наступлении нового бара отобразить новый график индикатора с новыми метками мне нужно стереть старые метки, для этого использую в начале скрипта оператор DelAllLabels(labelGrafName1) и затем рисуются новые метки. Если я создам в этом окне ещё одну область с таким же индикатором, он появиться пока без меток, с первым тоже пока всё нормально. Но как только я укажу имя графика для второго индикатора и нажму кнопку Применить, то сразу метки первого индикатора исчезают, а у второго появляются. Получается, что оператор DelAllLabels(labelGrafName2) из скрипта второго индикатора удалил метки с именем labelGrafName1 из другого окна.
А в доках указано, что Команда удаляет все метки на диаграмме с указанным графиком!?
Не совсем понимаем, в чем заключается проблема. Функция выполняет ровно то, что описано в документации, а именно - удаляет все метки на диаграмме с указанным графиком.
А что понимается под словам Диаграмма? В доках это слова появляется только для этого оператора. В самой программе используются понятия окно и область окна. Так как в данном операторе указывается имя графика, то я решил, что удалятся будут метки, привязанные к графику с этим именем.
Mikhail Ran написал: А что понимается под словам Диаграмма? В доках это слова появляется только для этого оператора.
"Окно программы, в котором рисуются графики, называется диаграммой" (Руководство пользователя QUIK. 4 Графики) Полное руководство можно скачать с нашего сайта по следующей ссылке - https://arqatech.com/upload/iblock/ce0/Doc812.zip
Цитата
Mikhail Ran написал: В самой программе используются понятия окно и область окна.
Набор параметров, принимаемый той или иной функцией, не описывает ее работу и результат, для этого существует описание. Описание функции DelAllLabels() однозначным образом говорит о том, что будут удалены все метки на диаграмме, на которой находится указанный график.
господа, если вы сделали в последних версиях якорь позволяющий привязывать к окну графика тикеры таблицы текущих торгов, то может быть пора обратить внимание на то, что метка привязывается только к идентификатору графика. В итоге на графике полная мешанина из меток при переключении текущего инструмента. Прошу рассмотреть возможность дополнительной привязки меток к тикеру инструмента что бы при переключении графика на нем оставались только метни касающиеся этого инструмента.
PS Знаю, сейчас мне покажут ссылку, где такое предложение одобрено разработчиками много лет назад и однажды будет реализовано. )) Но все же
Предлагаем в настройках графика в левом выпадающем списке в пункте "Диаграмма" убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента" и нажать "Применить".
Предлагаем в настройках графика в левом выпадающем списке в пункте "Диаграмма" убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента" и нажать "Применить".
Ага, заработало, спасибо. Тогда подскажите еще галочку что бы из меню правой клавиши при наведении на метку созданную средствами qlua при выборе "удалить" удалялачь одна метка а не все.
Правильно понимаем, что Вы добавляете метки на график при помощи Qlua, потом наводите мышкой на метки, вызываете контекстное меню, нажимаете "удалить", и удаляются абсолютно все метки на графике ?
Если так, то просьба создать архив директории терминала без *.txk ключей, выложить его на какой-либо файлообменный сервер и на адрес quiksupport@arqatech.com прислать ссылку для скачивания.
Дополнительная просьба в письме укажите, пожалуйста, ссылку на данную ветвь форума.
Предлагаем в настройках графика в левом выпадающем списке в пункте "Диаграмма" убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента" и нажать "Применить".
Даниил, все таки помогите пожалуйста разобраться убогому чем это Вот убрал я эту галочку. График привязан якорем к таблице текущих торгов, стоит идентификатор "RZ". В таблице текущих торгов выбран Газпром. В это время в скрипте срабатывает заявка по инструменту Сбербанк и скрипт выставляет метку с ценой и временем в график с идентификатором "RZ". Куда она выставляется? При переключении графика на Сбербанк метки нет. На графике Газпрома ее тоже нет. Но в системе по uid она находится.
Старатель, это я к тому, что в ответ на предложение сделать привязку метки к тикеру мне саппорт посоветовал убрать галочку напротив пункта "Оставлять трендовые линии, фигуры и метки при смене инструмента". После чего бардак с метками на графике успешно превращается в полный бардак.