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

Страницы: Пред. 1 2 3 4 5 След.
RSS
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Как перепишут, так и 51 выкинут.
Я думаю раз обе библиотеки есть, значит обе версии поддерживаются.
 
Цитата
Imersio Arrigo написал:
раз обе библиотеки есть
Нас грузит какая-то определенная версия и мы с этой версией должны работать. Можно не линковаться с luaxx.dll, а подгружать ее динамически, чтобы одна длл работала во всех 8 версиях, но это геморрой тот еще. Там тупо придется разные функции импортировать в зависимости от версии и писать обертки для согласования, причем не везде это тривиально можно сделать, не говоря уже о неоправданном оверхеде в рантайме. Посмотрите на lua_upvalueindex например. В нормальном случае она компилируется просто в константу, в случае "универсальной длл" это будет что-то вроде
Код
inline int lua_upvalueindex(int idx)
{
   return ((luaver > 51 ? LUA_REGISTRYINDEX : LUA_GLOBALSINDEX) - idx);
}
И так повсюду. Оно кому-то надо?
 
почему новый квик 8.5.2.11 может не видеть скомпилированный индикатор?
если не компилировать то его видно и нормально работает
а если скомпилировать - то его уже не видно в списке, что может быть не так?
 
Сеорее всего компилируете неподходящей версией luac
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Сеорее всего компилируете неподходящей версией luac
я собрал 5.3.5, а какую надо использовать?
 
Цитата
Павел Bosco написал:
Цитата
s_mike@rambler.ru написал:
Сеорее всего компилируете неподходящей версией luac
я собрал 5.3.5, а какую надо использовать?
отбой, разобрался. я случайно собрал lua 5.3.5 в x86 версии.
а компилятор luac должен был быть x64, формат прекомиленных lua файлов разный для разных платформ, оказывается.
 
