1 (2020-07-07 21:08:05 отредактировано pessimist)

Тема: Чтение из окна сообщений терминала QUIK

Здравствуйте, уважаемые форумчане! Прежде, чем обратиться к сообществу с вопросами - хочу поблагодарить всех участников данного сообщества, которые опубликовали здесь много полезных материалов.

Благодарен всем, но особенно "Большое спасибо!" хочется сказать:

swerg
admin
toxa

В общем, не было у бабы хлопот - купила баба порося. Как стукнуло мне 50 лет, так я решил знакомиться с программированием для торгового терминала QUIK. В общем, старого кобеля сложно обучить новым трюкам, но с помощью данного форума кое-какие трюки на QLUA мне освоить удалось, но на этом мои успехи пока заканчиваются.

А теперь по существу моей просьбы: брокер у меня ВТБ...

Любит он перестать транслировать в QUIK какие-либо параметры. Причем, без объявления войны. Вчера транслировались минимально возможные цены по инструментам, а сегодня - нет, только голые нули в таблице "Текущие торги". Впрочем, я не жалуюсь на брокера, например, БКС эти цены, вообще, в QUIK никогда не транслировал, лень ему, видно...

Остается единственный выход узнать минимально-возможную цену - это послать в торговую систему заявку с заранее заниженной ценой. Тогда, сама торговая система биржи транслирует ответ вроде:
"Указанная цена недопустима, для данного инструмента минимальная цена 0,98%"

К сожалению, ответ биржи транслируется только в окне сообщений QUIK, к которому средствами QLUA доступ получить не представляется возможным. (Ну, таком окне, которое вызывается функцией QLUA: message ("Hello world!", 1))

Более, чем уверен, что местные аксакалы давно испепелили весь QUIK вдоль и поперек, может, кто-то из Вас поделится информацией по подходящей библиотеке на каком-либо диалекте C или другом языке, которая помогла бы решить данный вопрос? В идеале нужна функция, которая прочитает текст из окна сообщений терминала QUIK.

Заранее - всем спасибо за ответы!

P.S.

Пробовал запустить lua_multilist.dll доброго автора toxa, но тестовый скрипт обругал меня, выдав в сообщениях нули и nil'ы,

то ли я совсем не острый (что имеет место быть), то ли для QUIK 8.4.1.6 первый релиз библиотеки устарел, а для второго релиза нужен QUIK 8.5 и библиотека lua53.dll... А ВТБ еще не выдал 8.5 клиентам "на гора"...

P.P.S.

Да, это моя острота всему виной.... Самая первая сборка библиотеки - работает для QUIK 8.4.1.6, просто заголовки из тестового примера не совпали с действующими, поэтому были нули и, соответственно, nil'ы

В общем, пытался получить номер таблицы "QUIK: окно сообщений" - получил htable = 0
А ввел, например, "Доступные скрипты" - получил, как надо: htable ="Номер таблицы "Доступные скрипты"

В общем, проблема найти правильный заголовок для окна сообщений, чтобы библиотека lua_multilist.dll его нашла...

P.P.P.S.

От сообщения моего, уважаемые администраторы, можно оставить только благодарности в адрес участников форума...

Виноват, туплю...

В общем, чтобы получить возможность читать все системные сообщения нужно сначала открыть в QUIK окно таблицы "Системные сообщения". Пишу об этом для таких как я, кто долго догоняет...

И тогда, о чудо htable ="Номер таблицы "Системные сообщения" (посыпая голову пеплом и ...)

Ну, а дальше меняя ряды и колонки - можно читать все сообщения подряд и выбирать нужные.

Еще раз - большое спасибо автору библиотеки lua_multilist.dl - toxa

2

Re: Чтение из окна сообщений терминала QUIK

pessimist пишет:

Остается единственный выход узнать минимально-возможную цену - это послать в торговую систему заявку с заранее заниженной ценой. Тогда, сама торговая система биржи транслирует ответ вроде:
"Указанная цена недопустима, для данного инструмента минимальная цена 0,98%"

Здравствуйте, для этого существует OnTransReply(), поле result_msg будет содержать "..минимальная цена 0,98%".

3

Re: Чтение из окна сообщений терминала QUIK

kalikazandr пишет:

Здравствуйте, для этого существует OnTransReply(), поле result_msg будет содержать "..минимальная цена 0,98%".

Здравствуйте, уважаемый kalikazandr!

Большое спасибо за добрый совет!

Вот так, всегда - полезешь за гландами, а оказывается - все можно достать гораздо ближе.

Век живи, век учись - дураком помрешь...

Завтра буду пробовать. Никогда коллбэки, кроме OnStop() еще не использовал. В описании функции OnTransReply() только и сказано, что поле result_msg имеет тип STRING и содержит сообщение, но не сказано от кого и какое smile

Еще раз - спасибо. Теперь у меня есть два путя...