Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок

Страницы: 1 2 3 4 5 След.
RSS
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 

Уважаемые клиенты!

Данное уведомление обязательно к ознакомлению всеми участниками торгов на срочном рынке Московской биржи.

Сообщаем, что Московская биржа уведомила участников торгов о важных изменениях в новой версии торговой системы срочного рынка. Ключевым нововведением является увеличение размерности идентификатора заявок и сделок: после обновления торговой системы идентификатор будет занимать до 19 десятичных знаков. В промышленной системе данное изменение запланировано на 14 сентября 2020 года: https://www.moex.com/n29676

Уведомляем Вас, что старые версии терминалов QUIK не поддерживают полноценную работу с 19-значными номерами. Это ОЧЕНЬ ВАЖНО! Если Вы работаете со скриптами QLUA, обязательно выполните все нижеописанные рекомендации.

Сообщаем о мерах, которые необходимо предпринять для корректной работы с 19-значными номерами заявок и сделок в QLUA:

1. Для корректной работы с 19-значными номерами в QLUA потребуется обновление терминала QUIK до версии 8.5 или более новой. Для получения с сервера Вашего брокера новой версии терминала для ОС Windows, перейдите в торговом терминале QUIK в пункт меню Система / О программе / Проверить обновление программы.

Мы настоятельно рекомендуем получать обновление торгового терминала именно с сервера брокера, с которым Вы работаете, однако, если Ваш брокер еще не выложил соответствующее обновление на свои сервера, с целью отладки скриптов на QLUA, Вы можете скачать новую версию торгового терминала QUIK с нашего FTP: ftp://ftp.quik.ru/public/updates/8.7/quik_8.7.1_upd.zip

ВАЖНО! Перед обновлением обязательно сделайте резервную копию папки, в которой у Вас установлен торговый терминал QUIK.

2. В связи с необходимостью поддержки 19-значных номеров, в терминале версии 8.5 выполнено изменение версии LUA c 5.1 до 5.3. В связи с этим:

  • Выполнение скриптов, скомпилированных под версию Lua 5.1, будет невозможно на новой версии терминала QUIK, для решения проблемы потребуется повторная компиляция под версию Lua 5.3.

  • Так как Lua 5.3 частично обратно не совместим с версией Lua 5.1, настоятельно рекомендуется провести повторную отладку скриптов на новой версии терминала, и убедиться в их работоспособности. Более подробную информацию о совместимости Lua 5.1 и 5.3 можно получить по ссылкам:
    https://www.lua.org/manual/5.1/manual.html#7
    https://www.lua.org/manual/5.3/manual.html#8
    https://www.lua.org/manual/5.2/manual.html#8

