1. Можно ли сделать в квике режим (errorstop=true/false), чтобы luaL_error не останавливала скрипт, а выводила ошибку в окно "Ошибки выполнения скрипта" 2. Сообщения переданные в message с icon_type также отображались в окне "Ошибки выполнения скрипта"
Может ли OnCleanUp приходить раньше OnConnected? Например, подключаюсь к серверу: Сначала приходит OnCleanUp, потом OnConnected. Версия терминала: 8.2.0.78
Sergey Gorokhov написал: А причем тут OnCleanUp? вопрос же был про onConnected.
После события OnCleanUp классы инструментов, которые придут в терминал не будут вызваны в onConnected? Может быть тогда так сделать, если загрузился новый класс инструментов (терминал получил данный класс), то все инструменты по классу загружены и вызывать событие onConnected? Было бы логично.
Цитата
Sergey Gorokhov написал: Вам привели конкретную цитату из документации где ровно это и сказано.
Мне было не понятно, когда такое может происходить, в документации не написано. Сейчас стало более ясно.
Не понятно, что значит приходит новый класс. По логике после прихода колбека OnCleanUp в системе нет инструментов, значит и нет классов. И при приходе нового класса, должен вызываться колбек onConnected с флагом = false? Я это так понял. Или я не верно понимаю?
Таблица инструментов (securities) грузится самой первой, в связи с чем время ее загрузки минимально. Определить точно когда она загружена не представляется возможным т.к. сервер не передает такого признака. Проверить количество инструментов в таблице можно функцией getNumberOf, если количество перестало обновляться можно судить о том что имеющаяся информация загружена. Однако, новые инструменты могут появиться и после подключения к серверу, даже посреди торгов, так что этот метод нельзя назвать надежным. Узнать будут ли такие появления или нет, тоже нельзя, т.к. нет способа увидеть что будет в будущем.
1. Можно в будущих версиях добавить колбек для мониторинга изменения в таблице инструметов (securities), OnSecurity? 2. Объясните назначение flag=false в OnConnected?
смена пользователя, которым выполняется подключение к серверу QUIK, внутри торговой сессии;
смена сессии.
1. Означает ли это, что после вызова функции OnCleanUp все таблицы очищены, в том числе таблица инструментов? 2. Какие действия необходимо предпринять, когда происходит событие OnCleanUp 3. При смене сервера квик происходит перезагрузка всех данных? Или некоторых таблиц? 4. Смена пользователя ведет к перегрузке всех данных? Или некоторых таблиц? 5. Что происходит при смене сессии?
-- Функция вызывается перед остановкой скрипта
function OnStop(signal)
stopped = true; -- Остановили исполнение кода
end;
-- Функция вызывается перед закрытием квика
function OnClose()
stopped = true; -- закрыли квик, надо остановить исполнение кода
end;
function OnMyAllTrade(trade)
--Тут что-то делаем
end;
function OnMyConnected(flag)
--Тут выводим сообщение
end;
function OnFakeConnected(flag)
end;
function OnFakeAllTrade(trade)
end;
OnConnec ted = OnFakeConnected;
OnAllTr ade = OnFakeAllTrade;
function main()
OnConnec ted = OnMyConnected; --как такой подход с точки зрения потоков?
OnAllTr ade = OnMyAllTrade; --как такой подход с точки зрения потоков?
while not stopped do
sleep(1);
end; --while
end;
Есть такой код. Корректно ли присваивание OnConnec ted = OnMyConnected; OnAllTr ade = OnMyAllTrade; Функция main и колбеки работают в разных потоках. Не возникнет ли проблемы?
Александр написал: При регистрации через luaopen_ квик выгружает lua53.dll раньше, чем саму dll при условии, что я не подписываюсь на main или вызываю в main ошибку при помощи LuaError.
Могли бы вы описать более подробно: как вы это поняли про порядок выгрузки?
Приходит в мою dll событие DLL_PROCESS_DETACH. Далее получаю handle lua53.dll при помощи GetModuleHandle. А ее уже и след простыл. У меня возвращает 0. Соотвественно сначала выгрузилась lua53.dll, а потом моя dll. Это также происходит на закрытие терминала. В нормальных условиях, когда нет ошибок и есть обработчик main, все работает с точностью наоборот: lua53.dll присутствует загруженной.
При регистрации через luaopen_ квик выгружает lua53.dll раньше, чем саму dll при условии, что я не подписываюсь на main или вызываю в main ошибку при помощи LuaError.
Просто таблица futures_client_holding еще не обновилась. Изменение записей идут в потоке. Для каждой таблицы свой поток. Можно релиализовать обработку на событие изменения таблицы futures_client_holding или вести подсчет купленного самостоятельно.
Александр написал: Ответить прямо религия запрещает? Мне ваши ответы не понятны, поэтому задаю уточнящие вопросы.
Что именно не понятно во фразе "интерфейс и все значения будут на английском"?
Цитата
Александр написал: В русском терминале название акции - "Газпром", а в английском - она будет называться по-другому?
Хорошо, отвечаем прямо, да будет по другому, а если точнее по английски, а если еще точнее то GAZPROM. такой ответ понятен?
Цитата
Александр написал: Есть ли квик джуниор с интерфейсом на английском языке для теста?
отдельного терминала QUIK на английском языке не существует. Есть просто терминал, и в нем есть просто настройка, которую просто надо поменять. меню Система - Настройки - Языковые установки. Нюанс в том, что не каждый сервер брокера поддерживает английский, это можно уточнить у брокера.
Квик джуниор, который подключается к вашему демо серверу, поддерживает английский?
Александр написал: В русском терминале название акции - "Газпром", а в английском - она будет называться по-другому?
Вы задаете одни и теже вопросы по кругу. Вам уже дали ответ:
Цитата
Sergey Gorokhov написал: Логично что если в настройках терминала выбран английский то и интерфейс и все значения будут на английском.
Ответить прямо религия запрещает? Мне ваши ответы не понятны, поэтому задаю уточнящие вопросы. Есть ли квик джуниор с интерфейсом на английском языке для теста?
Sergey Gorokhov написал: Но они как правило решаются настройкой "язык для программ, не поддерживающих юникод" = русский
Или, как йже было сказано, не использовать русский там где нет русской кирилицы терминал QUIK умеет переключаться на английский
Отображение значений полей зависит от языка терминала? Не всегда есть возможность переключатся на язык для программ, не поддерживающих уникод. Терминал не поддерживает уникод в 2020 году. Получается терминал в китайской винде работать не будет, даже его английская версия? Значения полей не верно будут отображаться. Так получается?
Александр написал: Всегда и везде будет кодировка windows-1251 или она зависит от терминала (его языка), ос (наличие кирилицы или нет) или сервека квик?
Вы задаете одни и теже вопросы по кругу. Вам уже дали ответ:
Цитата
Sergey Gorokhov написал: зависит от настроек сервера, но как правило большая часть (или вообще все) используют кодировку ANSI с кодовой таблицей Windows-1251
Получается, что в терминале на английском языке на английской винде, в таблице текущих параметров в поле бумага - будет аракадабра?
Sergey Gorokhov написал: Александр, Вам уже дали ответ, какой еще вариант вам нужен? Везде используется ANSI Всегда Во всех данных во всех языках.
Всегда и везде будет кодировка windows-1251 или она зависит от терминала (его языка), ос (наличие кирилицы или нет) или сервека квик? Я так знаю, что все строки в ANSI. Вопрос изначально был: кодировка строк windows-1251 или зависит от ос (CP_ACP) или сервера квик?
Sergey Gorokhov написал: Но они как правило решаются настройкой "язык для программ, не поддерживающих юникод" = русский
Или, как йже было сказано, не использовать русский там где нет русской кирилицы терминал QUIK умеет переключаться на английский
В этом случае какая кодировка будет? Например в таблице инструментов есть поле name - наименование инструмента и оно может быть на русском языке. Тут что будет?
Александр написал: в какой кодировке изначально строка попадает в таблицу луа
Я всю жизнь CP_ACP для преобразований в-из анси использую и никто еще не жаловался.
Хорошо. Если кодировка Windows - 1251, то в терминале где нет кирилицы, будут проблемы. А сервер квик не знает, какая кодировка у клиента на компьютере есть, а какой нету.
Александр написал: Странный ответ. При чем здесь lua? Терминал же сохраняет строки для дальнейшего использования в луа?Вот я хочу узнать, что вы туда записываете.
Странный вопрос, Вы же спрашиваете про Lua, а не про терминал QUIK. О tostring нам известно не больше чем то что написано в официальной документации на сайте lua.org Если интересует в какой кодировке сервер QUIK отправляет данные на терминал, то в ANSI.
Кодировка то какая всегда windows-1251? Или зависит от настроек сервера?
Александр написал: В какой кодировке будут строки, если вызвать lua_tolstring для преобразования в unicode?
А как вы вызовете lua_tolstring для преобразования в unicode? Она просто вернет пойнтер на строку в хранилище и все, никаких преобразований не случится. Аналогично lua_pushstring ничего не будет преобразовывать, как дали ей массив байтов, так она их в хранилище и засунет. Отсюда вывод: в какой кодировке скормили, в той и назад получите. Сравнение строк на равенство тоже побайтово делается. Единственное - это сравнение на неравенство, луа вызывает strcoll и поэтому правильный вопрос к арке будет такой: какую локаль устанавливает квик при старте? Мое предположение - locale("").
Вопрос заключается в какой кодировке будет строка? В ansi не написано в какой кодировке будет. Если это будет в системной кодировке, то не понятно как быть с кириллическими символами. Если в Windows - 1251, то понятно как дальше преобразовать в уникод. Так что вопрос заключается в том, в какой кодировке изначально строка попадает в таблицу луа - в системной или windows - 1251 не зависимо от системной кодировки.
Sergey Gorokhov написал: Александр, Зачем? Нам нет смысла отдельно проводить исследования. Если Вам интересен ответ, Вы можете узнать его самостоятельно, либо попробовать поискать ответ в интернете. Lua разработан не нами, наверняка на форумах которые ему посвящены Вы найдете что то нужно.
Странный ответ. При чем здесь lua? Терминал же сохраняет строки для дальнейшего использования в луа? Вот я хочу узнать, что вы туда записываете.
Какая кодировка используются в Lua? Windows - 1251? Например, если терминал будет установлен на английскую версию винды, терминал тоже будет отдавать строки в Windows - 1251 или в системной кодировке?
s_mike@rambler.ru написал: Компании, которые формируют вокруг себя сообщество
имо, сообщества формируются не вокруг компаний, а вокруг идей или гибких и кастомизируемых продуктов, интересных энтузиастам или специалистам именно так формируется сообщество вокруг открытых продуктов или продуктов с доп. доступом к документированному функционалу
РФ не имеет избытка финансовых и трудовых ресурсов при низком и ухудшающемся уровне образования отсюда и вопли о "беде" при элементарных изменениях очевидно, что "пострадают" наименее квалифицированные и амбициозные, но ... раз уж у нас "типа каптиализм" , то нечего устраивать истерики - извольте соблюдать законы рынка (природы): можешь - учись и делай, не можешь - заплати тому, кто может нет можешь и нет денег - пнх.
Во-первых,Новичок ты ошибаешься! Я использовал для передачи данных по сети luasocket, но для нее нет 64 битной версии. Весь код надо переписывать, тестировать и выводить в продакшин. И это не считая проблем, связанных глюками самого квика. Причем здесь капитализм или уровень профессионализма? И у моих колег такие же проблемы встали, переписать, тестировать полученный код. На это как минимум нужно время. Во-вторых, Особого выигрыша переход на 64 битный режим квик не получит. Не понятно зачем это делать? От того, что операционные системы 64 битные, это не значит, что весь код должен быть 64 битным. Выигрыш от 64 битного перехода не особо виден.
Квик ни когда не поддерживал 64 битный режим, никто не планировал, что этот режим будет поддерживаться в будущем. А потом бац и весь написанный софт не работает под квик 8. По-моему просто не правильно так делать.
Может сделать 32 битную версию квика и поддерживать обе версии 64 и 32 битные. Просто так не делается. Дайте время хотя бы год, чтобы решить проблемы с 64 битными версиями dll для lua. Некоторые библиотеки сложно обновить.
Большие ли отличия QLua от от Lua и где официальная документация?, Какая версия Lua в QLua, работают ли все функции Lua или только какой-то ограниченный набор (если так, то где прочитать, какой?), можно ли подключать модули и все как в обычном Lua? Есть ли где-то на официальном сайте документация?
Zoya Skvorcova написал: Александр ,добрый день. У нас на разных версиях и на разных мониторах такой эффект не воспроизводится. Какой фирмы у Вас монитор, и какое разрешение экрана и какая тема у Вас установлена? Если тема установлена нестандартная, то примените стандартную и проверьте. В любом случае, откройте таблицы, убедитесь в том что проблема визуализировалась и пришлите архив терминала.
Операционная система Windows 7, 64. Два монитора - 1 ноутбук (1600x900), другой Samsung (1440x900). Расширение стандартное. Тема стандартная. Шрифты стандартные. На другом компьютере у моего знакомого такой же эффект. Сделайте шрифт жирным в колонках и будет вам эффект. Какие файлы и куда слать? У меня архив терминала занимает 500МБ
Imersio Arrigo написал: Бгг. А если раздвинуть колонку, то можно увидеть как текст уезжает на отступ, да? ))) А потом надо пожаловаться что "красные линии по левой стороне букав".
Причем здесь это. Надо сделать отступ слева и справа и впихивать текст в получившиеся пространство с учетом размеров шрифта. В других же программах нет такого косяка.