Цитата
Sergey Gorokhov написал:
Цитата
swerg написал:
А в 8.5 как это всё устроено?
Уточните зачем Вам это?
Мы считаем что все 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 написал:
Почему все компании производящие платформы всегда рассказывают и показывают как устроена платформа внутри (в точки зрения её организации, требуемой пользователю для понимания что и как
не оспариваю Вашу критику, но интересуюсь кто эти все? можно пару-тройку?

спасибо.
 
Цитата
новичок написал:
не оспариваю Вашу критику, но интересуюсь кто эти все? можно пару-тройку?
Откройте документацию или презентации по .NET
Да хоть и по Lua.
 
Цитата
swerg написал:
Цитата
новичок написал:
не оспариваю Вашу критику, но интересуюсь кто эти все? можно пару-тройку?
Откройте документацию или презентации по .NET
Да хоть и по Lua.
шутить изволите? вы на форуме торговой платформы, какие из торговых платформ ...?

Цитата
swerg написал:
всегда рассказывают и показывают как устроена платформа внутри
?
 
Цитата
swerg написал:
Да хоть и по Lua.
вот это что ли https://www.lua.org/source/5.3/ ?

или это https://github.com/dotnet/core ?

оч смешно.

какие торговые платформы обсуждают с юзерами свою внутреннюю структуру?  
 
Цитата
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 года. Наверное, что-то дорабатывают, а у разработчиков терминала и его пользователей ещё один месяц на устранение багов появился. Но расслабляться не надо.

https://www.moex.com/n28475
 
Цитата
_sk_ написал:
Из-за увеличения длины текстового поля,
В документации сказано что поле не текстовое, и Вы можете самостоятельно это легко проверить.

Цитата
Sergey Denegin написал:
еще и терминал начал виснуть по непонятным причинам, просто виснет и все, без каких либо причин, хотя на версии 7.2 мог проработать целый день без зависания.

Если есть проблема, мы готовы исследовать ее причины.
Просьба снять дамп процесса info.exe в момент зависания (это делается через диспетчер задач), после чего прислать нам дамп и архив всей папки с терминалом (без ключей доступа) на адрес quiksupport@arqatech.com. Архив с терминалом следует паковать при закрытом терминале сразу после повторения проблемы.
 
Цитата
Sergey Gorokhov написал:
прислать нам дамп и архив всей папки с терминалом (без ключей доступа) на адрес quiksupport@arqatech.com
Вы в курсе, что почтовые сервера давно не разрешают отправлять большие файлы? Вчера пробовал отправить 40 мегабайтный архив с двух платных почтовых серверов, ни один не дал такую возможность, говорит "слишком большой объем".
Придумайте другой способ. Например через телеграм.
 
Цитата
Sergey Gorokhov написал:
Просьба снять дамп процесса info.exe в момент зависания (это делается через диспетчер задач),
Где прочитать, как это делается? не вижу такой функции в диспетчере задачь.
 
Цитата
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 Denegin,
решение о переводе уже принято и отмене не подлежит.
 
Цитата
Sergey Denegin написал:
Цитата
Sergey Gorokhov написал:
Переход на LUA 5.3 был вынужденным, в связи с планируемым введением    19-значных номеров заявок и сделок на срочном рынке Московской    Биржи.
Смешно звучит, не позорились бы, ей богу! Из-за увеличения длины текстового поля, пытаетесь убедить нас, что нужно было переходить на новую версию луа. А у всех из-за этого проблемы с перекомпиляцией, да еще и терминал начал виснуть по непонятным причинам, просто виснет и все, без каких либо причин, хотя на версии 7.2 мог проработать целый день без зависания.
сейчас врюерсия 7.27.2.1 работает с зависаниями, а вот версия 6.17 у меня годами без сбоев пахала...
 
Цитата
Sergey Gorokhov написал:
решение о переводе уже принято и отмене не подлежит.
Очень печально, потому что весь форум бухтит о том, что проблем с версией 8.5 стало гораздо больше, как с тормозами, так и с зависаниями.

Как можно обратиться к руководству компании, которая находится выше штата разработчиков, и которые принимают решения?
 
Есть ощущение, что они не в курсе, что от версии к версии программа становится только хуже и менее надежная.  И рано или поздно, от нее все откажутся, а это их прямая прибыль.
 
Цитата
Sergey Gorokhov написал:

При отправке вообще все параметры отправляются в виде текста.
Проблема не в том чтобы отправить текст а в том чтобы получить его из тела заявки в котором он в виде числа а не текста.
Или Вы привыкли парсить текст ответа на транзакцию для получения номера?
Увы 99% пользователей не привыкло, так что кроме как обновить Lua выходя нет.
что плохого в том, чтобы получать номер заявки из ответа на транзакцию?
 
Цитата
Sergey Denegin написал:
Очень печально, потому что весь форум бухтит о том, что проблем с версией 8.5 стало гораздо больше, как с тормозами, так и с зависаниями.
По тем проблемам которые были озвучены выпущен патч 8.5.2
Если у Вас есть какие-то жалобы к текущей версии 8.5.2 готовы разбираться
Транслировать тип строку там где архитектурно заложено число мы не будем.

Цитата
Sergey Denegin написал:
Как можно обратиться к руководству компании, которая находится выше штата разработчиков, и которые принимают решения?
Через поддержку
 
Цитата
Максим написал:
что плохого в том, чтобы получать номер заявки из ответа на транзакцию?

Ничего кроме того что нужно написать функцию которая будет его дергать.
 
такое впечатление что бирже нечем заняться. могли бы и нулей каких нибудь добавить в это 19 значное поле, если оно им так необходимо, чтобы не создавать проблем
 
Цитата
Sergey Gorokhov написал:
Цитата
Максим написал:
что плохого в том, чтобы получать номер заявки из ответа на транзакцию?

Ничего кроме того что нужно написать функцию которая будет его дергать.
неужели сложно так...

ordnum = substr(get_value (trans_result, "DESCRIPTION"),7,19)

делов то... Вы сами так советовали и всё работает :)
 
