TGB (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
вы просто рано или поздно ломаете стек и получаете крэш. Именно это и подтверждает ваш тест
что в версиях QUIK >= 8.5... есть проблемы с управлением автоматической памятью QLua.

Вы постоянно забываете, что
Цитата
TGB написал:
При этом всегда помним, что OS_Quesha (с dll оттранслированными для Lua 5.1) непрерывно (месяцами) без проблем работает во всех версиях QUIK <  8.5.
   Если желаете проверить сами выше приведенное утверждение, то могу выложить соответствующие коды для версий 8.4...

   При запуске функций QLua в потоках OS_Quesha, стеки таких функций разворачиваются в отдельных, не пересекающихся между собой областях памяти. Поэтому синхронизации доступа к локальным переменным функций в различных потоках не требуется (единственное что при этом требуется - это потокобезопасность управления памятью QLua). Если по какой-то необходимости в потоках требуется синхронизация для общих модифицируемых переменных, то это делается внутри моей dll-библиотеки.
Цитата
Anton написал:
Это все прекрасно, к стейту-то вы как доступ синхронизируете? Это можно сделать только той же критической секцией, которую внутренне использует квик, как вы до нее добрались?
  Во внутренние структуры квик я напрямую нигде не обращаюсь. Использую исключительно то, что предоставляет QLua и его C-API.
------
  Наконец, еще раз вспомним, что OS_Quesha (с dll оттранслированными для Lua 5.1) непрерывно (месяцами) без проблем работает во всех версиях QUIK <  8.5. и не будем забывать, что  начиная с марта 2020г..(уже 6 месяцев) появляются все новые и новые версии QUIK(8.5…, 8.6…, 8.7…, 8.8…), а их стабильности как не было так и нет. При этом, возникло много инцидентов именно с памятью этих версий.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Теперь вопрос, как вы синхронизируете доступ к этому стейту из разных потоков?
  Ответ из документа:
5. Полная инкапсуляция параллелизма функционирования потоков/псевдопотоков в средствах
OS_Quesha, обеспечивающих эффективность (реализована специально разработанная схема
синхронизации), корректность синхронизации и безопасность взаимодействия функций, вы-
полняемых в разных П/П.
В OS_Quesha существуют два вида, параметрически задаваемой в глобальных настойках, син-
хронизации П/П: обычная, с использованием критической секции ОС, и быстрая (специально
разработанная) на "защелках", без переключения потоков в случаях возникновении конфликтов
синхронизации. При необходимости разработчик может использовать все средства синхрониза-
ции явным образом.

 При этом всегда помним, что OS_Quesha (с dll оттранслированными для Lua 5.1) непрерывно (месяцами) без проблем работает во всех
версиях QUIK <  8.5.  
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Вы работаете с одним lua_State из двух разных потоков, верно я понял?
 Дополнение.
  Кроме запускаемого шаблона-исходника TS_QUIK.lua есть документация OS_Quesha.pdf (в папке C:\OS_Quesha\OS_Quesha_files), из которой можно узнать что-то об архитектуре  OS_Quesha, в том числе о том, что количество потоков, работающих в одном lua_State задается параметрически в описании схемы потоков (с указанием запускаемых в них функций и связями между ними), а также многое другое.  
  Если вы посмотрите документацию, то возможно, найдете ответы на возникающие у вас вопросы.  
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Вы работаете с одним lua_State из двух разных потоков, верно я понял?
 Уточнение: на самом деле из нескольких потоков. Это тест выполняется в двух.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Вы работаете с одним lua_State из двух разных потоков, верно я понял?
  Да.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
    Извините, упустил:
Цитата
Anton написал:
Попытался найти, где у вас этот тестовый код зарыт, не нашел. В чем смысл такого теста остается неясным.
 Общее описание.
   function OS_Quesha_TS (NC)    - запускается циклически (в отдельном потоке) по таймерным событиям, запрашиваемым в функции set_evnt_lua ({1, CyclichkLine_evnt_TS}) с частотой ~300 гц.  В этой функции запрашиваются строки в цикле (5 раз) и передаются функции  function SendTS_CQ(NC) работающей в другом отдельном потоке и что-то делающей с этими строками (смотрите текст).   Все это происходит в одной lua_State.
   При такой работе достаточно интенсивно ( как минимум 1500 обращений в секунду) нагружается система управления автоматической памятью QLua. И это происходит в разных потоках. Если потокобезопасное управлению автоматической памятью  реализовано корректно, то тест выполняется до тех пор пока запущенный скрипт не будет остановлен. Иначе возникают различные ошибки, не перехватываемые в QLua.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Все же речь была о заинтересованных в отладке квика, а не вашей операционной системы. А для этого нужен (насколько возможно примитивный) луа-скрипт, показывающий, что гарбидж коллектор в квике работает некорректно, как вы утверждаете. Из описанного поведения пункт 2 это ТОЧНО дедлок у вас в коде, пункт 1 может быть от чего угодно, как из него следует косяк именно в коллекторе, непонятно. Попытался найти, где у вас этот тестовый код зарыт, не нашел. В чем смысл такого теста остается неясным.
    Тестирование проблем синхронизации задача сложная и это подтверждается тем, что сама АРКИ, похоже, за десятилетия существования не разработала достаточно валидного теста потокобезопасного управления автоматической памятью QLua. Я сделал такой тест давно в виде утилиты в своей системе для себя (и он реализован с существенным использованием среды исполнения моей системы и я, к сожалению, не могу его изобразить в виде простенького скрипта, как предлагаете вы) . В том виде, в котором я его выложил, этот тест запускается по умолчанию и для специалиста, с моей точки зрения, этого достаточно. Я думаю разработчики QUIK смогут в нем разобраться. Если же он вам не понятен, то вы можете попробовать предложить свой простой тест.
  Еще один момент, который я специально отметил:
Цитата
TGB написал:
Эта же программа (с dll оттранслированными для Lua 5.1) непрерывно (месяцами) без проблем работает во всех версиях QUIK < 8.5.
 
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Кто хочет результата, выкладывает здесь тестовый скрипт, здесь есть достаточно заинтересованные люди, чтобы потратить время, прогнать у себя, подтвердить баг и тем самым сподвигнуть арку на подвиги, либо обнаружить косяк в самом тесте.
Для заинтересованных людей ссылка на коды теста:  https://cloud.mail.ru/public/2Emr/QBCqEvATr
 За найденные баги в тесте буду благодарен.
----------------------------------------  
 Ниже приводится инструкция по запуску теста (непосредственно из письма, посланного в поддержку QUIK).
----

Новая версия (от 06.08.20) QUIK 8.8.1.5 продолжает «падать» (CQ02750791, CQ02779753, CQ02787899). Тестовая программа, вызывающая падение (с инструкцией по установке и ее запуску).

Здравствуйте!

 QUIK 8.8.1.5 «падает» похожим образом, как это было в предыдущих версиях (начиная с 8.5….). Кроме того, в QUIK в мониторе ресурсов, наблюдается утечка памяти.

   Для того, чтобы у вас была оперативная возможность отладки очередной версии, я высылаю не дамп, а мою тестовую программу (с кодами и инструкцией по ее запуску), в которой дампы возникают быстро (у меня в течении 5 минут), но в произвольные моменты. Эта же программа (с dll оттранслированными для Lua 5.1) непрерывно (месяцами) без проблем работает во всех версиях QUIK < 8.5. Одна из функций данной программы, которая включена сейчас по умолчанию, это тестирование автоматического управления памятью в QLua. Особенностью теста является высокая нагрузка (1500 обращений в секунду) на управление автоматической памятью QLua в условиях многопоточности.

   Если потребуется, я пришлю коды этой же тестовой программы (с dll оттранслированными для Lua 5.1), нормально работающей в версиях 8… < 8.5.

------

Инструкция по установке и запуску тестовой программы.

Для установки и запуска программы надо выполнить следующее:

1) распаковать архив OS_Quesha 8_5.zip;

  ! После распаковки исполняемые файлы в папке «… OS_Quesha\packages» и «…OS_Quesha\packages\Файлы папки QUIK» могут оказаться заблокированными;

     их необходимо разблокировать;

     Файлы можно разблокировать в их свойствах.

     Для быстрой разблокировки всех файлов папки:

      - откройте консоль PowerShell (под Админом) и выполните в ней команду get-childitem "полный путь папки" | unblock-file, предварительно заменив содержимое кавычек полным адресом к папке с заблокированными файлами.

