Не видны текстовые метки на графике

Страницы: 1
RSS
Не видны текстовые метки на графике
 
Добавляю метку на график таким кодом:
Код
DelAllLabels("Price")
   local LDATE, LTIME = fCheckLastBarDateTime(ds)
   label_params = {
      -- Если подпись не требуется то оставить строку пустой ""
      TEXT = "LONG 1",
      -- Если картинка не требуется оставить значение пустым ""
      --IMAGE_PATH = getScriptPath() .. "",
      IMAGE_PATH = "",
      -- Расположение картинки относительно текста (возможно 4 варианта: LEFT, RIGHT, TOP, BOTTOM)
      ALIGNMENT = "LEFT",
      -- Значение параметра на оси Y, к которому будет привязана метка
      YVALUE = 200,
      -- Дата в формате «ГГГГММДД», к которой привязана метка
      DATE = LDATE,
      -- Время в формате «ЧЧММСС», к которому будет привязана метка
      TIME = LTIME,
      -- Красная компонента цвета в формате RGB. Число в интервале [0;255]
      R = 0,
      -- Зеленая компонента цвета в формате RGB. Число в интервале [0;255]
      G = 0,
      -- Синяя компонента цвета в формате RGB. Число в интервале [0;255]
      B = 0,
      -- Прозрачность метки в процентах. Значение должно быть в промежутке [0; 100]
      TRANSPARENCY = 0,
      -- Прозрачность фона картинки. Возможные значения: «0» – прозрачность отключена, «1» – прозрачность включена
      TRANSPARENT_BACKGROUND = 0,
      -- Название шрифта (например «Arial»)
      FONT_FACE_NAME = "Arial",
      -- Размер шрифта
      FONT_HEIGHT = 12,
      -- Текст всплывающей подсказки
      HINT = "This is hint"
   }
На графике ничего не появляется.

Проверяю
Код
label_id = AddLabel("Price", label_params)
   PrintDbgStr(tostring(label_id))
   
   Lbl = GetLabelParams("Price", label_id)
   PrintDbgStr(tostring(Lbl.date))

В дебаггере появляется:

[1996] 32.0
[1996] 20230512

Т.е. метка есть, скрипт ее читает.

В чем может быть дело?
 
margolyesh, добрый день.

На нашей конфигурации воспроизвести описанную проблему не удалось - при запуске приведенного кода метка успешно создается.

Цитата
margolyesh написал:
     -- Значение параметра на оси Y, к которому будет привязана метка
     YVALUE = 200,

Входит ли данное значение в видимую область диаграммы? Если нет, попробуйте указать значение YVALUE, которое принадлежит к данной области.
Если метка в данном случае все же не будет создана, просим Вас уточнить версию используемого Вами Рабочего места QUIK.
 
Да, 200 входит в видимую зону.
Версия 9.2.0.121
 
margolyesh, добрый день.

Благодарим Вас за информацию.
Рекомендуем выполнить обновление Рабочего места QUIK до актуальной версии (10+), в которой были исправлены ошибки при добавлении меток на график с помощью QLua.
 
Обновился, теперь пишет "Неверная версия протокола" при подключении.
Терминал 10.1.2.2 совместим с серверной частью 9.2.0.121?
Если нет, то какая последняя версия терминала совместима?
 
Откатил до версии 9.7.0.14, там заработало.
 
margolyesh, добрый день.

Подключение терминалом версии 10+ действительно может не поддерживаться сервером Вашего брокера.
Рекомендуем Вам уточнить у Вашего брокера, возможно ли подключение Рабочим местом QUIK версии 10+.
 
день день. Помоги решить вопрос
на графике не отображается метка (текст)
причем при проверки
message (tostring(label_id_text)) сообщение выдает id метки
Так же на графике при нажатии правой кнопки при выборе удалить, строка "все метки в диаграмме" становится активной (получается метка на график попадает, но ее не видно)
версия терминала 10.0.1.18
скрипт отображения метки следующий:

function labeldraw(price, textlabel, texthint)  label_params = {
TEXT = textlabel,
ALIGNMENT = "LEFT",
DATE = tostring(os.date("%Y%m%d")),
TIME = tostring(os.date("%H%M%S")),
R = 0,
G = 0,
B = 0,
TRANSPARENCY = 90,
FONT_HEIGHT = 10,
TRANSPARENT_BACKGROUND = 1,
YVALUE = price,
HINT = texthint
}

label_id_text = AddLabel(tiker_id, label_params)

end

function main()
tiker_id = "SBER_ID"

number_of_candles = getNumCandles(tiker_id)
price, _, _ = getCandlesByIndex(tiker_id, 0, number_of_candles - 1, 1)  
sleep(300)

text = "ppppp "..price[0].close
labeldraw(price[0].close, text, "eeeeee")
message (tostring(price[0].close))
message (tostring(label_id_text))
end
 
Добрый день.

Ранее вам уже оставили довольно развернутый ответ на первое ваше сообщение в другой ветке - https://forum.quik.ru/messages/forum10/message80142/topic2221/#message80142
 
к сожалению не помогло. Представленный крипт просто кладет терминал
 
Цитата
gngngn написал:
gngngn
У Вас скрипт работает лишь один раз.  В майн надо делать бесконечный цикл. Читайте документацию.
 
gngngn
Вот  правильный бутерброд.
Код
label_params={["TEXT"]="",["IMAGE_PATH"]="",["ALIGNMENT"]="Left",["YVALUE"]=0,["DATE"]=0,["TIME"]=0,["R"]=0,["G"]=0,["B"]=0,
["TRANSPARENCY"]=0,["TRANSPARENT_BACKGROUND"]=0,["FONT_FACE_NAME"]='Times New Roman',["FONT_HEIGHT"]=10,["HINT"]=""}

function labeldraw(price, textlabel, texthint) 
TS=getInfoParam("SERVERTIME")
TIME =string.sub(TS,1,2)..string.sub(TS,4,5).. string.sub(TS,7,8); 
label_params.DATE =DATE; 
label_params.TIME =TIME; 
label_params.TEXT = textlabel
label_params.TRANSPARENT_BACKGROUND = 1
label_params.YVALUE = price
label_params.HINT = texthint
label_id_text = AddLabel(tiker_id, label_params)
end

function main()
tiker_id = "SBER_ID"
DATE = tostring(os.date("%Y%m%d"))
while  true do
number_of_candles = getNumCandles(tiker_id)
price, _, _ = getCandlesByIndex(tiker_id, 0, number_of_candles - 1, 1)  
sleep(1)
text = "ppppp "..price[0].close
labeldraw(price[0].close, text, "eeeeee")
end
message (tostring(label_id_text))
end
Страницы: 1
Читают тему
Наверх