На нашем сайте в разделе «файловый архив» (https://arqatech.com/ru/support/files/) выложены новые версии индикаторов на Lua, которые совместимы как с Lua 5.3, так и с Lua 5.1. Если Вы использовали примеры этих скриптов в работе, их следует заново скачать, и обновить.

Дополнительная информация относительно внедрения 19-значных номеров заявок и сделок также доступна здесь: https://forum.quik.ru/forum1/topic5117/.

Ответы на часто задаваемые вопросы:

1. Вопрос:

  • У меня есть скрипты на QLUA, однако эти скрипты не используются для работы с данными срочного рынка Московской биржи, я хочу обновить терминал до версии 8.5, должен ли я проводить повторную компиляцию скриптов, а также их отладку на версии 8.5?

Ответ:

  • Да, если Вы планируете обновлять терминал до версии 8.5, это надо сделать обязательно, даже если Вы не работаете на срочном рынке Московской Биржи.
2. Вопрос:
  • У меня есть скрипты на QLUA, однако эти скрипты не используются для работы с данными срочного рынка Московской биржи, на срочном рынке Московской Биржи я не торгую и не планирую торговать, надо ли мне обновляться до версии 8.5,  проводить повторную компиляцию скриптов, а также их отладку или же можно остаться на старой версии терминала?

Ответ:

  • Если Вы не используете Ваши скрипты для работы с данными срочного рынка Московской биржи и не торгуете на этом рынке, то Вы можете какое-то время оставаться на версии терминала 8.4 (или более старой), повторная компиляция и отладка скриптов в этом случае не потребуется; однако эту процедуру все же потребуется выполнить, если Вы в последующем решите обновить терминал до версии 8.5 или более новой.
3. Вопрос:
  • У меня есть скрипты на QLUA, я используют эти скрипты для регистрации/снятия заявок на срочном рынке Московской биржи, что произойдет, если я не обновлю терминал до версии 8.5, не проведу отладку скриптов и не выполню их повтор компиляцию?

Ответ:

  • После внедрения 19-значных номеров заявок и сделок в промышленной системе срочного рынка Московской Биржи Ваши скрипты высоковероятно перестанут работать, Вам необходимо обязательно запланировать обновление терминала до версии 8.5, а также провести повторную компиляцию и отладку скриптов.
4. Вопрос:
  • Я не использую скрипты QPILE и QLUA, должен ли я выполнять какие-либо дополнительные действия перед обновлением терминала до версии 8.5?

Ответ:

  • Если Вы не используете скрипты QPILE и QLUA, то выполнение каких-либо дополнительных действий не потребуется.
5. Вопрос:
  • У меня нет скриптов на QLUA, но есть скрипты на QPILE, алгоритм которых никак не связан со срочным рынком Московской Биржи, должен ли я обновлять терминал до версии 8.5, и выполнять какие-либо дополнительные действия?

Ответ:

  • Если у Вас нет скриптов на QLUA, то выполнение каких-либо дополнительных действий при обновлении терминала до версии 8.5 не потребуется; если Ваши скрипты QPILE не работают с данными срочного рынка Московской Биржи, то их повторная отладка не потребуется.
6. Вопрос:
  • У меня нет скриптов на QLUA, но есть скрипты на QPILE, которые выставляют/снимают заявки на срочным рынке Московской Биржи; должен ли я обновлять терминал до версии 8.5, и выполнять какие-либо дополнительные действия?

Ответ:

  • После внедрения 19-значных номеров заявок и сделок в промышленной системе срочного рынка Московской Биржи Ваши QPILE скрипты высоковероятно перестанут работать, Вам необходимо обязательно запланировать обновление терминала до версии 8.5, а также реализовать Ваш алгоритм на языке QLUA.
7. Вопрос:
  • Будет ли корректно работать функция tostring с большими числами?

Ответ:

  • Да, будет.
8. Вопрос:
  • Поменяются ли типы данных у параметров таблиц и параметров функций, которые с ними работают?
Ответ:
  • Нет, не поменяются.

9. Вопрос:

  • Что делать если возникает ошибка вида "version mismatch in precompiled chunk"?

Ответ:

  • Это означает что у Вас используется скомпилированный lua проект созданный на версии Lua 5.1. Необходимо провести повторную компиляцию на Lua 5.3.

10. Вопрос:

  • Почему транзакция отвергается с ошибкой "Число не может содержать знак разделителя дробной части"?

Ответ:

  • Причина в неверном преобразовании из числа (например цены или количества) в строку.
    Начиная с Lua 5.3, для вещественных типов данных, при переводе из числа в строку функцией tostring, у целых чисел добавляется в конце ".0"
    Для решения проблемы, следует вместо функции tostring использовать другой метод, например:
    function tostringEX(x)
    return tostring(math.tointeger(x) or x)
    end

11. Вопрос:

  • Мои скрипты используются как на старых версиях так и на новых, как избежать создания отдельных скриптов для каждой версии?

Ответ:

  • Вы можете добавить в скрипт проверку версии терминала на соответствие.
    Например так:
    isValidVersion = (tonumber(string.sub(getInfoParam ("VERSION"), 1, 3)) or 8.5 >= 8.5)
    Переменная isValidVersion будет иметь значение true если терминал версии 8.5 или выше.
    В зависимости от значения этой переменной использовать те или иные функции.
    Кроме того, существует возможность проверки версии самого ядра Lua через встроенную константу _VERSION

12. Вопрос:

  • Что означает ошибка вида "bad header in precompiled chunk"?

Ответ:

  • Означает что у Вас используется скомпилированный lua проект созданный на х32 версии версии Lua.
    Необходимо провести повторную компиляцию на х64 Lua.
    В данном пункте версия Lua не играет роли, только разрядность

13. Вопрос:

  • Что делать если при подключении своей DLL к Lua скрипту возникает ошибка вида "too many C levels (limit is 200) in main function near some.dll"?

Ответ:

  • Необходимо вместо функции require использовать package.loadlib
    Например так:
    package.loadlib(getScriptPath() .. "\\some.dll", "luaopen_somemetod")()
    Где вместо some.dll указать имя Вашей DLL, а вместо luaopen_somemetod указать имя Вашего метода.
 
А где можно скачать версию терминала QUIK, на которой можно проверить QLua-скрипты, подключившись к тестовому серверу?
 
Нашёл инфу в соседней ветке: https://forum.quik.ru/forum1/topic5117/

Цитата
6. Проблемы работы с длинными номерами в QLUA (на любых версиях терминала на момент публикации данного уведомления).
Для    решения проблем пп. 5-6 следует установить версию терминала QUIK,   которая на момент публикации данного уведомления еще не вышла, но   планируется к выпуску до того, как данное изменение в торговой системе   будет внедрено.
 
Цитата
В связи с вышеизложенным настоятельно рекомендуется проверить  работоспособность своих скриптов с 19-значными номерами заявок и сделок.
Настоятельно рекомендуем проверить тем, что еще не вышло и неизвестно как будет реализовано...

Более подробно распишите, как сделать эту волшебную операцию, Вы же не можете в открытую издеваться над пользователями?
 
Цитата
Александр М написал:
Цитата
В связи с вышеизложенным настоятельно рекомендуется проверить  работоспособность своих скриптов с 19-значными номерами заявок и сделок.
Настоятельно рекомендуем проверить тем, что еще не вышло и неизвестно как будет реализовано...

Более подробно распишите, как сделать эту волшебную операцию, Вы же не можете в открытую издеваться над пользователями?
Добрый день.

Цель данного оповещения - раннее предупреждение о грядущих изменениях, чтобы пользователи уже сейчас начинали работать в данном направлении. По поводу выхода соотв. версии рекомендуем следить за обновлениями в данной ветке форума.
 
Цитата
Alexey Ivannikov написал:
Цитата
Александр М написал:
 
Цитата
В связи с вышеизложенным настоятельно рекомендуется проверить  работоспособность своих скриптов с 19-значными номерами заявок и сделок.
 Настоятельно рекомендуем проверить тем, что еще не вышло и неизвестно как будет реализовано...

Более подробно распишите, как сделать эту волшебную операцию, Вы же не можете в открытую издеваться над пользователями?
Добрый день.

Цель данного оповещения - раннее предупреждение о грядущих изменениях, чтобы пользователи уже сейчас начинали работать в данном направлении. По поводу выхода соотв. версии рекомендуем следить за обновлениями в данной ветке форума.
Если вы хотя бы в общих чертах опишите грядущие изменения, то мы начнем работать. Подтвердите информацию:
1. Lua обновляется до версии 5.3
2. Тип полей во всех текущих функциях, которые в качестве параметров требуют ввода номера заявки или сделки или возвращают номер заявки или сделки, НЕ поменяется.
3. Функция tostring будет корректно работать в новыми большими числами.
4. Какие еще возможные изменения могут быть?
 
Цитата
Александр М написал:
2. Тип полей во всех текущих функциях, которые в качестве параметров требуют ввода номера заявки или сделки или возвращают номер заявки или сделки, НЕ поменяется.
По-моему, весь смысл перехода на 5.3 в том, чтообы тип этих полей поменялся. В NUMBER больше 51 бита не впереть даже на 5.3.
 
Цитата
Anton написал:
Цитата
Александр М написал:
2. Тип полей во всех текущих функциях, которые в качестве параметров требуют ввода номера заявки или сделки или возвращают номер заявки или сделки, НЕ поменяется.
По-моему, весь смысл перехода на 5.3 в том, чтообы тип этих полей поменялся. В NUMBER больше 51 бита не впереть даже на 5.3.
Там хитрее сделано. Пока идёт работа только с целыми числами, используются все биты как в стандартной целочисленной арифметике в других языках, а вот при смешивании целых чисел и double получается результат double. Например, для перевода целого числа x  в double рекомендуют делать что-то типа x = x + 0.0
 
Т.е. если, напр, из большой целочисленной переменной вычесть другую переменную, которая нечаянно окажется double, то результат будет тоже double и в итоге потеря точности?
 
Цитата
Latrop написал:
Там хитрее сделано.
*Там ... в железе

Цитата
Latrop написал:
то результат будет тоже double
полностью согласен, все современные компы - фуфло ... выбрасывай-несумлевайся  
 
Цитата
Anton написал:
Цитата
Александр М написал:
2. Тип полей во всех текущих функциях, которые в качестве параметров требуют ввода номера заявки или сделки или возвращают номер заявки или сделки, НЕ поменяется.
По-моему, весь смысл перехода на 5.3 в том, чтообы тип этих полей поменялся. В NUMBER больше 51 бита не впереть даже на 5.3.
выдержка из Lua 5.3: "Стандартный Lua использует 64-битные целые (integer) и вещественные числа двойной точности (double 64-bit)"
 
Цитата
Александр М написал:
вещественные числа двойной точности (double 64-bit)
Только там под мантиссу 52 бита оставлено, откуда и все нынешние проблемы. Там еще старший бит неявный, подразумевается всегда единица, а если это не так, получается денормализованное число и т.д. и т.п., в общем в даблы 64 бита не влезают хоть тресни. Более того, никакие ухищрения вроде *reinterpret_cast<unsigned long long *>(&dbl) = 0xFFFFFFFFFFFFFFFFULL надежными не будут, дабл всегда может заехать в сопроцессор без уведомления, а тот его "подправит" под ожидаемый формат, да и сишный рантайм тоже ожидает дабл в виде дабла и может что-нибудь с ним сделать под ковром.
 
Цитата
Anton написал:
Цитата
Александр М написал:
вещественные числа двойной точности (double 64-bit)
Только там  под мантиссу 52 бита оставлено , откуда и все нынешние проблемы. Там еще старший бит неявный, подразумевается всегда единица, а если это не так, получается денормализованное число и т.д. и т.п., в общем в даблы 64 бита не влезают хоть тресни. Более того, никакие ухищрения вроде *reinterpret_cast<unsigned long long *>(&dbl) = 0xFFFFFFFFFFFFFFFFULL надежными не будут, дабл всегда может заехать в сопроцессор без уведомления, а тот его "подправит" под ожидаемый формат, да и сишный рантайм тоже ожидает дабл в виде дабла и может что-нибудь с ним сделать под ковром.
Для номера заявки или сделки достаточно целого числа Integer 64 бит, это 20 знаков (без знака) или 19 (со знаком)
https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%BE%D0%B5_(%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)
Зачем его в double переводить?
Numeric в lua 5.3 представлен 2 типами.
 
Цитата
Александр М написал:
Зачем его в double переводить?
Значит, я исходный посыл не так понял. Конечно не нужно переводить. Главное, как выше написали, как-нибудь неожиданно для себя не перевести:
Цитата

In a conversion from integer to float, if the integer value has an exact representation as a float, that is the result. Otherwise, the conversion gets the nearest higher or the nearest lower representable value. This kind of conversion never fails

Отсюда.
 
Добрый день.

Уважаемые клиенты, исходное сообщение данной темы дополнено следующей информацией:

Цитата
Сообщаем о мерах, которые необходимо предпринять для корректной работы с 19-значными номерами заявок и сделок в QLUA:
1. Для корректной работы с 19-значными номерами в QLUA потребуется обновление терминала QUIK. На момент публикации данного уведомления версия с поддержкой 19-значных номеров в QLUA еще не вышла, но  планируется к выпуску до того, как данное изменение в торговой системе будет внедрено. Новость о выпуске версии терминала QUIK будет размещена на соответствующей странице нашего сайта (https://arqatech.com/ru/about/news/), кроме того, мы сообщим об этом в данной ветке форума.
2. В связи с необходимостью поддержки 19-значных номеров, в терминале новой версии запланировано изменение версии LUA c 5.1 до 5.3. Это, в свою очередь, означает следующее:
- Выполнение скриптов, скомпилированных под версию Lua 5.1, будет невозможно на новой версии терминала QUIK, для решения проблемы потребуется повторная компиляция под версию Lua 5.3;
- Lua 5.3 частично обратно не совместим с версией Lua 5.1, поэтому мы настоятельно рекомендуем провести повторную отладку скриптов на новой версии терминала, и убедиться в их работоспособности; более подробную информацию о совместимости Lua 5.1 и 5.3 можно получить по ссылкам:
https://www.lua.org/manual/5.3/manual.html#8
https://www.lua.org/manual/5.2/manual.html#8
https://www.lua.org/manual/5.1/manual.html#7

На нашем сайте в разделе «файловый архив» (https://arqatech.com/ru/support/files/) выложены новые версии индикаторов на Lua, которые совместимы как с Lua 5.3, так и с Lua 5.1. Если Вы использовали примеры этих скриптов в работе, их следует заново скачать, и обновить (это можно и нужно сделать, не дожидаясь выхода новой версии терминала QUIK с поддержкой Lua 5.3).

Ответы на часто задаваемые вопросы:

Вопрос:
  • Будет ли корректно работать функция tostring с большими числами?
Ответ:
  • Да будет.
Вопрос:
  • Поменяются ли типы данных у параметров таблиц и параметров функций, которые с ними работают?
Ответ:
  • Нет, не поменяются.
 
Цитата
Alexey Ivannikov написал:
Добрый день.

Уважаемые клиенты, исходное сообщение данной темы дополнено следующей информацией:

Цитата
....
Совсем другое дело, спасибо.
 
Добрый день.

Обращаем Ваше внимание, что первоначальное сообщение дополнено следующей информацией:

- изменилась дата внедрения данного изменения (теперь точно известно, что это случится 25 мая);
- поменялась ссылка на пресс-релиз биржи.
 
Цитата
Alexey Ivannikov написал:
- поменялась ссылка на пресс-релиз биржи.
Цитата
Alexey Ivannikov написал:
запланировано на 25 мая 2020 года:  https://www.moex.com/n27033 .
Правильная ссылка вот:
https://www.moex.com/n27761
 
Кстати! Уважаемые разработчики Квика!
У вас же всяко-разно есть уже бета (или может даже релиз-кандидат) 8.5 версии с этими доработками.

Учитывая, так сказать, текущую конъюнктуру биржевых (и не только) реалий, почему бы вам не выложить предварительную версию (на ftp), разумеется с соответствующей декларацией-предупреждением (ну как это обычно делается).
Проявить, так сказать, заботу о своих дорогих пользователях, дав им больше времени на проверку и адаптацию своих систем.
Заодно получить обратную связь по апробации всего этого дела.

Понятно, что вам захочется сразу в ответ дать категоричное Нет.
Но, большая просьба, попытаться донести это предложение до принимающих такие решения.
Нормальная же, современная практика.
Глядишь, и будет позитив... :)
 
Цитата
Latrop написал:
Кстати! Уважаемые разработчики Квика!
У вас же всяко-разно есть уже бета (или может даже релиз-кандидат) 8.5 версии с этими доработками.

Учитывая, так сказать, текущую конъюнктуру биржевых (и не только) реалий, почему бы вам не выложить предварительную версию (на ftp), разумеется с соответствующей декларацией-предупреждением (ну как это обычно делается).
Проявить, так сказать, заботу о своих дорогих пользователях, дав им больше времени на проверку и адаптацию своих систем.
Заодно получить обратную связь по апробации всего этого дела.

Понятно, что вам захочется сразу в ответ дать категоричное Нет.
Но, большая просьба, попытаться донести это предложение до принимающих такие решения.
Нормальная же, современная практика.
Глядишь, и будет позитив... :)
Добрый день.

Версию обязательно предоставим, потерпите ещё немного пожалуйста.
 
А как быть с 32-разрядной версией Квика?
 
Цитата
Constantin написал:
А как быть с 32-разрядной версией Квика?
В ней не планируется изменений.
 
Вроде как, можно начинать тестирование Lua 5.3 и поддержку 19-значных номеров заявок. Больше тестов и обратной связи -- больше шансов на безглючный переход.
ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip
 
Цитата
_sk_ написал:
Вроде как, можно начинать тестирование Lua 5.3 и поддержку 19-значных номеров заявок. Больше тестов и обратной связи -- больше шансов на безглючный переход.
ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip
Хотелось бы получить официальный ответ, можно ли начинать тестирование.
Также я увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная и вообще по какому принципу они используются при запуске lua-скриптов?
 
Цитата
Александр М написал:
увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная
Можно предположить, что 5.1 оставили для какой-то там совместимости, 5.3 экспортирует все то же самое (с поправкой на версию луа). Пока не обнаружил, чтобы что-нибудь крэшнулось без 5.1 (просто убрал ее).
 
Цитата
Anton написал:
Цитата
Александр М написал:
увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная
Можно предположить, что 5.1 оставили для какой-то там совместимости, 5.3 экспортирует все то же самое (с поправкой на версию луа). Пока не обнаружил, чтобы что-нибудь крэшнулось без 5.1 (просто убрал ее).
Не хочется просто так экспериментировать. Я все-таки подожду официальный ответ. В Документации тоже ни слова, что кстати странно, как минимум должны были именно в Документации озвучить, что версия lua меняется и ссылку дать на различия в версиях.
 
Цитата
Александр М написал:
В Документации тоже ни слова, что кстати странно, как минимум должны были именно в Документации озвучить, что версия lua меняется и ссылку дать на различия в версиях.
Справедливости ради, при первом запуске 8.5 выкинул диалог с как раз этим предупреждением о смене версии и ссылкой куда-то, как бы не сюда.
 
Так, первые вопросы уже созрели. Пишем длл
Код
struct test
{
   test() { ::MessageBoxA(NULL, "ctor", NULL, 0); }
   ~test() { ::MessageBoxA(NULL, "dtor", NULL, 0); }
};

static void generr(lua_State * s, const char * txt)
{
   lua_pushstring(s, txt);
   lua_error(s);
}

static int qmain(lua_State * s)
{
   try
   {
      test tst;
      ::generr(s, "error msg");
   }
   catch(...)
   {
      ::MessageBoxA(NULL, "Exception caught", NULL, 0);
      throw;
   }
   return 0;
}
Собираем с 5.1, запускаем в 8.3, получаем три сообщения: ctor, dtor, Exception caught. Все правильно, lua_error генерирует эксепшены и это прекрасно. Теперь собираем с 5.3, запускаем в 8.5, получаем ДВА сообщения: ctor, dtor. Эксепшен не пойман. Допустив, что мой рантайм не обязательно совпадает с арковским, повторил упражнение на чистом SEH. То же самое, нет там эксепшена. Вариант "собирали gcc + dwarf" отметаю как малореальный. Остается вариант...

...луа с лонгджампами собрали? Это же жесть. Может, пока (почти) никто не видел, пересобрать по-тихому? )
 