2) получившуюся папку OS_Quesha переслать на диск C (в корень);

3) переслать все файлы (их два) из папки C:\OS_Quesha\packages\Файлы папки QUIK в папку хранения info.exe ( на диске установки QUIK);

4) в меню QUIK <Сервисы> ->   <Lua скрипты ...>   добавить скрипт-шаблон "TS_QUIK.lua" из папки C:\OS_Quesha;

5) запустить добавленный скрипт (это можно делать в QUIKе без подключения к серверу);   при этом появится окно диалога OS_Quesha.

-------------------------

При нормальной работе теста в поле Сообщения диалога с интервалом 5 секунд выдаются сообщения:

<@> <Дата | Время> <6.0> Тест управления памятью QLua. Количество синхронизаций = Количество

  Пока значение Количество меняется (с интервалом в 5 секунд) тест выполняется без ошибок.

Ошибки теста проявляются следующим образом:

1)       QUIK  «падает» (иногда очень быстро) с сохранением дампа, а иногда и без сохранения;

2)      Прграмма OS_Quesha зависает и Количество синхронизаций перестает меняется. Тогда про попытке завершения скрипта зависает или падает QUIK.

-----------

  Если скрипт "TS_QUIK.lua" запускать многократно то, в какой-то (произвольный) момент возникает дамп QUIK.   В версиях QUIK < 8.5 дампов не возникает.

     Для завершения работы с OS_Quesha достаточно закрыть окно ее диалога или остановить крипт в меню QUIK.                

