🏆Не просто кафе, а экосистема: проект ГК «А101» победитель конкурса «Мой добрый бизнес»
Подводим итоги Займера в 2025
Вот-вот новый год сменит предыдущий. Давайте вместе вспомним, чем 2025 отметился для Займера и его акционеров. 🎉 Январь: нашей компании исполнилось 11 лет. 📈 Февраль: “Эксперт РА” повысил...
❤️ Подводим итоги года вместе с инвесторами МГКЛ
🎄 Этот год мы прошли вместе с вами — нашими инвесторами. Каждый день были на связи, отвечали на вопросы, делились новостями, обсуждали результаты и планы. В конце года хотим немного...
см. Qlua.chm: функция SetTableNotificationCallback
Приложение 3. Примеры обработки событий для таблиц
Пример обработки событий мыши и клавиатуры
Собственно, вот:
smart-lab.ru/blog/454196.php
smart-lab.ru/blog/453384.php
тут просто окошки с таблицами выводятся. Остается только поискать как в окошки добавлять поля для ввода и как пишутся CallBack-и при нажатии на кнопки вроде Update
Не забудь(те) поделиться результатами своих изысканий!)
QLUA.chm
Функции для работы с таблицами Рабочего места QUIK, созданных с помощью скриптов на языке LUA.
Аккуратно посмотрите, что можно и чего нельзя. Там хороший набор функций. Мне хватило возможностей и для управления, и для отображения состояния.
Единственно — добавил сохранение и восстановление размеров и положения окна с таблицей.
а так, визуальный интерфейс на луа пишется довольно просто, вот простейший пример:
stackoverflow.com/questions/18056592/how-can-i-make-an-gui-application-in-lua
Проблема только в том, что гуевина может конфликтовать с квиком, блокировать скрипт, например.
Однако, если Вы понимаете, что существует хотя бы небольшая вероятность увеличения количества одновременно работающих роботов, или значительное увеличение количества обрабатываемых одновременно инструментов, то максимум через годик Вы поймете, что QLua — это тупик.
Настоятельно рекомендую уже сейчас смотреть в сторону C#. Я все это уже прошел, а у Вас есть возможность сэкономить время (как минимум, год).
github.com/finsight/QUIKSharp/issues
Это единственный абсолютно бесплатный проект, с открытым исходным кодом.
На сколько мне известно, ребята из TSLab положили в основу своего коннектора именно этот проект.
www.youtube.com/watch?v=DKkCvKeSFoc
из него понятно, что этот коннектор соединяется с квиком через сокеты по протоколу json. В принципе, это концептуально то же самое что я делаю, только более общо) По скорости мой подход должен быть несколько быстрее, т.к. параметры средствами луа передаются в dll, а не преобразуются внутри луа скрипта в json, а потом уже передаются по тем же сокетам. У меня не передается лишнее, конверсия в числа происходит средствами луа и только тех полей, которые необходимы. К чему это я? К тому, что получается, это то же самое использование qlua, только с переносом исходного кода робота с луа на си шарп. В моем случае — с луа на с++. Кроме бесспорных преимуществ разработки на с#/c++ над lua еще есть какие-то? В чем тупик у qlua, в том, что написав кучу кода, он при определенной сложности робота просто ляжет и будет «неподъемным» для интерпретатором луа, или есть еще что-то, что я не могу понять?
В Вашем случае, конечно же никаких дополнительных преимуществ не будет, т.к. по сути Вы делаете то же самое, но для другой среды. На счет скорости ничего вразумительного сказать не смогу. Помню только что автор проекта утверждал, что скорость работы этого коннектора достаточно большая, чтобы не особо задумываться об этом. Мне скорости хватает, но я не работаю ни с тиковыми данными, ни с обезличенными сделками.
Условно (с учетом изменения структуры запуска роботов после перехода на С#), можно сказать, что сейчас у меня одновременно подключены к одному терминалу и работают в общей сложности 58 роботов + 1 служебный на QLua, и остается немалый запас по увеличению количества запускаемых роботов. На QLua я себе такого позволить не смог бы ни при каких обстоятельствах.
*Кстати, раз коннектор использует сокеты, робота по идее можно не только в отдельный процесс вынести, но и на отдельную физическую машину. Если это в коннекторе еще не реализовано, это достаточно легко сделать, при необходимости. Если машины соединены проводом и стоят рядом, там пинг какие-то микросекунды будет, т.е. ноль считай.