Все ли знают, что в Quik'е у каждого скрипта main() свой отдельный Windows-поток (thread)?
Пишу потому, что к большому моему удивлению открыл, что весьма активные писатели Смарт-лаба этого не знают. В главном потоке программы Quik работают только функции обратного вызова типа OnTransReply, OnTrade и индикаторы. Кстати, OnTrade срабатывает не только по заявкам из скрипта, но и поданным интерактивно.
Дело обработчиков событий не обрабатывать, но регистрировать их.
Неверные представления о потоках в Quik'е вынуждают этих писателей городить абсурдный обмен данными между Quik'ом и внешними приложениями. Тогда как вся информация по событиям может быть обработана средствами QLua во вторичных скриптовых потоках без помех для главного потока Quik'а.
Хотя QLua обладает весьма эффективными средствами взаимодействия с любым приложением Windows, не так просто придумать повод для обращения QLua за посторонней помощью. Например, сохранять на диске текущие данные QLua может массой способов от простейшего io.read/write до SQLite.
Количество библиотек для QLua просто изумляет.
NB. Известная проблема скриптовых языков, что ошибки-описки в именах функций и переменных влекут трудно диагностируемые сбои работы, решается двумя простейшими средствами.
Авто-репост. Читать в блоге >>>