------

Внимание!     Для того чтобы нормально работали пакеты dll,   в W10(64р), в папке C:\Windows\System32 и   в C:\Windows\SysWOW64 должны быть (в каждой из них) файлы:   msvcp140d.dll, msvcr120d.dll,   ucrtbased.dll, vcruntime140d.dll

Иначе QLua   может выдавать сообщение: Не существует модуль…….

Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Андрей написал:
Может стоит им отправить свой тестовый стенд, быстрее дело пойдет.
Отличное предложение.  Я уже подготовил коды и инструкцию и  предложу это в переписке.с ними.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
  Есть предложение от
12.08.2020 18:36:39
Цитата
TGB написал:
Я понимаю, что отказаться от перевода QUIK на Lua 5.3… для ARQU практически невозможно, но, если ориентироваться на результат, то имело бы смысл «заморозить» перевод QUIK на Lua 5.3… и перенести накопленные нормально работающие фичи версий >=8.5… (в том числе длину номеров заявок = 19   ) в последнюю версию 8.4…… В противном случае, скорее всего, нас ждет длительное шоу новых версий QUIK.
Хотелось бы увидеть реакцию от поддержки ARQU.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 

  По моему скромному мнению, перевод QUIK на Lua 5.3… является стратегической ошибкой ARQU, если ориентироваться на пользователя, а не на хайп.    

   Во-первых, функционально, с учетом архитектурно тесной интеграции Lua c языком C/C++, это, мягко говоря, сомнительный шаг, так как все, что не реализовано в Lua 5,1,  по сравнению с Lua 5.3 (а это мало кому нужно), можно реализовать в языке C++. В том числе и длину номеров заявок (>= 19).

  Во-второых, при переходе на Lua 5.3 для  пользователя заметно меняется среда разработки в части используемых dll-библиотек. Надо ли это нормальным пользователям?

  Во-третьих, для самих разработчиков QUIK возникает большой геморрой в связи с необходимостью переработки управление автоматической памятью  Lua 5.3…  (оно существенно отличается от того, что было в Lua 5.1) так, чтобы оно было в QLua 5.3... потокобезопасным (задача, конечно, интересная, но нетривиальная задача параллельного программирования, требующая высокой квалификации). Необходимость потокобезопасности управления автоматической памятью QLua обусловлена тем, что все служебные функции обратного вызова QLua запускаются в потоке отличном от пользовательского (с именем main), но в среде (памяти) пользователя.

   Что мы имеем на текущий момент (12.08.20). Пользователи отлаживают, начиная с марта 2020г.все новые и новые версии (8.5…, 8.6…, 8.7…, 8.8…). Прошло уже 5 месяцев как нас кормят обещаниями стабильной новой версии QUIK. При запусках моего теста управления автоматической памятью во всех QLua версиях >= 8.5  в произвольные моменты времени, но в интервале 10 минут,  возникают дампы ( все они пересланы мной в поддержку ARQU). Причем в QUIK версий < 8.5 проблем с управлением автоматической памятью QLua мной не обнаружено.

    Пока в версии >= 8.5 не будет реализовано корректное потокобезопастное управление автоматической памятью версий QLua >= 8.5, QUIK будет нестабильным (надеюсь что разработчики QUIK это понимают).