Цитата
Sergey Gorokhov написал:
Ничего кроме того что нужно написать функцию которая будет его дергать.
 В С++

Перевод строки в INT64:    INT64 value = _atoi64(input);
Обратный перевод:       _i64toa_s(value, input, 20, 10);
 
Цитата

Цитата
Sergey Gorokhov  написал:Ничего кроме того что нужно написать функцию которая будет его дергать.
----------------------------------

TGB
 В С++
 Перевод строки в INT64:    INT64 value = _atoi64(input);
 Обратный перевод:       _i64toa_s(value, input, 20, 10);

Дополнительные пояснения.
Наверное, почти все знают, что из QLua можно обращаться к функциям, написанным на C++.  И за 2-3 :) дня можно было разработчику QUIK, используя приведенные выше две строки, написать две функции, каждая из которых былабы длиной не более 6-ти строк.
 
Цитата
TGB написал:
Цитата

Цитата
Sergey Gorokhov  написал:Ничего кроме того что нужно написать функцию которая будет его дергать.
----------------------------------

TGB
 В С++
 Перевод строки в INT64:    INT64 value = _atoi64(input);
 Обратный перевод:       _i64toa_s(value, input, 20, 10);

Дополнительные пояснения.
Наверное, почти все знают, что из QLua можно обращаться к функциям, написанным на C++.  И за 2-3 :) дня можно было разработчику QUIK, используя приведенные выше две строки, написать две функции, каждая из которых былабы длиной не более 6-ти строк.
но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
 
Цитата
Максим написал:
но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
Пишем письма руководству компании, что программерские ресурсы, расходуются на ухудшение программы, и от версии к версии она становится менее стабильной и тормозной. Им то поди докладывают - "выпущена новая версия, дайте нам новых денег", и на форумах они не бывают.

Как только программеры квика сами не могут понять, что когда они окончательно достанут своими новыми виснущими версиями пользователей, все откажутся от квика, и и брокерские конторы перестанут платить, и будут они искать новую работу. Рубят сук на котором сидят
 
Цитата
Sergey Denegin написал:
Цитата
Максим написал:
но это видимо так сложно, что лучше перейти на Квик 8 и Луа новый, где ещё больше косяков ))) абсурдно, как и многое в стране )))
Пишем письма руководству компании, что программерские ресурсы, расходуются на ухудшение программы, и от версии к версии она становится менее стабильной и тормозной. Им то поди докладывают - "выпущена новая версия, дайте нам новых денег", и на форумах они не бывают.

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

жалобы твои дурацкие, тк ты очень маленький процент пусто-юзеров.
скорее они начнут пилить строго под венду на шарпе, что понравится другим 90% больше - которые даже не понимают что ты говоришь и зачем.
неужели не ясно? - это ритейл, а не дзен-ячейка кришнаидов с точками на башке :)
 
Цитата
Sergey Denegin написал:
Как только программеры квика сами не могут понять, что когда они окончательно достанут своими новыми виснущими версиями пользователей, все откажутся от квика, и и брокерские конторы перестанут платить, и будут они искать новую работу. Рубят сук на котором сидят
Давно есть метатрейдер с выходом на биржу. С крутым встроенным языком и всё такое.
Предлагаю бить не словом, а делом, т.е. ногами )
После расскажете как оно.
 
Цитата
swerg написал:
Давно есть метатрейдер с выходом на биржу.
Там опционов нет.
 
Цитата
swerg написал:
Давно есть метатрейдер с выходом на биржу. С крутым встроенным языком и всё такое.Предлагаю бить не словом, а делом, т.е. ногами )После расскажете как оно.
Я бы с радостью, но мой робот написан на lua и переписывать его на другую платформу - это крайне трудозатратно.
Но если так дело и дальше пойдет с квиком, то видимо так и придется делать
 