Цитата
Anton написал:
Цитата
Александр М написал:
увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная
Можно предположить, что 5.1 оставили для какой-то там совместимости, 5.3 экспортирует все то же самое (с поправкой на версию луа). Пока не обнаружил, чтобы что-нибудь крэшнулось без 5.1 (просто убрал ее).
Что касается совместимости с 5.1 (видимо для этого там lua5.1.dll), то она несовместимая пока получается.

Например, Квик просто весь падает при попытке запустить Lua Socket (версия для lua51, x64 отлично работавшая под Quik 8.4).
Копия lua5.1.dll в lua51.dll (необходимая для станд сборки Lua Socket) делалась.
 
Цитата
Latrop написал:
Что касается совместимости с 5.1 (видимо для этого там lua5.1.dll), то она несовместимая пока получается.
Подтверждаю, вышеописанная длл из одной функции тоже падает, если собрать под 5.1 и запустить в 8.5. Причем если ошибка не генерируется, падает только скрипт и квик пишет access violation, если генерируется - падает весь квик без дампа. Если убрать lua5.1.dll, разрушения меньше, скрипт просто не может загрузить длл. Так что присутствие ее остается загадкой.
 
Цитата
Александр М написал:
Цитата
_sk_ написал:
Вроде как, можно начинать тестирование Lua 5.3 и поддержку 19-значных номеров заявок. Больше тестов и обратной связи -- больше шансов на безглючный переход.
 ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip
Хотелось бы получить официальный ответ, можно ли начинать тестирование.
Также я увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная и вообще по какому принципу они используются при запуске lua-скриптов?
Добрый день,

Да, тестирование можно проводить на версии 8.5.1. При запуске lua-скриптов используется версия библиотеки 5.3.
Более подробную информацию о совместимости Lua 5.1 и 5.3 можно получить по ссылкам:
https://www.lua.org/manual/5.1/manual.html#7
https://www.lua.org/manual/5.3/manual.html#8
https://www.lua.org/manual/5.2/manual.html#8
https://www.lua.org/manual/5.1/manual.html#7
 
не могу найти ссылку,а где взять QLUA 5.3?
 
Цитата
Sergey Denegin написал:
не могу найти ссылку,а где взять QLUA 5.3?
Добрый день,

Библиотека находится в архиве с обновлением:
ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip
 
Цитата
Anton написал:
Так, первые вопросы уже созрели. Пишем длл
Код
  struct test
{
   test() { ::MessageBoxA(NULL,  "ctor" , NULL,  0 ); }
   ~test() { ::MessageBoxA(NULL,  "dtor" , NULL,  0 ); }
};

static void generr(lua_State  *  s, const char  *  txt)
{
   lua_pushstring(s, txt);
   lua_error(s);
}

