Привод QScalp как то получает все таблицы, а почему у вас нету такой библиотеки С++? Раз такое возможно?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
20.03.2016 18:47:32
Не совсем понятно какая библиотека вам нужна. . Это ведь то, что вас интересует?
Пользователь
Сообщений: Регистрация: 18.03.2016
20.03.2016 21:01:41
QScalp работает с квиком через QscalpAgent.dll, которая грузится в QscalpAgent.lua. Обмен через SharedMemory. Пробуйте, если есть скил в программировании.
Пользователь
Сообщений: Регистрация: 23.09.2015
21.03.2016 07:28:39
Дело в другом для DDE есть либа, а вот LUA нету С++, почему не сделаете? Типа такой QscalpAgent.dll?
попробую объяснить dll -это библиотека и не важно на чем она написана. Lua позволяет подключать dll. Поэтому подключайте и работайте.
Пользователь
Сообщений: Регистрация: 18.03.2016
21.03.2016 14:26:26
Для начала - да. Добавьте к этому работу с разделяемой памятью, ну и с заявками.
Пользователь
Сообщений: Регистрация: 30.01.2015
21.03.2016 19:07:15
Цитата
seltor написал: Для начала - да. Добавьте к этому работу с разделяемой памятью, ну и с заявками.
Я все это пользую в луа.
Пользователь
Сообщений: Регистрация: 18.03.2016
22.03.2016 12:27:19
Николай, пайпы юзаете или только шмем ?
Пользователь
Сообщений: Регистрация: 30.01.2015
22.03.2016 14:21:33
Пользуюсь всеми механизмами совместного использования памяти
Пользователь
Сообщений: Регистрация: 19.11.2016
19.11.2016 23:33:56
Для желающих писать плагин целиком на C++ библиотека доступа к QLUA API: Реализовано не все, но при необходимости не сложно дописать доступ к нужным функциям.
Пользователь
Сообщений: Регистрация: 01.02.2015
19.11.2016 23:52:26
Цитата
El El написал: Для желающих писать плагин целиком на C++ библиотека доступа к QLUA API: Реализовано не все, но при необходимости не сложно дописать доступ к нужным функциям.
было бы неплохо, если б там ещё и GUI было "прикручено", а так... желающие писать на С++ - по определению уже знают, как использовать LUA C API.
Пользователь
Сообщений: Регистрация: 01.02.2015
19.11.2016 23:53:55
но.. в любом случае, очень рад появлению новых С++ биндов.
El El написал: Для желающих писать плагин целиком на C++ библиотека доступа к QLUA API: Реализовано не все, но при необходимости не сложно дописать доступ к нужным функциям.
было бы неплохо, если б там ещё и GUI было "прикручено", а так... желающие писать на С++ - по определению уже знают, как использовать LUA C API.
GUI - вы имеете в виду API для работы с графиками и т.п.? Они не написаны, т.к. не использовались в моих проектах. Можно написать обертку и для них. Отличие от обычного использования LUA C - отсутствие необходимости знать про Lua. То есть, не надо думать как помещать параметры на стек, как обращаться к VM Lua, как читать данные. Единственное, что надо знать о Lua - уметь подклинковать библиотеку C Lua API и написать пару строк в заголовке основого cpp файла.
Пользователь
Сообщений: Регистрация: 01.02.2015
20.11.2016 00:04:36
насчёт GUI - это всё мои мечты. т.к. законными средствами - нельзя создать библиотеку визуальных контролов для QLUA и QUIK-а. в плане самой Вашей библиотеки - думаю, многим она будет интересна в плане применения STL + LUA.
Пользователь
Сообщений: Регистрация: 23.09.2015
31.01.2017 09:40:51
Цитата
El El написал: Для желающих писать плагин целиком на C++ библиотека доступа к QLUA API: Реализовано не все, но при необходимости не сложно дописать доступ к нужным функциям.
Вот что надо, только лучше чтобы команда Quik это написала! Почему это не написано?
Пользователь
Сообщений: Регистрация: 23.09.2015
11.03.2017 13:42:24
Цитата
El El написал: Для желающих писать плагин целиком на C++ библиотека доступа к QLUA API: Реализовано не все, но при необходимости не сложно дописать доступ к нужным функциям.
Никак не хочет компилировать в Visual Studio, может есть (.sln) проект?
Пользователь
Сообщений: Регистрация: 19.11.2016
31.03.2017 03:12:53
Цитата
mmonk1980 написал: Никак не хочет компилировать в Visual Studio, может есть (.sln) проект?
С какими именно симптомами? .sln нет, но cmake должен успешно его генерировать (опция -G), т.к. для nmake все генерируется хорошо
Пользователь
Сообщений: Регистрация: 23.09.2015
13.04.2017 07:02:22
Не могу скомпилировать DLL. Не находит LUA. Может сделаете все-таки .sln?
Пользователь
Сообщений: Регистрация: 23.09.2015
13.04.2017 07:26:17
Например как тут есть .sln и dll компилируется!
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 01:15:28
Пример плагина и пошаговая инструкция к нему, включая генерацию проекта под студию.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 09:31:27
Ну хотя бы example и чтобы dll делал? У меня на VS 2015 проект и знаю как это либу прикрутить (это не помогло: пример плагина и пошаговая инструкция к нему, включая генерацию проекта под студию). Нужен .sln и ваш example dll компилируется.
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 10:30:00
Цитата
mmonk1980 написал: Ну хотя бы example и чтобы dll делал? У меня на VS 2015 проект и знаю как это либу прикрутить (это не помогло: пример плагина и пошаговая инструкция к нему, включая генерацию проекта под студию). Нужен .sln и ваш example dll компилируется.
Пунк 6.2.1.
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 10:55:24
Возможно, я не понял,что вы имели в виду в предыдущем сообщении, особенно под "Нужен .sln и ваш example dll компилируется." Sln не генерируется cmake-ом? Или нужен только .sln от самой библиотеки qluacpp? Для этого нужно просто запустить cmake -G "Версия студии" -Dпараметры_с_путями_к_Lua c:\path\directory\to\qluacpp
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 11:48:06
Есть проект Visual Studio 2015, как нему подключить либу?
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 11:52:11
Например просто скомпилировать dll и один .h файл и все. Как обычно либы делаются.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 11:54:16
Вы пишете как нуля это либу подключить, а надо в текущий проект Visual Studio 2015.
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 12:04:49
Библиотека компилируется как обычная статическая библиотека для Visual Studio. Если нужна компиляция в динамическую, то скорей всего достаточно вставить в CMakeLists.txt от qluacpp в директиве add_library: "SHARED", не проверял. Если хотите создать библиотеку так, как было задумано, просто генерируете солюшн от qluacpp как сказано выше, потом добавляете этот проект с библиотекой в свой проект примерно как описано в обучалке от Microsoft как пользоваться Студией (последний раздел): Теоретически если желание все делать от руки, должно работать именно так.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 12:09:55
Не понятно. Может сделаете "example" где есть .sln и dll компилируется?
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 12:17:30
Я не могу на вашем компьютере набрать команду "cmake ... путь_где_создать_солюшн путь_куда_скачали_библиотеку". Создать проект под MSVS 2015 тоже не могу: у меня нет MSVS2015, да и я просто не помню как их создают там вручную. Не создавал их мышкой в Студии почти лет десять. Прислать сгенерированный тоже не могу: он генерируется с учетом путей на системе, на которой вызывается CMake, работать у вас не будет. Создавать от руки проект под каждую версию студии, плюс не под MS компиляторы, и распространять библиотеку так, я считаю шагом назад и уводить с современных средств генерации проектов тоже не хочу.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 12:22:28
У вас example в файле README.md, выложить dll и проект .sln к нему...
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 12:34:32
Цитата
mmonk1980 написал: У вас example в файле README.md, выложить dll и проект .sln к нему...
Этот example был почищен и переведен в репозитарий qluacpp-tutorial, в который добавлен и проект CMake, генерирующий .sln ко всем Студиям. Одновременно он был убран из файла README.md, чтобы не путать пользователей. В этом же README.md указаны требования: CMake, Lua 5.1, C++11 компилятор. Эти требования означают, что данный софт надо иметь на своем компьютере и уметь им пользоваться. В том числе, невозможно пользоваться библиотекой, если не уметь генерировать CMake проект под выбранную среду по вкусу (например, .sln под Студию 2015) и невозможно пользоваться библиотекой, если не уметь подключать библиотеки в выбранной среде. Как сгенерировать .sln, указано выше. Как подключить библиотеки в Студию, тоже указано по ссылке на MSDN. В скомпилированной форме библиотека не распространяется: не хочу, чтоб ходили бинарники, которые потом перестают работать или чем-нибудь заражены. Кроме того, смысла в этом нет, если делаешь продукт сугубо для программистов. Файл .sln от библиотеки прикладывать невозможно по указанным выше причинам (не портабелен между компьютерами). Файл .sln от примера будет ссылаться на непортабельный .sln библиотеки, его надо от руки переделывать под каждую новую Студию и т.п.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 12:40:35
Программисты разные бывают я например не cmake не пользуюсь и сразу ступор встаю как это делать. Обычно .sln идет c либой и example можно сразу проверить.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 12:43:02
"Файл .sln от примера будет ссылаться на непортабельный .sln библиотеки"
zip либа она там .sln файл, так тут не факт!
Пользователь
Сообщений: Регистрация: 19.11.2016
14.04.2017 12:50:29
Цитата
mmonk1980 написал: Программисты разные бывают я например не cmake не пользуюсь и сразу ступор встаю как это делать. Обычно .sln идет c либой и example можно сразу проверить.
Я тут к сожалению не смогу помочь, последние лет 10 я Студией пользуюсь только через CMake, причем как правило только тулзами командоной строки от нее, в основном для проверки собираемости проектов на разных компиляторах. Я вставю в ступор от кликанья по десяткам уровней вложенности окошек конфигурации Студии :) Раньше под Windows действительно любили распространять готовые sln проекты примеров, но теперь и версий Студий слишком много, и монополию на компиляцию под Win они потеряли. В случае же с этим примером и с этой библиотекой CMake глубоко изучать не нужно, все уже создано за пользователя. В примере пользователю нужно только запустить CMake из директории, куда генерировать проект и указать директорию, куда скачены файлы примера. Если нужно, как вы писали выше, подключить библиотеку уже к существующему не-CMake проекту в студии, нужно сделать то же самое, но скачав только qluacpp, и указав дополнительно всего-лишь две опции: путь к .h файлу от lua и путь к .lib файлу от lua.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 12:56:19
Цитата
El El написал: Если нужно, как вы писали выше, подключить библиотеку уже к существующему не-CMake проекту в студии, нужно сделать то же самое, но скачав только qluacpp, и указав дополнительно всего-лишь две опции: путь к .h файлу от lua и путь к .lib файлу от lua.
El El написал: Если нужно, как вы писали выше, подключить библиотеку уже к существующему не-CMake проекту в студии, нужно сделать то же самое, но скачав только qluacpp, и указав дополнительно всего-лишь две опции: путь к .h файлу от lua и путь к .lib файлу от lua.
Такое делал не помогает.
"Не помогает" - как конкретно? Что конкретно делали и какие именно ошибки? Лучше открыть issue на github, чтоб не напрягать читателей этого форума лишней информацией.
Пользователь
Сообщений: Регистрация: 23.09.2015
14.04.2017 13:10:29
Ладно буду сидеть на DDE раз LUA не доступна. Удачи вам за ответы. Может сделаете .sln когда нибудь!
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 11:20:26
Скомпилировал библиотеку, даже запустил. my_main вызывается и все нормально, а вот OnAllTrade и OnQuote молчит, нечего не приходит! Что надо сделать что бы тоже работали?
void OnQuote(lua::state& l, const char* class_code, const char* sec_code) { // Print depth for currently opened depth windows (aka "level 2 quotes" qlua::extended_api q(l); if (class_code == qlua::classcode::TQBR::name()) { // Get quote info with normal API auto quote = q.getQuoteLevel2(class_code, sec_code); // Same with Extended API, with typechecked class code auto quote_tl = q.getQuoteLevel2<qlua::classcode::TQBR>(sec_code);
Вы уверены, что у вас OnQuote случается в первые 3 секунды после запуска скрипта?
Пользователь
Сообщений: Регистрация: 19.11.2016
17.04.2017 11:27:39
Кроме того, и 3 секунды работы - у вас закоментированы.
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 12:04:58
my_main вызывается и все нормально, а вот OnAllTrade и OnQuote молчит, нечего не приходит! Может QUIK в квик надо поставит и еще что?
Пользователь
Сообщений: Регистрация: 19.11.2016
17.04.2017 12:10:33
Цитата
mmonk1980 написал: my_main вызывается и все нормально, а вот OnAllTrade и OnQuote молчит, нечего не приходит! Может QUIK в квик надо поставит и еще что?
Моя догадка: если вы раскоментируете строку, в которой пользователю сообщается, когда скрипт завершил работу, скорей всего увидите, что вы ждете вызовов, когда скрипт уже не работает. Если main уже не работает, то и весь скрипт не работает, см. родную документацию QLUA. А может, дело в другом. Лучше подробно описать, чего вы хотите добиться от плагина.
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 12:24:54
Мне нужно callback "Таблица всех сделок" и "Таблица текущих торгов" с разными инструментами. Что бы когда-они менялись C++ я принимал это. Как это сделать?
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 12:36:10
Документации никакой. Я этой строчной час бился например:
qlua::param par; par = q.getParamEx("SPBFUT", "MMM7", "BID");
без мне брать param.
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 13:15:28
Как например вызвать CreateDataSource и CALLBACK к нему?
Пользователь
Сообщений: Регистрация: 23.09.2015
17.04.2017 15:32:26
Как делать getItem получать цену, так не хочет работать:
auto item_t = q.getItem("all_trades", 0).price;
Пользователь
Сообщений: Регистрация: 23.09.2015
18.04.2017 10:26:14
Написал
auto it = q.getItem<>("all_trades", 0);
выдает такую ошибку:
'qlua::api::getItem': no matching overloaded function found 'item_t qlua::api::getItem(const char *,const int) const': could not deduce template argument for 'item_t'
видимо функция не реализована.
Пользователь
Сообщений: Регистрация: 23.09.2015
18.04.2017 11:01:03
Можно сделать как вот с этим?
par = q.getParamEx("SPBFUT", "MMM7", "BID");
вот так:
auto it = q.getItem("all_trades", 0, "BID");
Пользователь
Сообщений: Регистрация: 19.11.2016
18.04.2017 13:56:07
Цитата
mmonk1980 написал: my_main вызывается и все нормально, а вот OnAllTrade и OnQuote молчит, нечего не приходит! Может QUIK в квик надо поставит и еще что?
Пример по OnAllTrade добавлен сюда
Цитата
mmonk1980 написал: Как например вызвать CreateDataSource и CALLBACK к нему?
'qlua::api::getItem': no matching overloaded function found 'item_t qlua::api::getItem(const char *,const int) const': could not deduce template argument for 'item_t'
видимо функция не реализована.
Все реализовано, у вас неправильный стейтмент с точки зрения С++
Возможно, сделать так можно, но я так никогда не делал, потому что это имеет мало смысла. Вопрос, можно ли так делать, общий для QLUA и не относится к qluacpp, ответ следует искать на форуме Lua в других топиках или задавать отдельно, если он не задан. Если нужны данные, которые впоследствии оказываются в таблице all_trades, их надо получать по OnAllTrades. Если зачем-то нужна информация, как они представлены в этой таблице, например соотносить с привязкой к номеру ряда, то, наверное, можно делать как у вас.
Пользователь
Сообщений: Регистрация: 23.09.2015
18.04.2017 14:16:53
А как правильно? Можете переписать эту строку? (getItem чтобы вoзращала price) auto item_t = q.getItem("all_trades", 0).price;