Нас грузит какая-то определенная версия и мы с этой версией должны работать. Можно не линковаться с luaxx.dll, а подгружать ее динамически, чтобы одна длл работала во всех 8 версиях, но это геморрой тот еще. Там тупо придется разные функции импортировать в зависимости от версии и писать обертки для согласования, причем не везде это тривиально можно сделать, не говоря уже о неоправданном оверхеде в рантайме. Посмотрите на lua_upvalueindex например. В нормальном случае она компилируется просто в константу, в случае "универсальной длл" это будет что-то вроде
почему новый квик 8.5.2.11 может не видеть скомпилированный индикатор? если не компилировать то его видно и нормально работает а если скомпилировать - то его уже не видно в списке, что может быть не так?
s_mike@rambler.ru написал: Сеорее всего компилируете неподходящей версией luac
я собрал 5.3.5, а какую надо использовать?
отбой, разобрался. я случайно собрал lua 5.3.5 в x86 версии. а компилятор luac должен был быть x64, формат прекомиленных lua файлов разный для разных платформ, оказывается.
Уточните зачем Вам это? Мы считаем что все DLL файлы которые лежат в дистрибутиве, должны лежать в дистрибутиве без пояснения причин. Просто так надо.
Вы можете считать как угодно, однако было бы здорово, если бы вы нашли в себе силы нормально документировать систему. И отвечать на вопросы, а не переспрашивать в ответ "зачем вам это надо". Т.е. скрипты Lua могут использовать внешние dll-библиотеки, то критично важно знать как сейчас технически устроен интерпретатор Lua в QUIK для того, чтобы:
1) Исправлять ваши же косяки с организацией Lua-машины и внешних библиотек. См. изготовление правильной lua5.1.dll как прокси к qlua.dll https://quik2dde.ru/viewtopic.php?id=47 Что характерно, позже вы сами добавили в дистрибутив QUIK lua5.1.dll, сделанную именно таким образом, а не просто подложив её из дистрибутива Lua, т.е. признали такой подход верным.
2) Понимать с какой же dll-библиотекой необходимо линковать свои внешние dll модули для Lua: с qlua.dll, с lua5.1.dll или с lua53.dll ? В том числе чтобы не возникало проблем, описанных по ссылке из пункта 1).
3) Чтобы в конце-концов все же понять: что за файл в дистрибутиве lua5.1.dll ? Что это? как он функционирует в составе Lua 5.3 ? Если у меня есть dll, которая была ориентирована на работу в Lua5.1, эта dll работала в составе Lua-скрипта на предыдущих версиях QUIK и, предположим, она корректно запустилась на QUIK 8.5, используя при этом обращения к lua5.1.dll для вызова функций Lua-машины - то могу ли я быть уверен, что такая библиотека будет корректно работать в составе QUIK 8.5 ? В том числе с учетом изложенного в пункте 1) ?
Так что я просто-таки требую ответа на вопрос, ибо в противном случае вы утаиваете часть необходимой пользователям информации.
Почему все компании производящие платформы всегда рассказывают и показывают как устроена платформа внутри (в точки зрения её организации, требуемой пользователю для понимания что и как, и только QUIK традиционно выдаёт информацию по крупицам, просто-таки клещами всё приходится вытягивать? Это, кстати, скорее всего говорит лишь о том, что вы даже не продумываете совершенно клиентские сценарии работы с вашим ПО, вы просто не знаете о них! И QUIK вы выпускаете "как получится", не продумывая клиентские сценарии. Соответственно вам просто-напросто и рассказать-то не о чем. Вы не понимаете что вообще пользователям требуется для нормального функционирования системы. И лишь когда пользователи с удивлением обнаруживают разные "неожиданные сюрпризы" - внезапно в них сознаетесь (типа многократного срабатывания OnTrade и OnOrder). Прекрасная, очень прекрасная позиция!
swerg написал: Почему все компании производящие платформы всегда рассказывают и показывают как устроена платформа внутри (в точки зрения её организации, требуемой пользователю для понимания что и как
не оспариваю Вашу критику, но интересуюсь кто эти все? можно пару-тройку?
swerg написал: Так что я просто-таки требую ответа на вопрос, ибо в противном случае вы утаиваете часть необходимой пользователям информации.
Добрый день!
Переход на LUA 5.3 был вынужденным, в связи с планируемым введением 19-значных номеров заявок и сделок на срочном рынке Московской Биржи.
Начиная с версии торгового терминала 8.5 все QLUA скрипты должны быть адаптированы под LUA 5.3. Это в частности означает, что все внешние библиотеки должны быть залинкованы на библиотеку lua53.dll.
Библиотеку lua5.1.dll, оставленную в дистрибутиве на "переходной" период, использовать не следует. В дальнейшем lua5.1.dll будет удалена из дистрибутива.
Sergey Gorokhov написал: Переход на LUA 5.3 был вынужденным, в связи с планируемым введением 19-значных номеров заявок и сделок на срочном рынке Московской Биржи.
Смешно звучит, не позорились бы, ей богу! Из-за увеличения длины текстового поля, пытаетесь убедить нас, что нужно было переходить на новую версию луа. А у всех из-за этого проблемы с перекомпиляцией, да еще и терминал начал виснуть по непонятным причинам, просто виснет и все, без каких либо причин, хотя на версии 7.2 мог проработать целый день без зависания.
МосБиржа перенесла релиз на 06 июля 2020 года. Наверное, что-то дорабатывают, а у разработчиков терминала и его пользователей ещё один месяц на устранение багов появился. Но расслабляться не надо.
_sk_ написал: Из-за увеличения длины текстового поля,
В документации сказано что поле не текстовое, и Вы можете самостоятельно это легко проверить.
Цитата
Sergey Denegin написал: еще и терминал начал виснуть по непонятным причинам, просто виснет и все, без каких либо причин, хотя на версии 7.2 мог проработать целый день без зависания.
Если есть проблема, мы готовы исследовать ее причины. Просьба снять дамп процесса info.exe в момент зависания (это делается через диспетчер задач), после чего прислать нам дамп и архив всей папки с терминалом (без ключей доступа) на адрес quiksupport@arqatech.com. Архив с терминалом следует паковать при закрытом терминале сразу после повторения проблемы.
Вы в курсе, что почтовые сервера давно не разрешают отправлять большие файлы? Вчера пробовал отправить 40 мегабайтный архив с двух платных почтовых серверов, ни один не дал такую возможность, говорит "слишком большой объем". Придумайте другой способ. Например через телеграм.
Sergey Gorokhov написал: В документации сказано что поле не текстовое, и Вы можете самостоятельно это легко проверить.
Очень странно, т.к. при отправке заявки отправляется текстовое поле. Кроме того, луа взаимодействует с терминалом, и ничего не мешает внутри терминала преобразовать переменную в текстовый тип, и для луа скрипта предоставить уже текстовое значение. Не думаю, что одно преобразование было бы сложнее, чем замена целой библиотеки luacom, из-за которой у многих возникают куча проблем.
Sergey Denegin написал: Придумайте другой способ. Например через телеграм.
Большинство почтовиков предлагают выложить большой файл на облако и в письме приходит ссылка вместо вложения.
Цитата
Sergey Denegin написал: Где прочитать, как это делается? не вижу такой функции в диспетчере задачь.
Правой кнопкой мыши по процессу и нажать "Создать файл дампа"
Цитата
Sergey Denegin написал: Очень странно, т.к. при отправке заявки отправляется текстовое поле.
При отправке вообще все параметры отправляются в виде текста. Проблема не в том чтобы отправить текст а в том чтобы получить его из тела заявки в котором он в виде числа а не текста. Или Вы привыкли парсить текст ответа на транзакцию для получения номера? Увы 99% пользователей не привыкло, так что кроме как обновить Lua выходя нет.
Sergey Gorokhov написал: Большинство почтовиков предлагают выложить большой файл на облако и в письме приходит ссылка вместо вложения.
Я пользуюсь почтовой программой с отправкой через SMTP.
Цитата
Sergey Gorokhov написал: Правой кнопкой мыши по процессу и нажать "Создать файл дампа"
Благодарю!
Цитата
Sergey Gorokhov написал: Или Вы привыкли парсить текст ответа на транзакцию для получения номера?
Я использую функцию getItem("orders",N) и эта функция, насколько я понимаю, встроена в QUIK и разработана вашими программистами. Почему нельзя сделать так, чтобы получая от сервера биржи значение в виде числа, терминал преобразовывал значение в текст, и в функцию getItem передавал уже текстовое значение? Доработка обойдется в одну строку в коде терминала, и не потребуется всем переходить на версию 8.5 и луа 5.3
Sergey Gorokhov написал: Переход на LUA 5.3 был вынужденным, в связи с планируемым введением 19-значных номеров заявок и сделок на срочном рынке Московской Биржи.
Смешно звучит, не позорились бы, ей богу! Из-за увеличения длины текстового поля, пытаетесь убедить нас, что нужно было переходить на новую версию луа. А у всех из-за этого проблемы с перекомпиляцией, да еще и терминал начал виснуть по непонятным причинам, просто виснет и все, без каких либо причин, хотя на версии 7.2 мог проработать целый день без зависания.
сейчас врюерсия 7.27.2.1 работает с зависаниями, а вот версия 6.17 у меня годами без сбоев пахала...
Есть ощущение, что они не в курсе, что от версии к версии программа становится только хуже и менее надежная. И рано или поздно, от нее все откажутся, а это их прямая прибыль.
При отправке вообще все параметры отправляются в виде текста. Проблема не в том чтобы отправить текст а в том чтобы получить его из тела заявки в котором он в виде числа а не текста. Или Вы привыкли парсить текст ответа на транзакцию для получения номера? Увы 99% пользователей не привыкло, так что кроме как обновить Lua выходя нет.
что плохого в том, чтобы получать номер заявки из ответа на транзакцию?
Sergey Denegin написал: Очень печально, потому что весь форум бухтит о том, что проблем с версией 8.5 стало гораздо больше, как с тормозами, так и с зависаниями.
По тем проблемам которые были озвучены выпущен патч 8.5.2 Если у Вас есть какие-то жалобы к текущей версии 8.5.2 готовы разбираться Транслировать тип строку там где архитектурно заложено число мы не будем.
Цитата
Sergey Denegin написал: Как можно обратиться к руководству компании, которая находится выше штата разработчиков, и которые принимают решения?
такое впечатление что бирже нечем заняться. могли бы и нулей каких нибудь добавить в это 19 значное поле, если оно им так необходимо, чтобы не создавать проблем
Цитата Sergey Gorokhov написал:Ничего кроме того что нужно написать функцию которая будет его дергать. ----------------------------------
TGB В С++ Перевод строки в INT64: INT64 value = _atoi64(input); Обратный перевод: _i64toa_s(value, input, 20, 10);
Дополнительные пояснения. Наверное, почти все знают, что из QLua можно обращаться к функциям, написанным на C++. И за 2-3 :) дня можно было разработчику QUIK, используя приведенные выше две строки, написать две функции, каждая из которых былабы длиной не более 6-ти строк.
Цитата Sergey Gorokhov написал:Ничего кроме того что нужно написать функцию которая будет его дергать. ----------------------------------
TGB В С++ Перевод строки в INT64: INT64 value = _atoi64(input); Обратный перевод: _i64toa_s(value, input, 20, 10);
Дополнительные пояснения. Наверное, почти все знают, что из QLua можно обращаться к функциям, написанным на C++. И за 2-3 :) дня можно было разработчику QUIK, используя приведенные выше две строки, написать две функции, каждая из которых былабы длиной не более 6-ти строк.
но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
Максим написал: но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
Пишем письма руководству компании, что программерские ресурсы, расходуются на ухудшение программы, и от версии к версии она становится менее стабильной и тормозной. Им то поди докладывают - "выпущена новая версия, дайте нам новых денег", и на форумах они не бывают.
Как только программеры квика сами не могут понять, что когда они окончательно достанут своими новыми виснущими версиями пользователей, все откажутся от квика, и и брокерские конторы перестанут платить, и будут они искать новую работу. Рубят сук на котором сидят
Максим написал: но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
Пишем письма руководству компании, что программерские ресурсы, расходуются на ухудшение программы, и от версии к версии она становится менее стабильной и тормозной. Им то поди докладывают - "выпущена новая версия, дайте нам новых денег", и на форумах они не бывают.
Как только программеры квика сами не могут понять, что когда они окончательно достанут своими новыми виснущими версиями пользователей, все откажутся от квика, и и брокерские конторы перестанут платить, и будут они искать новую работу. Рубят сук на котором сидят
Серега-брат, узбагойся и почитай гугл на предмет руководства арки. это фрики 80-х, что хорошо и плохо сразу
жалобы твои дурацкие, тк ты очень маленький процент пусто-юзеров. скорее они начнут пилить строго под венду на шарпе, что понравится другим 90% больше - которые даже не понимают что ты говоришь и зачем. неужели не ясно? - это ритейл, а не дзен-ячейка кришнаидов с точками на башке :)
Sergey Denegin написал: Как только программеры квика сами не могут понять, что когда они окончательно достанут своими новыми виснущими версиями пользователей, все откажутся от квика, и и брокерские конторы перестанут платить, и будут они искать новую работу. Рубят сук на котором сидят
Давно есть метатрейдер с выходом на биржу. С крутым встроенным языком и всё такое. Предлагаю бить не словом, а делом, т.е. ногами ) После расскажете как оно.
swerg написал: Давно есть метатрейдер с выходом на биржу. С крутым встроенным языком и всё такое.Предлагаю бить не словом, а делом, т.е. ногами )После расскажете как оно.
Я бы с радостью, но мой робот написан на lua и переписывать его на другую платформу - это крайне трудозатратно. Но если так дело и дальше пойдет с квиком, то видимо так и придется делать
Функции lua_remove не было и нет в функционале QLUA. В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.
Просьба уточнить, на основании чего возник такой вопрос?
Функции lua_remove не было и нет в функционале QLUA. В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.
Просьба уточнить, на основании чего возник такой вопрос?
В том, что выдает ошибку теперь, что не найдена функция.
Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
Функции lua_remove не было и нет в функционале QLUA. В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.
Просьба уточнить, на основании чего возник такой вопрос?
В том, что выдает ошибку теперь, что не найдена функция.
Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
lua53 - там нет. lua5.1 - еще есть.
Функция из спецификации LUA языка. Вы зачем ее удалили?
timber написал: Это ответ на мой вопрос, зачем удалили данную функцию?
Это констатация факта, что ее никто не удалял. Была функцией - стала макросом. А есть и обратные примеры, lua_setglobal была макросом, а стала функцией. Это не арка сделала и спрашивать зачем надо у авторов луа.
The vararg system changed from the pseudo-argument arg with a table with the extra arguments to the vararg expression. (See compile-time option LUA_COMPAT_VARARG in luaconf.h.)
т.е. надо заменить arg например так:
Код
function ConvertValue(...)
local arg = {...}
arg.n = select('#', ...)
for i = 1, arg.n do
-- do something arg[i]
end
end
В состав предлагаемой нами библиотеки lua53.dll данный макрос добавлен не был. При необходимости использовать функционал lua.5.1 - Вы можете самостоятельно добавить такой макрос в ваш скрипт/программу, либо использовать какой-либо иной подход, с использованием стандартных функций lua5.3.
В состав предлагаемой нами библиотеки lua53.dll данный макрос добавлен не был. При необходимости использовать функционал lua.5.1 - Вы можете самостоятельно добавить такой макрос в ваш скрипт/программу, либо использовать какой-либо иной подход, с использованием стандартных функций lua5.3.