static int qmain(lua_State  *  s)
{
   try
   {
      test tst;
      ::generr(s,  "error msg" );
   }
   catch( .. .)
   {
      ::MessageBoxA(NULL,  "Exception caught" , NULL,  0 );
      throw;
   }
    return   0 ;
}
  
Собираем с 5.1, запускаем в 8.3, получаем три сообщения: ctor, dtor, Exception caught. Все правильно, lua_error генерирует эксепшены и это прекрасно. Теперь собираем с 5.3, запускаем в 8.5, получаем ДВА сообщения: ctor, dtor. Эксепшен не пойман. Допустив, что мой рантайм не обязательно совпадает с арковским, повторил упражнение на чистом SEH. То же самое, нет там эксепшена. Вариант "собирали gcc + dwarf" отметаю как малореальный. Остается вариант...

...луа с лонгджампами собрали? Это же жесть. Может, пока (почти) никто не видел, пересобрать по-тихому? )
Добрый день,
     
      Действительно, lua53.dll собрана с отличной от lua5.1.dll       конфигурацией. Мы исправим конфигурацию в ближайшем обновлении ПО.
 
А у меня и без dll скрипты разваливаются при использовании coroutine

Посреди скрипта вызов getScriptPath()  начинает вдруг возвращать вместо тип string тип function. При старте скрипта возвращает правильно. Внешние библиотеки все убрал на время теста. На 5.1 работает все на ура.