-------

   Я понимаю, что отказаться от перевода QUIK на Lua 5.3… для ARQU практически невозможно, но, если ориентироваться на результат, то имело бы смысл «заморозить» перевод QUIK на Lua 5.3… и перенести накопленные нормально работающие фичи версий >=8.5… (в том числе длину номеров заявок = 19   ) в последнюю версию 8.4…… В противном случае, скорее всего, нас ждет длительное шоу новых версий QUIK.

Отладка QUIK 8.8
 

   К сожалению, приходится наблюдать, как катастрофически падает профессионализм управленческих кадров в России, определяющих, что надо делать. ARQU вместо того, чтобы устранять ошибки версий 8.4…, улучшать функциональность, надежность и эффективность QUIK (и тут имеется широкие возможности), решила сделать маркетинговый ход и «поразить» пользователей переходом с Lua 5.1 на 5.3. Тут надо понимать, что функционально, с учетом архитектурно тесной интеграции Lua c языком C/C++, это, мягко говоря, сомнительный шаг, так как все, что не реализовано в Lua 5,1,  по сравнению с Lua 5.3 (а это мало кому нужно), можно реализовать в языке C++.

   Кроме того, история с многочисленными проблемами реализации собственного, потокобезопасного управления автоматической памятью QLua 5.1, была, похоже, была проигнорирована. Вместо элементарной реализации в версии 8.4…. произвольной длины номеров заявок (> 19 знаков) был выбран нелегкий путь («нормальные» герои всегда идут в обход).перехода на Lua 5.3… (в котором существенно изменилось управление автоматической памятью и  которое в QLua 5.3…, в отличие от Lua 5.3…, необходимо переработать так, чтобы оно было потокобезопасным). Необходимость потокобезопасности управления автоматической памятью QLua обусловлена тем, что все служебные функции обратного вызова QLua запускаются в потоке отличном от пользовательского (с именем main), но в среде (памяти) пользователя.

  Что мы имеем на текущий момент (12.08.20). Пользователи отлаживают, начиная с марта 2020г.все новые и новые версии (8.5…, 8.6…, 8.7…, 8.8…). Прошло уже 5 месяцев как нас кормят обещаниями стабильной новой версии QUIK. При запусках моего теста управления автоматической памятью во всех QLua версиях >= 8.5  в произвольные моменты времени, но в интервале 10 минут,  возникают дампы ( все они пересланы мной в поддержку ARQU). Причем в QUIK версий < 8.5 проблем с управлением автоматической памятью QLua мной не обнаружено.

 Пока в версии >= 8.5 не будет реализовано корректное (пусть и не самое эффективное) потокобезопастное управление автоматической памятью версий QLua >= 8.5, QUIK будет нестабильным (надеюсь что разработчики QUIK это понимают).

Обмен данными между Lua-скриптами
 
