Александр написал: Получается, что в терминале на английском языке на английской винде, в таблице текущих параметров в поле бумага - будет аракадабра?
Вы задаете одни и теже вопросы по кругу. Вам уже дали ответ:
Цитата
Sergey Gorokhov написал: Да будут проблемы.Но они как правило решаются настройкой "язык для программ, не поддерживающих юникод" = русский
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 17:46:14
Цитата
Александр написал: Всегда и везде будет кодировка windows-1251 или она зависит от терминала (его языка), ос (наличие кирилицы или нет) или сервека квик?
Вы задаете одни и теже вопросы по кругу. Вам уже дали ответ:
Цитата
Sergey Gorokhov написал: зависит от настроек сервера, но как правило большая часть (или вообще все) используют кодировку ANSI с кодовой таблицей Windows-1251
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 17:30:00
Александр, Вам уже дали ответ, какой еще вариант вам нужен? Везде используется ANSI Всегда Во всех данных во всех языках.
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 17:10:44
Цитата
Sergey Gorokhov написал: Но они как правило решаются настройкой "язык для программ, не поддерживающих юникод" = русский
Или, как йже было сказано, не использовать русский там где нет русской кирилицы терминал QUIK умеет переключаться на английский
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 17:08:43
Цитата
Александр написал: Хорошо. Если кодировка Windows - 1251, то в терминале где нет кирилицы, будут проблемы.
Вы имеете ввиду OS где нет кирилицы. Да будут проблемы. Но они как правило решаются настройкой "язык для программ, не поддерживающих юникод" = русский
Цитата
Александр написал: А сервер квик не знает, какая кодировка у клиента на компьютере есть, а какой нету.
Естественно не знает
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 17:06:04
Цитата
Александр написал: Кодировка то какая всегда windows-1251? Или зависит от настроек сервера?
зависит от настроек сервера, но как правило большая часть (или вообще все) используют кодировку ANSI с кодовой таблицей Windows-1251
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 16:54:52
Цитата
Александр написал: Странный ответ. При чем здесь lua? Терминал же сохраняет строки для дальнейшего использования в луа?Вот я хочу узнать, что вы туда записываете.
Странный вопрос, Вы же спрашиваете про Lua, а не про терминал QUIK. О tostring нам известно не больше чем то что написано в официальной документации на сайте lua.org Если интересует в какой кодировке сервер QUIK отправляет данные на терминал, то в ANSI.
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 16:35:05
Александр, Зачем? Нам нет смысла отдельно проводить исследования. Если Вам интересен ответ, Вы можете узнать его самостоятельно, либо попробовать поискать ответ в интернете. Lua разработан не нами, наверняка на форумах которые ему посвящены Вы найдете что то нужно.
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 16:08:21
Цитата
Александр написал: В какой кодировке будут строки, если вызвать lua_tolstring для преобразования в unicode?
Мы не проводили исследований на этот счет.
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 15:45:43
Цитата
Александр написал: Квик не будет работать на системе, где не установлена кирилица?
Конечно будет, на английском же языке.
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 15:29:29
Цитата
Александр написал: Я бы хотел узнать о поведении терминала, где например нет кирилицы?
терминал тут не причем, если в Windows нет кирилицы то и в QUIK ее не будет
Какая кодировка используются в Lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
08.05.2020 15:21:14
Цитата
Александр написал: Какая кодировка используются в Lua?
Мы рекомендуем использовать кодировку ANSI Для кирилицы выбирать Windows - 1251
quik вылетает без ошибки при остановке скрипта
Пользователь
Сообщений: Регистрация: 23.01.2015
07.05.2020 15:11:44
Здравствуйте, Поищите в журнале событий Windows события относящиеся к проблеме.
Не активен скрипт. Что не так
Пользователь
Сообщений: Регистрация: 23.01.2015
06.05.2020 15:07:25
Александр, А у нас работает. Значит Вы что то сделали не так. Идентификаторы задали на графиках?
Появляется лишняя строка в таблице
Пользователь
Сообщений: Регистрация: 23.01.2015
05.05.2020 17:32:02
Старатель, Проблема изучается. Постараемся в ближайшее время дать ответ.
написал: Опишите более развернуто что именно Вы хотите получить
например, что-то подобное... LUA:
Код
function threadfunc ( .. .)
while not CuttentThreadTerminated do
--
end
end
thread = CreateThread(threadfunc, .. .)
thread.TerminateThread ()
thread.Join ()
thread = nil
collectgarbage()
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Автор кода не предусмотрел автосоздания следующих файлов
Код
PositionList = "c:\\TurboMartin\\Position.txt" -- здесь хранятся данные о позиции.
CurrentState = "c:\\TurboMartin\\CurrentState.txt" -- здесь хранятся данные о позиции.
LogFileName = "c:\\Log\\turbomartin_log.txt" -- Технический лог.
создайте их вручную
Как рисовать линию тренда и прямоугольники из lua?
Пользователь
Сообщений: Регистрация: 23.01.2015
29.04.2020 17:52:19
Цитата
Сергей Привалов написал: Метки это рисунок, который лежит в файле. Тоже не нашел возможность как из lua нарисовать прямоугольник на графике. Руками можно а вот из кода как ? Или я плохо искал ? Подскажите, как нарисовать прямоугольник ?
Нужно нарисовать прямоугольник в bmp файле, а потом добавить его на график через функцию AddLabel
Все правильно, число 0 при преобразовании в строку дает "0" И это не баг. Иначе 10 было бы "100" и тогда да это уже был бы баг.
Если нужно "00" то преобразуйте явно с добавлением "0" через условие, если длина строки равна 1 символу, или через функцию string.format("%02d", alltrade.datetime.min)
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
trans2quik.dll x32 и обновление Спектры в апреле 2020
Пользователь
Сообщений: Регистрация: 23.01.2015
28.04.2020 09:53:00
Цитата
Юрий написал: После обновления спектры и увеличения разрядности номера сделок будет ли корректно работать 32 разрядная библиотека trans2quik?
Да будет, достаточно просто взглянуть на trans2quik_api.h чтобы понять это.
Цитата
double dOrderNumber,
Цитата
Юрий написал: Будет ли работать QUIK 8 с 32 разрядной trans2quik ?
8-я версия вышла почти год назад, никто не жаловался.
Цитата
Михаил Филимонов написал: Разрядность переменной для хранения тикета ордера в TRANS2QUIK_APIопределена какtypedef unsigned __int64 EntityNumber
Вы говорите про х64 версию, а автор спрашивал про х32
Internal exception happend, Не запускается Quik.
Пользователь
Сообщений: Регистрация: 23.01.2015
27.04.2020 15:40:03
Виктор, Ждите результатов анализа, Вам ответят почтой.
Internal exception happend, Не запускается Quik.
Пользователь
Сообщений: Регистрация: 23.01.2015
27.04.2020 14:34:27
Виктор, Тогда у Вас кардинально другая проблема и ничего общего у Вас с проблемой автора топика нет. По идее в папке с терминалом должна быть папка dmp, посмотрите в ней файлы, если есть то пришлите нам на quiksupport@arqatech.com
Если у Вас действительно такая же проблема, значит просто не ставьте терминал QUIK в папку Program Files и всё.
Quik 8.5 не освобождается память
Пользователь
Сообщений: Регистрация: 23.01.2015
27.04.2020 11:46:08
Цитата
Андрей написал: В итоге когда квик 8.5 с запущенным данным скриптом выедает полностью всю память, память очищается, и сново начинает заполнятся, затем на второй и третий раз полного заполнения памяти квик падает без дампа. Можно использовать sleep(15) тогда просто память медленнее растет. В 7 квике такого сильного роста памяти нет.
Проблема изучается. Постараемся в ближайшее время дать ответ.
Вам запрещена работа по данному инструменту., Данное сообщение появляется после перемещения заявки.
Пользователь
Сообщений: Регистрация: 23.01.2015
27.04.2020 10:09:25
Здравствуйте, Сообщение о запрете возвращает сервер QUIK, а не терминал и не lua. Вам нужно обратиться к брокеру для выяснения причин возникновения сообщения.
Quik 8.5 не освобождается память
Пользователь
Сообщений: Регистрация: 23.01.2015
24.04.2020 11:18:15
Цитата
Андрей написал: 1. При аварийном завершении работы скрипта не удаляется окно(таблица AllocTable()) которое было создано в квике
Пока не вызван DestroyTable таблица не должна удаляться. А он не может быть вызван по причине аварийного завершения работы скрипта. В старых версиях также было.
Цитата
Андрей написал: 2. Не освобождается память по коду ниже, при использовании SetEmptyCallback очищается нормально
Поясните подробней как проводилось исследование, как был сделан вывод?
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
24.04.2020 07:34:53
Цитата
rst9 написал: и, кстати, арка текнолоджис, у меня вам предложение: может вы сделаете апи для тредов, раз уж вы все равно родили диалект lua под названием qlua?
Опишите более развернуто что именно Вы хотите получить
ISR написал: Так как можно представить дробное число без разделителя дроби? Ведь именно на такой разделитель и ругается квик.
QUIK ругается потому что ему передают дробное число а на инструменте целый шаг цены. ели шаг цены дробный то можно передавать дробное число округленное до шага цены.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 10:30:16
Цитата
Latrop написал: Примитивная dll в OnAllTrade просто дергать напр getInfoParam("VERSION") и больше вообще ничего, никаких эксепшенов, но после коннекта и получения прим 50-100 тыс тиков валится:
Critical error ACCESS_VIOLATION in script...
Что это за беда такая может быть?...
Если в OnAllTrade вообще ничего не делать, пустышка, то не падает. Но такой способ обхода проблемы не очень подходит :)
Добрый день,
К сожалению, нам не удалось по присланным данным воспроизвести ошибку. Если это возможно, пришлите пример кода, работа с которым приводит к сбою.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 07:54:00
quio, проблема изучается. Постараемся в ближайшее время дать ответ.
quio написал: Именно так и сделано в штатном файле lua.h из Lua 5.3.5 - lua_call является вызовом lua_callk
Да именно и Вам у Вас в Вашем коде надо сделать также, либо использовать только lua_callk
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 05:33:19
Цитата
Anton написал: Окончательно установил, что lua_error из 8.5 генерирует лонгджамп вместо эксепшена. Вот это работает (отлавливает ошибку)
Код
static int qmain(lua_State * s)
{
lua_longjmp jbuf;
jbuf.status = 0 ;
jbuf.previous = s - > errorJmp;
s - > errorJmp = & jbuf;
if (setjmp(jbuf.b) = = 0 )
{
luaL_error(s, "err" );
}
s - > errorJmp = jbuf.previous;
return 0 ;
}
Это залет, товарищи.
Добрый день,
Действительно, lua53.dll собрана с отличной от lua5.1.dll конфигурацией. Мы исправим конфигурацию в ближайшем обновлении ПО.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 05:32:04
Цитата
quio написал: Господа, а у вас вызов функций Квика через lua_call из своих потоков с новым состоянием вообще работет?
Создаю новое состояние через lua_newthread(L), передаю его с свой поток, созданный через _beginthreadex, из этого потока вызываю функцию через lua_call. И ничего не проиходит - на верхушке стека остается название функции. Если вызывать lua_call из потоков Квика (с его состоянием), все в порядке.
Раньше свою длл нужно было с qlua.dll линковать, как раз что-то с потоками было связано. Теперь в ней нет функций, прилинковал свою длл к lua53.dll.
Добрый день,
В Lua машине 5.3.5 нет такой функции как lua_call (). Есть её аналог lua_callk. Используйте ее. Либо добавьте в свой код что то вроде этого: #define lua_call(L,n,r) lua_callk(L, (n), ®, 0, NULL)
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 05:30:56
Цитата
rst9 написал: воспроизвести можно так: 1. создаем dll, в ней линкуемся с lua53.dll. 2. в luaopen_... создаем новый инстанс lua vm при помощи luaL_newstate() 3. инициализируем его при помощи luaL_openlibs() получаем исключение "multiple Lua VMs detected. Expected 5.3 instead of 0.0"
что-то вы там не доделали, исправьте, пожалуйста. спасибо.
Добрый день,
Действительно, есть ошибка загрузки lua53.dll в сторонние приложения. Мы исправим её в ближайшем обновлении ПО. Приносим извинения за доставленные неудобства.
Помогите восстановить работоспособность скрипта LUA после перехода на quik 8.5 с lua 5.3
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 05:20:39
Цитата
Дмитрий написал: Я сразу написал, что у меня нет возможности, потому что я вообще не знаком с Lua. К автору скрипта я то же не могу обратиться, т.к. скачал 2 или больше года назад. Я не сохранял ссылку на место скачки, т.к. не предполагал, что ARQA когда-то и зачем-то захочется внедрить в QUIK другую обратно не совместимую версию Lua
Если нет автора, попросите помощи у людей на форуме, может найдется герой который исправит нужный Вам код за деньги или просто по доброте душевной.
Цитата
Дмитрий написал: И как я вижу все обсуждение закончилось "Ваше письмо получено, проблема изучается".
не путайте темы, вопрос про ".0" вообще никак, от слова совсем, не связан с аварийным завершением работы терминала у пользователя ISR и то что эти два обсуждения попали в одну ветку совершенно не значит что между ними есть что-то общее.
Цитата
Дмитрий написал: Вы, как вижу, прекрасно понимаете, что и где надо поменять. Так может сделаете доброе дело и подправите скрипт? В конце концов, это же Ваша инициатива с заменой версии Lua создала людям проблему.
Написание скриптов для клиентов не является задачей тех поддержки. Мы можем указать на ошибку в коде, и даже указать как именно ошибку исправить, но само исправление должны сделать Вы, ну или человек который готов будет Вам помочь.
Цитата
Дмитрий написал: Не говоря о том, что за столько лет существования QUIK такая базовая функция как автоматическое выставление стопа/тэйка по открытию позиции могла быть имплементирована в сам QUIK без дополнительных костылей.
Эта тема вообще никак не связана с Lua, если хотите доработку в терминале, оформите пожелание в соответствующей
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
Пользователь
Сообщений: Регистрация: 23.01.2015
22.04.2020 05:00:49
Цитата
Sergey Denegin написал: Как одно из решений - квик принимает от луа номер в виде текста, а сам отправляет заявку на биржу в нужном формате. Доработка должна быть минимальной, а благодарность от пользователей огромная
Вы не поверите, но QUIK и так принимает от Lua номер в виде текста, и даже более того в документации четко сказано что вообще все параметры в транзакции должны быть в виде текста.
Цитата
foobar написал: 1. Какие изменения будут в trans2quik в связи с этим? Там номер заявки определён как LONG, оно туда поместится?
QUIK
Вы не правы, в trans2quik_api.h мы видим следующее:
EntityNumber nOrderNum где typedef unsigned __int64 EntityNumber;
Согласно открытым источникам (можете ) тип unsigned __int64 ограничен диапазоном от 0 до 18 446 744 073 709 551 615. Что больше 19 символов.
Цитата
foobar написал: 2. Quik For Android, который назван "устаревшим" работает с ключами, а новая программа только с паролем (и SMS, которые я люто не люблю). Будет ли доработана старая версия в связи с этим?
Считайте что нет больше такого ПО. А второй фактор можно отключить обратившись к брокеру.
Цитата
foobar написал: 3. Новая версия, которую я скачал с сайта брокера, ругается на то, что телефон рутованный. На мой взгляд, некорректно, указывать пользователям как они должны настраивать собственное устройство. Можно сделать предупреждение отключаемым?
Если Вы ранее считали безопасным использование своего устройства с root-правами (расширенными), то ничего не мешает считать так и дальше.
Цитата
Sergey Denegin написал: А свалить проблемы разработчиков софта на пользователей, не очень красивых ход для имиджа.
Можете остаться работать на 7й версии, но с некоторыми неудобствами которые всё-таки можно преодолеть. Например, что мешает номер заявки для снятия получать из ответов на транзакции?
Помогите восстановить работоспособность скрипта LUA после перехода на quik 8.5 с lua 5.3
написал: , Так проблема в самом QUIK, который в getParamEx возвращает строку с дробной частью: "1.000000" вместо "1", а на входе в sendTransaction для того же инструмента требует строку без разделителя.
Вы не правы, в представленном коде SEC_PRICE_STEP используется в математических операциях, так что проблема точно не с ним, а с тем что в результате попадает в tostring
Дополним, как уже было сказано Lua 5.3 при переводе числа с типом float в строк добавляет к строке суфикс ".0" Далее возникает вопрос от куда возник float, если все числа "целые". Lua считает float любое число с разделителем (кстати не только lua). если указать SEC_PRICE_STEP = 1.0 то получите ту же ошибку.
Да getParamEx возвращает строку с дробной частью: "1.000000" Но проблема же не в этом, вернее не только в этом, в конкретно этой ситуации изменение формата SEC_PRICE_STEP помогло бы. Но стоит поменять инструмент на любой другой в котором дробный шаг цены и ошибка опять бы появилась.
По этому правильно форматировать то что попадает непосредственно в параметры транзакции, а не то что было до этого.
Помогите восстановить работоспособность скрипта LUA после перехода на quik 8.5 с lua 5.3
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 10:46:02
Цитата
Старатель написал: , Так проблема в самом QUIK, который в getParamEx возвращает строку с дробной частью: "1.000000" вместо "1", а на входе в sendTransaction для того же инструмента требует строку без разделителя.
Вы не правы, в представленном коде SEC_PRICE_STEP используется в математических операциях, так что проблема точно не с ним, а с тем что в результате попадает в tostring
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 08:49:22
Цитата
Anton написал: Окончательно установил, что lua_error из 8.5 генерирует лонгджамп вместо эксепшена. Вот это работает (отлавливает ошибку)
Здравствуйте! Проблема изучается. Постараемся в ближайшее время дать ответ.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 08:45:19
Цитата
rst9 написал: даже еще веселее: lua_version() для инстанса, передаваемого в luaopen_ возвращает значение 0.0 (должна, очевидно, 5.3), а для создаваемого нового инстанса luaL_newstate() - luaversion() возвращает мусорное значение (должна так же возвращать 5.3).
Здравствуйте! Проблема изучается. Постараемся в ближайшее время дать ответ.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 08:41:51
Цитата
Latrop написал: Примитивная dll в OnAllTrade просто дергать напр getInfoParam("VERSION") и больше вообще ничего, никаких эксепшенов, но после коннекта и получения прим 50-100 тыс тиков валится:
Critical error ACCESS_VIOLATION in script...
Что это за беда такая может быть?...
Если в OnAllTrade вообще ничего не делать, пустышка, то не падает. Но такой способ обхода проблемы не очень подходит :)
Здравствуйте! Проблема изучается. Постараемся в ближайшее время дать ответ.
quik 8.5 ошибка
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 08:36:54
Цитата
quio написал: Создаю новое состояние через lua_newthread(L), передаю его с свой поток, созданный через _beginthreadex, из этого потока вызываю функцию через lua_call. И ничего не проиходит - на верхушке стека остается название функции. Если вызывать lua_call из потоков Квика (с его состоянием), все в порядке.
Здравствуйте! Проблема изучается. Постараемся в ближайшее время дать ответ.
Здравствуйте! Проблема изучается. Постараемся в ближайшее время дать ответ.
Помогите восстановить работоспособность скрипта LUA после перехода на quik 8.5 с lua 5.3
Пользователь
Сообщений: Регистрация: 23.01.2015
21.04.2020 07:44:22
Здравствуйте, Начиная с версии 8.5 терминала выполнено обновление ядра Lua до версии 5.3, и об этом мы не однократно всех уведомляли разными способами. Вам следует адаптировать скрипт под новую версию. Если нет возможности сделать это самостоятельно рекомендуем обратиться к автору скрипта. В частности, возникшая у Вас проблема описана на :
Цитата
The conversion of a float to a string now adds a .0 suffix to the result if it looks like an integer. (For instance, the float 2.0 will be printed as 2.0, not as 2.) You should always use an explicit format when you need a specific format for numbers. (Formally this is not an incompatibility, because Lua does not specify how numbers are formatted as strings, but some programs assumed a specific format.)
Проще говоря, замените везде функцию tostring на string.format Например наши пользователи обсуждали такой же вопрос