Какая то сильная магия со стеком, не иначе....
www.bot4sale.ru        t.me/bot4sale
 
s_mike@rambler.ru,
Михаил,
Пришлите пример кода.
 
А вот с индикаторами пролем не заметил, и при использовании внешних библиотек тоже. Видимо, рубильник между вызовами oncalculate работает исправно, да и корутин нет.
www.bot4sale.ru        t.me/bot4sale
 
Цитата
Sergey Gorokhov написал:
s_mike@rambler.ru,
Михаил,
Пришлите пример кода.
Сергей, скажите адрес, куда выслать
www.bot4sale.ru        t.me/bot4sale
 
Можно отправлять на адрес поддержки quiksupport@arqatech.com
 
Цитата
Alexandr Shumilin написал:
quiksupport@arqatech.com
Отправил
www.bot4sale.ru        t.me/bot4sale
 
Здравствуйте.
Помогите собрать dll под QUIK 8.5, не собирается.
Под QUIK 8.0 ранее собрал, но она не подключается в lua скрипте. Использую require, а QUIK в ответ Critical error ACCESS_VIOLATION in script

Lua 5.3.5 скачал тут
https://sourceforge.net/projects/luabinaries/files/5.3.5/Windows%20Libraries/Static/lua-5.3.5_Win64_...