Существует достаточно общее решение («OS_QUESHA») для реализации взаимодействия функций QLua запускаемых в нескольких потоках в одном  lua_State. Оно бесплатно для некоммерческого использования и работоспособно в версиях 7... <= QUIK < 8.5.
 Ссылка на коды и документацию: https://quikluacsharp.ru/stati-uchastnikov/operatsionnaya-sistema-razrabotki-mnogopotochnyh-robotov-torgovli-tsennymi-bumagami-v-quik-os_quesha/
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 

   Как и предполагалось (смотри мой комментарий от 23.05.2020 14:30:59), поддержка ARQU до сих пор в данной теме себя не проявила. Претензий к поддержке и разработчикам QUIK нет (это подневольные люди, как и «записные» боты-энтузиасты новых версий QUIK).

 К сожалению, приходится наблюдать, как катастрофически падает профессионализм управленческих кадров в России, определяющих, что надо делать. ARQU вместо того, чтобы устранять ошибки версий 8.4…, улучшать функциональность, надежность и эффективность QUIK (и тут имеется широкие возможности), решила сделать мартенгивый ход и «поразить» пользователей переходом с Lua 5.1 на 5.3. Тут надо понимать, что функционально, с учетом архитектурно тесной интеграции Lua c языком C/C++, это, мягко говоря, сомнительный шаг, так как все, что не реализовано в Lua 5,1,  по сравнению с Lua 5.3 (а это мало кому нужно), можно реализовать в языке C++.

   Кроме того, история с многочисленными проблемами реализации собственного, потокобезопасного управления автоматической памятью QLua 5.1, была, похоже, была проигнорирована. Вместо элементарной реализации в версии 8.4…. произвольной длины номеров заявок (> 19 знаков) был выбран нелегкий путь («нормальные» герои всегда идут в обход).перехода на Lua 5.3… (в котором существенно изменилось управление автоматической памятью и  которое в QLua 5.3…, в отличие от Lua 5.3…, необходимо переработать так, чтобы оно было потокобезопасным). Необходимость потокобезопасности управления автоматической памятью QLua обусловлена тем, что все служебные функции обратного вызова QLua запускаются в потоке отличном от пользовательского (с именем main), но в среде (памяти) пользователя.

  Что мы имеем на текущий момент (26.07.20). Пользователи отлаживают, начиная с марта 2020г.все новые и новые версии (8.5…, 8.6…, 8.7…, 8.8…). Прошло уже 5 месяцев как нас кормят обещаниями стабильной новой версии QUIK. При запусках моего теста управления автоматической памятью во всех QLua версиях >= 8.5  в произвольные моменты времени, но в интервале 10 минут,  возникают дампы ( все они пересланы мной в поддержку ARQU). Причем в QUIK версий < 8.5 проблем с управлением автоматической памятью QLua мной не обнаружено.

    Пока в версии >= 8.5 не будет реализовано корректное (пусть и не самое эффективное) потокобезопасное управление автоматической памятью версий QLua >= 8.5, QUIK будет нестабильным (надеюсь что разработчики QUIK это понимают).

Почему скрипты в QUIK выполняются дольше
 
 
Цитата
Sergey Gorokhov написал:
В QUIK есть многопоточность
Дополнение к выше приведенному ответу.
 QUIK не управляет потоками. Ими управляет ОС. Но в реализации QLua есть отличие от "чистого" Lua, состоящее в том,что виртуальная машина QLua реализует собственное, потокобезопасное управление автоматической памятью QLua (запрос памяти под объекты QLua, возврат памяти, сборка мусора). Это правильно, и обусловлено тем, что все служебные функции обратного вызова QLua запускаются в потоке отличном от пользовательского (с именем main), но в среде (памяти) пользователя. Тут возникает только один вопрос: насколько эффективно в QLua реализовано это управление автоматической памятью? Но главным является то, что до версии QUIK 8.5, похоже это было реализовано достаточно корректно.Начиная же с версии QUIK 8.5 (а это переход c Lua 5.1 на 5.3, в котором существенно изменилось управление автоматической памятью) и вплоть до версии 8.8.0.55 при запусках моего теста управления автоматической памятью QLua в произвольные моменты времени возникают дампы ( все они пересланы мной в поддержку ARQU). Пока в версии >= 8.5 не будет реализовано корректное (пусть и не самое эффективное) потокобезопастное управление автоматической памятью версий QLua >= 8.5, QUIK будет нестабильным (надеюсь что разработчики QUIK это понимают).
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
Anton написал:
как она похорошела при в 8.5.2. Еще пара штрихов и будет не хуже по крайней мере старых 32-битных версий, а если обещанное выкатят в ближайшем релизе, то кое-в-чем уже лучше будет.
   Я бы, на месте АРКИ, платил вам зарплату :smile: .
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
Anton написал:
Куда этот 32-битный квик ставить-то.
 32-битный квик легко ставится в W10 64р.   И Microsoft будет продолжать поддерживать 32 р. приложения в 64р. Windows (у нее самой немало 32р. приложений).
 У меня в W10 (64р.) на одном ПК установлены QUIK 7...,  8.. и 8.5... Все работает, но только 8.5.... часто "падает" и не надо мне рассказывать как нужно искать мои ошибки (которые, конечно же случаются).
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
Anton написал:
Чет вспомнил про луддитов. Флешмоб за процессоры, которые 15 лет как сняты с производства, и оси, поддержка которых закончилась полгода назад. Это надо было на интеле и майкрософте устраивать и сильно раньше, теперь поезд ушел уже. Что интересно, вышеименованный продукт создан в студии 2015, которая не то что на хрюшу, на семерку-то не встает. Внезапно.
 