Раньше была функция lua_remove теперь её нет. На что заменили?
 
Здравствуйте, timber.

Функции lua_remove не было и нет в функционале QLUA.
В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.

Просьба уточнить, на основании чего возник такой вопрос?
 
Цитата
Andrey Bezrukov написал:
Здравствуйте, timber.

Функции lua_remove не было и нет в функционале QLUA.
В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.

Просьба уточнить, на основании чего возник такой вопрос?
В том, что выдает ошибку теперь, что не найдена функция.

Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
 
Цитата
timber написал:
Цитата
Andrey Bezrukov написал:
Здравствуйте,  timber .

Функции lua_remove не было и нет в функционале QLUA.
В LUA5.1 и LUA5.3, используемых в терминале до версии 8.5 и начиная с версии 8.5 - данная функция также присутствует.

Просьба уточнить, на основании чего возник такой вопрос?
В том, что выдает ошибку теперь, что не найдена функция.

Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
lua53 - там нет.
lua5.1 - еще есть.

Функция из спецификации LUA языка. Вы зачем ее удалили?
 
Цитата
timber написал:
Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
У них оригинальный луа с точностью до внутренних деталек. Если бы вы также глянули в lua.h (строка 371), то увидели бы, что в 5.3 это макрос.
 
Цитата
Anton написал:
Цитата
timber написал:
Я не знал, что у вас не оригинальный LUA. Глянул в вашу dll в дистрибутиве с вашего сайта. Нет такой функции в вашей dll.
У них оригинальный луа с точностью до внутренних деталек. Если бы вы также глянули в lua.h (строка 371), то увидели бы, что в 5.3 это макрос.
Это ответ на мой вопрос, зачем удалили данную функцию?
 
Цитата
timber написал:
Это ответ на мой вопрос, зачем удалили данную функцию?
Это констатация факта, что ее никто не удалял. Была функцией - стала макросом. А есть и обратные примеры, lua_setglobal была макросом, а стала функцией. Это не арка сделала и спрашивать зачем надо у авторов луа.
 
Доброе время суток! Почему перестало работать в функции arg.n ?
Говорит - attempt to index a nil value (global 'arg')
 
Сергей,

Цитата
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
 
О! Спасибо-преспасибо! Заработало!
 
timber,

Как верно отметил Anton - сама функция lua_remove была уделена из LUA 5.3 в чистом виде, но осталось в виде макроса:
Код
#define lua_remove(L,idx)   (lua_rotate(L, (idx), -1), lua_pop(L, 1))


В состав предлагаемой нами библиотеки lua53.dll данный макрос добавлен не был. При необходимости использовать функционал lua.5.1 - Вы можете самостоятельно добавить такой макрос в ваш скрипт/программу, либо использовать какой-либо иной подход, с использованием стандартных функций lua5.3.
 
Цитата
Andrey Bezrukov написал:
timber,

Как верно отметил Anton - сама функция lua_remove была уделена из LUA 5.3 в чистом виде, но осталось в виде макроса:
Код
   # define lua_remove(L,idx)   (lua_rotate(L, (idx),  -  1 ), lua_pop(L,  1 ))  


В состав предлагаемой нами библиотеки lua53.dll данный макрос добавлен не был. При необходимости использовать функционал lua.5.1 - Вы можете самостоятельно добавить такой макрос в ваш скрипт/программу, либо использовать какой-либо иной подход, с использованием стандартных функций lua5.3.
Понял, спасибо вам и Антону.
 
Добрый день.

Уважаемые клиенты, исходное сообщение данной темы дополнено следующей информацией: вышла новая версия терминала QUIK 8.6.0 ftp://ftp.quik.ru/public/updates/8.6/quik_8.6.0_upd.zip
Страницы: Пред. 1 2 3 4 5 След.
Читают тему
Наверх