1

Тема: Как получить sec_code по идентификатору графика?

Присвоил графику идентификатор WWWbond.
Код работает. Выдает число свечек.

x = getNumCandles('WWWbond')
message('x= ' ..x)

Пытаюсь разными способами получить по этому идентификатору WWWbond sec_code. Никак не получается, такая возможность вообще есть?

Код не работает.

graphic_id = 'WWWbond'
sec_code = getSecurityInfo(graphic_id)
message("График " .. sec_code)

2

Re: Как получить sec_code по идентификатору графика?

tiker_id = "WWWbond"
   
local sec_code = getSecurityInfo(tiker_id, "SEC_CODE")

message("Название акции: " ..sec_code) 


дает ошибку attempt to concatenate a nil value (local 'sec_code')



пробовал "SHORTNAME" и"SEC_DESCRIPTION" вместо "SEC_CODE"   - эта же ошибка.

Ошибка "attempt to concatenate a nil value" возникает, когда пытаемся объединить (сконкатенировать) строку с нулевым значением (`nil`). Это может произойти, если функция `getSecurityInfo()` не возвращает значение для запрошенного параметра. В данном случае, возможно, не удалось получить код инструмента для указанного `tiker_id`.

почему это не работает(((  что за проклятье  как тяжело получить этот  SEC_CODE

3

Re: Как получить sec_code по идентификатору графика?

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

А что у вас за задача, что понадобилось наименование тикера получить с графика?

4

Re: Как получить sec_code по идентификатору графика?

Задача такая. Есть график или стакан по одной акции. Нужно запустить скрипт и он должен отправить заявку по этой акции. Для заявки нужен sec_code. sec_code должен браться автоматом от графика или стакана. Графики и стаканы привязаны якорем к таблице с акциями. Тоесть я постоянно выбираю бумагу, она всегда разная. Какую выбрал хочу нажать кнопку скрипта и по этой бумаге пошла заявка. все параметры заявок знаю с этим все ок. А вот sec_code чтоб брался это проблема.  А через индикатор как-то можно при такой смене акции получить sec_code?

5

Re: Как получить sec_code по идентификатору графика?

Alexey89 пишет:

Графики и стаканы привязаны якорем к таблице с акциями. Тоесть я постоянно выбираю бумагу, она всегда разная.

Да, сценарий вполне логичный и удобный.

Alexey89 пишет:

А через индикатор как-то можно при такой смене акции получить sec_code?

Посмотрел что есть - нет, такая информация отсутствует.

У вас папке где установлен QUIK есть файл QLUA.chm - это полная справка по функциям QLua.

6 (2023-09-07 10:22:13 отредактировано swerg)

Re: Как получить sec_code по идентификатору графика?

А вот вопрос: а как вы даёте роботу сигнал, что надо выставлять заявку?
Ну вот вы переключаете инструменты на графике, скрипт работает, получает информацию каждый раз с какого-то нового графика, скрипт даже не знает переключили вы или нет.
А как происходит команда "Вот сейчас подай заявку"?

Или скрипт запускается однократно и в этот момент выставляет заявку?

7

Re: Как получить sec_code по идентификатору графика?

Скрипт запускается однократно и в этот момент выставляет заявку.  Я выбрал график, я выбрал момент, запустил скрипт и он отработал. Заявка например на пару шагов цены в нужную мне сторону. Объем лотов считается исходя из данных таблиц по денежным средствам. Вся дурацкая загвоздка что надо получить sec_code графика что сейчас активен. Почему я должен каждый раз рассчитывать цены и объемы. 2023 год на дворе это работа для калькулятора. Должен же быть способ. Вся информация передо мной, а взять я ее не могу. Говорят через индикаторы можно как-то.

8 (2023-09-11 15:04:47 отредактировано swerg)

Re: Как получить sec_code по идентификатору графика?

Оказывается, вызванная в контексте скрипта-индикатора функция getDataSourceInfo() без параметров позволяет получить данные об источнике данных графика, на который накинут это индикатор. В том числе и код инструмента / код класса.

Не знал такого.

9

Re: Как получить sec_code по идентификатору графика?

мне тут немножко подсказали [url]https://forum.quik.ru/messages/forum10/message71859/topic8232/?result=reply#message71859[/url]
но я немного туп ((