Увеличение номера заявки до 19 разрядов это, конечно, прорыв в будущее :smile: .

 Вообще, приходится постоянно наблюдать как производители, особенно монополисты, нередко специально «понуждают» потребителей переходить на новые продукты и это часто связано не с заботой о «прогрессе», а для «бабло срубить». Ни на что не намекаю.

 А  если конкретно, то в данной теме обсуждается не перенос «фич» из новой версии 8.5 в старые, а всего навсего обеспечение очень старой функциональности работы с заявками.

Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
Anton написал:
Спасибо, это многое объяснило.
Пожалуйста.

--------
И по теме.

 Похоже, поддержка QUIK в данной теме не появится. Но я на это особо и не рассчитывал. Им
это все по барабану. Надо понимать, что музыку заказывает тот, кто платит, а деньги
АРКА за QUIK, как правило, получает непосредственно от наших брокеров (у которых
наша плата за QUIК входит в оплату за предоставляемые ими услуги). Поэтому, если
кому-то хочется быть услышанным АРКОй, это надо делать, скорее всего, через
своего брокера. Так будет для АРКИ доходчивее.
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
Anton написал:
Вообще риторика "да там делов на два часа" очень знакома. Обычно такой заказчик приходит с копеечным бюджетом и потом пытается еще и с оплатой прокинуть, либо, в лучшем случае, попросить "ыщо малость доработать" (ну то есть вообще с нуля и по-другому) за тот же прайс. Ни на что не намекаю, просто наблюдение.
Вы намекаете на разработчика ОПЕРАЦИОННАЯ СИСТЕМА РАЗРАБОТКИ МНОГОПОТОЧНЫХ РОБОТОВ ТОРГОВЛИ ЦЕННЫМИ БУМАГАМИ В QUIK «OS_QUESHA», выложившего (в комментариях статьи) ссылки на нее для бесплатного использования в некоммерческих целях https://quikluacsharp.ru/stati-uchastnikov/operatsionnaya-sistema-razrabotki-mnogopotochnyh-robotov-torgovli-tsennymi-bumagami-v-quik-os_quesha/
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
Цитата
s_mike@rambler.ru написал:
Вы поддержите фининсово, оплатите необходимую вам работу - и разработчики с удовольствием все сделают. У вас есть лишние деньги , изменяющиеся сотнями тысяч рублей или все проще поставить версию 8?
Интеллектуальная поддержка:
----
Номер заявки можно оставить строковым.
 В С++:
Перевод строки в INT64:    INT64 value = _atoi64(input);
Обратный перевод:       _i64toa_s(value, input, 20, 10);
Дополнительные пояснения.
Наверное, почти все знают, что из QLua можно обращаться к функциям, написанным на C++.  И за 2-3 :) дня можно было разработчику QUIK, используя приведенные выше две строки, написать две функции, каждая из которых была бы длиной не более 6-ти строк.
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
 
   Переход на QUIK  8.5.....  для многих пользователей порождает проблемы связанные как с нестабильностью новой версии, так и с необходимостью перевода своих прикладных программ c Lua 5.1 на Lua 5.3.
  Пусть бы энтузиасты "покувыркались" бы с новыми версиями, а консерваторы занимались бы своими делами.
19-ти разрядные № заявок в старых версиях реализовать не сложно и это хорошо бы сделать. Разработчику QUIK это было бы только в плюс.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата

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

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

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

Перевод строки в INT64:    INT64 value = _atoi64(input);
Обратный перевод:       _i64toa_s(value, input, 20, 10);
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Цитата
Anton написал:
По каждому тику квику пришлось бы:1) искать строку с номером заявки в хранилище луа2) не находить ее, выделять память, пихать новую строку в хранилище луа3) дергать колбек4) убивать ссылку на строку5) через каждые несколько тиков луа придется собирать мусор.Это было бы не просто медленно, это убило бы вообще все, квик бы плелся как черепаха и зависал от каждого движения мышки.
А выше написано о чем?  В самих  значениях строки (таблицы) есть и строки и числа. Ну что из этого? Все это находится в управляемой памяти и под уборку мусора.
   Вообще, я думаю, что каждый из нас может остаться при своем мнении.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Anton написал:
