Пишу потому, что к большому моему удивлению открыл, что весьма активные писатели Смарт-лаба этого не знают. В главном потоке программы Quik работают только функции обратного вызова типа OnTransReply, OnTrade и индикаторы. Кстати, OnTrade срабатывает не только по заявкам из скрипта, но и поданным интерактивно.
Дело обработчиков событий не обрабатывать, но регистрировать их.
Неверные представления о потоках в Quik'е вынуждают этих писателей городить абсурдный обмен данными между Quik'ом и внешними приложениями. Тогда как вся информация по событиям может быть обработана средствами QLua во вторичных скриптовых потоках без помех для главного потока Quik'а.
Хотя QLua обладает весьма эффективными средствами взаимодействия с любым приложением Windows, не так просто придумать повод для обращения QLua за посторонней помощью. Например, сохранять на диске текущие данные QLua может массой способов от простейшего io.read/write до SQLite.
Количество библиотек для QLua просто изумляет.
NB. Известная проблема скриптовых языков, что ошибки-описки в именах функций и переменных влекут трудно диагностируемые сбои работы, решается двумя простейшими средствами.
1) Все константы собираются в одном модуле с контролем доступа через мета-функцию __index(). Это даёт диагностику времени выполнения.
2) Для контроля имён при разработке кода следует использовать общедоступную программу lualint. А для блокировки ложных срабатываний по глобальным именам из других модулей, можно написать свой код, фильтрующий эти имена.
Чтобы расширить область контроля lualint, следует больше данных именовать как отдельные переменные. Имена полей в таблицах контролю не доступны. По возможности, их следует представлять константами из упомянутых модулей констант.
Поэтому, там где напрашивается сгруппировать переменные и функции в объект-таблицу, я сдерживаю свои навыки ООП и для группировки использую вульгарные префиксы. Например, pos_EntryPrice, pos_Exit() означают поле и функцию в «виртуальном» объекте типа Position.
1. события
2.main()
Других потоков не существует в природе.
Если вы говорите о нитях lua — это фактически один поток, принудительно переключаемый между задачами.
Вы пишите абсурд. Видимо, от непонимания предмета.
Что там в разных программах в main() разные потоки, это очевидно, и неинтересно.
Брось свои рассуждалки. Я тебе указал обще-доступный эксперимент, дающий исчерпывающую информацию.
И что мы имеем с гуся?
Его безмерная вера в силу рассуждений не позволила ему сосчитать женские зубы экспериментально.
Но тебе, прежде чем приступать к эспериментам с потоками Windows, надо ознакомиться с назначением WIN32 API функции GetCurrentThreadId().
Что это конкретно дает программисту? Какие новые возможности?
По идее он просто по событию срабатывает(пришла новая сделка) неважно откуда, чтобы лишний раз не проверять таблицу сделок как в квипл скрипте
PS Что ещё интереснее, что реакция OnOrder на заявку «по рынку» приходит позже реакции OnTrade на регистрацию совершённой по этой заявке сделке.
Но это древний отстой!!!
Есть ли нормальная современная ide для qlua?
Есть ли нормальный дебаг?
По сравнению с java в Idea
Где там в луа управление потоками, пулы, таймауты, jdbc, лямбды?
Пишу детские скрипты в notepad++ и думаю, что это никуда не годится
Луа разрабатывался для кофемолок и как язык сценариев и межпрограммного взаимодействия. Этого хватает, чтобы выбраться из него наружу. Больше ничего и не нужно.
Только C#, C++15 и Java 7 стали приближаться к этим возможностям, заведя лямбда-функции — весьма коряво.
Как изящно и минимумом средств всё сделано в Lua, и как корямо, монструидозно и трудно читаемо это всё втиснуто в C++.
Внимание, вопрос!
А как это сделать в QLua? :)))))
А что Квик не через почту России отправляет заявки?
Непонятно, зачем носиться с планшетом и Квиком, если у вас роботы пашут, я не совсем понимаю.
Пашет робот, пусть будет их — 25. И что мне делать с Квиком? Смотреть как он подключен к сети? Ну, хорошо, пишем на Луа скрипт по отслеживанию работы Квика, еще чего-нибудь… А что делать если Квик «потухнет» со всеми скриптами Lua? Вот поэтому появляется повод обратиться за посторонней помощью:))) Нам же важно чтоб оно все работало и только — обратная связь так сказать, что там еще смотреть, ждать пока какой-нибудь робот отключится или обрыва соединения?:))))
Ну, если нравится смотреть в Квик на планшете, то смотрите ...
quik2dde.ru/viewtopic.php?id=16
Или новость была именно в том, что отдельный поток main() создаётся для каждого Lua-скрипта?