Файлы из архива заменил, но не собирается. Ошибки:
Ошибка 1 error C2079: "ls_lib" использует неопределенный struct "ls_lib"
Ошибка 2 error C2078: слишком много инициализаторов
Ошибка 3 error C3861: luaL_openlib: идентификатор не найден
4 IntelliSense: недопустимый неполный тип  (это она ls_lib ругается)
5 IntelliSense: идентификатор "luaL_openlib" не определен
 
Новая версия для тестирования: ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.2_upd.zip
 
Цитата
Anton написал:
Так, первые вопросы уже созрели. Пишем длл
Код
  struct test
{
   test() { ::MessageBoxA(NULL,  "ctor" , NULL,  0 ); }
   ~test() { ::MessageBoxA(NULL,  "dtor" , NULL,  0 ); }
};

static void generr(lua_State  *  s, const char  *  txt)
{
   lua_pushstring(s, txt);
   lua_error(s);
}

static int qmain(lua_State  *  s)
{
   try
   {
      test tst;
      ::generr(s,  "error msg" );
   }
   catch( .. .)
   {
      ::MessageBoxA(NULL,  "Exception caught" , NULL,  0 );
      throw;
   }
    return   0 ;
}
  
Собираем с 5.1, запускаем в 8.3, получаем три сообщения: ctor, dtor, Exception caught. Все правильно, lua_error генерирует эксепшены и это прекрасно. Теперь собираем с 5.3, запускаем в 8.5, получаем ДВА сообщения: ctor, dtor. Эксепшен не пойман. Допустив, что мой рантайм не обязательно совпадает с арковским, повторил упражнение на чистом SEH. То же самое, нет там эксепшена. Вариант "собирали gcc + dwarf" отметаю как малореальный. Остается вариант...