Как и где вы посмотрели? Луа возвращает тип number для номера сделки, в alltrades.dat они лежат в виде 64-битных целых (просто поверьте). Так где вы строки увидели?
После заказа данных создайте "Таблицу обезличенных сделок".  И далее запустите скрипт:

local all_trades = getItem("all_trades", 10)

message( "------------------------------");
for i, v in next, all_trades do
   message(type( i) .. "  " ..  i);
end
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Anton написал:
TGB  написал:Почему нельзя сделать. чтобы номер заявки был текстовой переменной?

Так и думал, что это будет приведено. Потому что есть например OnAllTrade. По каждому тику квику пришлось бы:1) искать строку с номером заявки в хранилище луа2) не находить ее, выделять память, пихать новую строку в хранилище луа3) дергать колбек4) убивать ссылку на строку5) через каждые несколько тиков луа придется собирать мусор.Это было бы не просто медленно, это убило бы вообще все, квик бы плелся как черепаха и зависал от каждого движения мышки. И это только одно.
Я специально посмотрел записи таблицы "all_trades" в QUIK 8.5.1.18.  Все поля ее записей строковые. Поэтому я не понял что вы написали в вашем сообщении.
  Вообще, если же спуститься на "землю", а именно, посмотреть реальную работу QUIK версий 7.27.2.1.,  8.3.2.4 и  8.5.1.18, то никаких чудес быстроты функционирования последних двух относительно первой я не заметил (понятное увеличение размера кода это конечно же мелочь).
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
новичок написал:
Цитата
TGB написал:
эффективное использование ресурсов ПК (низкая нагрузка).
ай-ай,  а как же тогда с этим? - пускать софтину чуть ли не в сэнд-боксе ?

неувязочка :)

хотя действительно ... зачем делать 64-битный софт в 64-битной ОС на 64-битном ЦПУ ... глупость какая-то

давай, поясни как это полностью неправильно :)

и вот это тоже до кучи

Цитата
Цитата
новичок написал:
TGB  написал:Поддержку 19-разрядных номеров можно было реализовать в архитектуре QUIK 7. Если, у кого-то в этом есть сомнения, то я готов изложить как это можно было сделать.
По 1-му пункту:  мне долго вам объяснять, что 32-ух разррядные приложения в 64р. Windows 10 могут выполняться часто даже быстрее, чем 64 разрядные. Погуглите.

По 2-му пункту есть нормальное решение
Цитата
Sergey Denegin написал:
А что никак нельзя обойтись без луа 5.3 чтобы отправлять номера заявок 19и разрядные? например из двух частей.
Почему нельзя сделать. чтобы номер заявки был текствой переменной?
Мне не совсем понятно, почему ради каких -то 19и значных номеров пользователи должны ставить себе новую винду? Это сверх НЕ клиентоориентированный подход, неужели руководство квика считает, что они не потеряют клиентуру?
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
новичок написал:
Цитата новичок  написал:  https://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overv....  p 3.1
Ну, наверное, всем известно, что 64р. Windows 10 поддерживает 32р. приложения.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
новичок и есть новичок
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
  Вопросы к поддержке QUIK:
1) чем вызвана необходимость перевода рабочего места клиента QUIK на 64р. архитектуру (что нельзя было делать клиентам на 32р)?
2) чем вызвана необходимость перевода рабочего места клиента QUIK на Lua 5.3 (соображения, что это модно не интересны)?
3) была ли какая-то оценка проблем, которые могут возникнуть у клиентов, да и у самого разработчика?

Что мне, как пользователю рабочего места клиента QUIK, нужно:
   надежность, удобство, оперативность выполнения функций, наглядность, эффективное использование ресурсов ПК (низкая нагрузка).
Все остальное мне, как я думаю и большинству клиентов, не интересно. Кроме того, важнейшим показателем рабочего места клиента QUIK является стабильность его архитектуры, обеспечивающая стабильность среды разработки моих прикладных программ. Нам, непосредственно работающим на фондовом рынке, за постоянное перестраивание своих программ под постоянно меняющуюся архитектуру денег не платят.
  Какие из перечисленных выше требований к рабочему месту трейдера нельзя было реализовать в архитектуре QUIK 7?
  Поддержку 19-разрядных номеров можно было реализовать в архитектуре QUIK 7. Если, у кого-то в этом есть сомнения, то я готов изложить как это можно было сделать.
Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14
Наверх