...луа с лонгджампами собрали? Это же жесть. Может, пока (почти) никто не видел, пересобрать по-тихому? )
Добрый день,
     
      Описанная в данном инциденте ошибка была исправлена в версии 8.5.2       терминала QUIK.
      Рекомендуем вам обновить версию программы.
     
      Приносим извинения за причиненные неудобства.
 
В терминале QUIK версии 8.5 лежат 3 dll-файла:
qlua.dll
lua5.1.dll
lua53.dll

Что в них содержится? как они теперь взаимодействуют?

В предыдущих версиях было 2 файла:
qlua.dll -- содержит весь интерпретатор Lua
lua5.1.dll -- содержит только прокси вызовов в qlua.dll

А в 8.5 как это всё устроено?
 
Цитата
swerg написал:
А в 8.5 как это всё устроено?
Уточните зачем Вам это?
Мы считаем что все DLL файлы которые лежат в дистрибутиве, должны лежать в дистрибутиве без пояснения причин.
Просто так надо.
 
Цитата
Sergey Gorokhov написал:
Цитата
swerg написал:
А в 8.5 как это всё устроено?
Уточните зачем Вам это?
Мы считаем что все DLL файлы которые лежат в дистрибутиве, должны лежать в дистрибутиве без пояснения причин.
Просто так надо.
Хороший ответ, поясняющий. Зачем в дистрибутиве, по которому официально обьявлено, что он переведен на lua 5.3 нужен файл lua5.1.dll?  
 
Цитата
Александр М написал:
Хороший ответ, поясняющий. Зачем в дистрибутиве, по которому официально обьявлено, что он переведен на lua 5.3 нужен файл lua5.1.dll?  
Ответ уже был дан, просто так надо.
Потом может удалим.
 
Цитата
Александр М написал:
Зачем в дистрибутиве, по которому официально обьявлено, что он переведен на lua 5.3 нужен файл lua5.1.dll?  
Как зачем? Терминал же теперь поддерживает две версии 5.1 и 5.3, не?
 
Цитата
Imersio Arrigo написал:
Цитата
Александр М написал:
Зачем в дистрибутиве, по которому официально обьявлено, что он переведен на lua 5.3 нужен файл lua5.1.dll?  
Как зачем? Терминал же теперь поддерживает две версии 5.1 и 5.3, не?
С чего вы это взяли? Читайте внимательно официальное сообщение:

"В связи с необходимостью поддержки 19-значных номеров, в терминале версии 8.5 выполнено изменение версии LUA c 5.1 до 5.3. В связи с этим:

  • Выполнение скриптов, скомпилированных под версию Lua 5.1, будет невозможно на новой версии терминала QUIK, для решения проблемы потребуется повторная компиляция под версию Lua 5.3.

"
 
Цитата
Imersio Arrigo написал:
поддерживает две версии 5.1 и 5.3, не?
По крайней мере для пользовательских скриптов это малореально в принципе. Ну то есть героически порешать может и можно, только зачем. Скорей всего какой-то из плагинов тоже на луа завязан и его до сих пор не переписали. Как перепишут, так и 51 выкинут.
Страницы: 1 2 3 4 5 След.
Читают тему (гостей: 2)
Наверх