elelel / qluacpp Goto Github PK
View Code? Open in Web Editor NEWC++ interface for Quik trading terminal via lua bindings
C++ interface for Quik trading terminal via lua bindings
Огромное спасибо за такую фантастическую библиотеку.
Экономия времени при разработке кода на С++ просто невообразимое.
Спасибо
Собираю простейший пример через Qt creator.
Сначала было много ошибок, потом lua5.3.5 скопировал в директорию contrib - все ошибки исчезли кроме одной
Ошибка: C3861: 'luaL_getn': identifier not found
ЗЫ
Попробовал добавить
#define LUA_COMPAT_5_1
#define LUA_COMPAT_5_2
Не заработало
Попробовал добавить на основе mpx/lua-cjson#54:
#define luaL_getn(L,i) ((int)lua_rawlen(L, i))
#define luaL_setn(L,i,j) ((void)0) /* no op! */
Так вроде скомпилировалось, но стоит ли так делать?
Replace reading structs with fine-grained accessors that read structure fields on demand
Добрый день.
Прошу Вас внести изменения в библиотеку в связи с переходом Spectra 6.3 с 14-значного на 19-значные номера заявок и сделок. Ссылка на ветку quik форума. Проблему частично описал в issues.
Изменения предположительно касаются:
Пример значения полей callback alltrade, полученные через qluacpp quik
при этом аналогичные значения в quik для приведенной выше сделки
QUIK 8.3.2.4
Библиотеки (на сколько я понял используется lua5.1 (на lua5.3 quik не перешел))
Создал несколько data_source с помощью CreateDataSource, для каждого назначил callback функцию с помощью SetUpdateCallback. В результате вызывается только последняя установленная callback функция, в которую приходят данных от всех data_source.
Добрый день.
Прошу добавить возвращаемые функциями типы данных через std::optional
, так как они могут возвращать nil в случае ошибки, например входных параметров (QUIK 8.0.4.4).
Функции возвращают таблицу Lua с параметрами таблицы
q.getMoneyEx(args...) //«Позиции по деньгам»
q.getDepoEx(args...) //«Позиции по инструментам»
q.getFuturesLimit(args...) //«Ограничения по клиентским счетам»
q.getFuturesHolding(args...) //«Позиции по клиентским счетам»
В текущей версии библиотеки QLUACPP
выдается Exception at 0x7ffe90d3a388, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at qluacpp\contrib\luacpp\src\entity.hpp:63
Доброго для, elelel.
Пробую разобраться как начать использовать Ваш проект, есть проблемы на этапе запуска примеров.
Пример draw_candles_rt - интеллисенс студии подчеркивает строку 53 в draw_candles_rt.cpp
LUACPP_STATIC_FUNCTION3(OnStop, OnStop, int) с предупреждением "Использование имени типа не допускается". Проект собирается, но запущенный в квике скрипт соответственно падает с воплем "Невозможно найти точку входа в процедуру... "
Где я накосячил, помогите разобраться, пожалуйста.
Собираю проект в VS2017, CMake там интегрирован, базовый пример запускается и работает нормально.
Собственно ругается компилятор на все макросы LUACPP_STATIC_FUNCTIONX, кроме LUACPP_STATIC_FUNCTION2
Добрый день.
В QUIK 8.0.4.4 изменилось поле таблицы Классы
// classes "Классы"
namespace qlua {
namespace table {
LUACPP_STATIC_TABLE_BEGIN(classes)
LUACPP_TABLE_FIELD(firmid, std::string) // Идентификатор фирмы
LUACPP_TABLE_FIELD(name, std::string) // Название класса
LUACPP_TABLE_FIELD(code, std::string) // Код класса class_code change field "class_code" to "code"
LUACPP_TABLE_FIELD(npars, unsigned int) // Количество параметров в классе
LUACPP_TABLE_FIELD(nsecs, unsigned int) // Количество бумаг в классе
LUACPP_STATIC_TABLE_END()
}
}
LUACPP_STATIC_TABLE_TYPE_POLICY(::qlua::table::classes)
12/12/2017 в 18-45 в процессе работы функция main выдала исключение с ошибкой. До этого работала стабильно. В чем может быть причина?
err: callback_main _ Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
Лог сообщений:
Номер Тип Дата Время Сообщение
1.000000 1.000000 12/12/2017 6:38:38 PM Соединение установлено
2.000000 3.000000 12/12/2017 6:38:40 PM err: callback_OnQuote _
3.000000 3.000000 12/12/2017 6:40:44 PM Net error: An existing connection was forcibly closed by the remote host.
4.000000 3.000000 12/12/2017 6:40:51 PM Application error: Connection was closed by peer: Сервер по указанным сетевому адресу и порту не обнаружен. Возможно, Вы пытаетесь установить соединение в нерабочее время, или же указываете неверные сетевой адрес и порт.
5.000000 1.000000 12/12/2017 6:40:56 PM Соединение установлено
6.000000 3.000000 12/12/2017 6:40:58 PM err: callback_OnQuote _
7.000000 3.000000 12/12/2017 6:43:40 PM err: callback_main _ Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
8.000000 3.000000 12/12/2017 6:43:40 PM LuaVM closed with error
9.000000 2.000000 12/12/2017 6:43:55 PM При создании диаграммы "FEES-12.16 Графики цены и объема" не удалось создать график "FEES-12.16 [Price]" для инструмента "FSZ6[SPBFUT]", так как данный инструмент отсутствует в справочнике инструментов
10.000000 2.000000 12/12/2017 6:43:55 PM При создании диаграммы "FEES-12.16 Графики цены и объема" не удалось создать график "FEES-12.16 [Volume]" для инструмента "FSZ6[SPBFUT]", так как данный инструмент отсутствует в справочнике инструментов
11.000000 1.000000 12/12/2017 6:44:01 PM Соединение установлено
При сборке проекта получаю ошибку использования имени функции CreateWindow
и RGB
. В закрытых issues нашел предложенное решение . Убрал из проекта все файлы #include <window.h>
- не помогло. Ест предложение изменить имена функций в библиотеке qluacpp, чтобы они не совпадали с именами в макросе.
contrib/qluacpp/src/qlua/api/table.hpp:33:30: error: expected ';' at end of member declaration
CreateWindow,
^
F:/Imp/Plug-ins DLL/Qt_project/qluacpp_tutorial/contrib/qluacpp/src/qlua/api/macros.h:12:15: note: in definition of macro 'QLUACPP_DETAIL_API_FUNCTION4'
RETURN_TYPE NAME(ARG1_TYPE ARG1) const { \
^
F:/Imp/Plug-ins DLL/Qt_project/qluacpp_tutorial/contrib/qluacpp/src/qlua/api/macros.h:12:42: error: expected unqualified-id before '{' token
RETURN_TYPE NAME(ARG1_TYPE ARG1) const { \
Работае так
#undef CreateWindow
#undef RGB
но для чистой библиотеки может стоит изменит имена этих двух функций?
Не находит QLUACPP_LUA_LIBRARY, я интерфейса это делаю.
set(QLUACPP_LUA_LIBRARY, "c:\Program Files (x86)\Lua\5.1\lib")
все рано не нашел.
Раньше был find_package, и все находились.
И кстати почему библиотека написана C++ 11, он же тормозной? Если C++ лучше C то будет 2 раза быстрей, а здесь это надо.
Можно ли как-то организовать в с++ подобный код?
self.ds:SetUpdateCallback(function(...) updcallback(self, class, security, startpos,...) end)
Чтобы в колбэке была возможность получить параметры источника данных.
Добрый день.
Планируете реализовать функцию ?
TABLE SearchItems(STRING table_name, NUMBER start_index, NUMBER end_index, FUNCTION fn [, STRING params])
Разработчики quik утверждают, что скорость получения данных из таблиц быстрее чем getItem(...), но насколько точно выяснить не удается без реализации.
Это особенно актуально для таблиц alltrade (~ 50-80 тыс. значений) and securities (~ 20 тыс. значений)
Добрый день.
При сборке проекта basic_tutorial кидаются предупреждения
contrib\qluacpp\src\qlua\structs/level2_quotes.hpp(24): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
contrib\qluacpp\src\qlua\structs/level2_quotes.hpp(31): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
contrib\qluacpp\src\qlua\structs/level2_quotes.hpp(39): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
contrib\qluacpp\src\qlua\structs/level2_quotes.hpp(60): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
Добрый день
Заметил на низко ликвидных инструментах такую особенность: при отсутствии в стакане (или в одной из сторон ask или bid) ордеров кидается исключение
2021-10-08 13:29:23.338968 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:29:50.276093 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:31:25.780286 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:36:02.577439 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:36:10.934512 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:38:52.128043 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:42:37.427693 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:42:58.664285 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:46:27.919130 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:46:34.381135 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:48:00.128615 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:50:36.407471 runtime_error level2_quote get record table failed: not a table @ EURRUB_TMS @ CETS_SU void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)2021-10-08 13:59:51.019207 runtime_error level2_quote get record table failed: not a table @ RNU4 @ SPBFUT void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
2021-10-08 13:59:51.883387 runtime_error level2_quote get record table failed: not a table @ RIU3 @ SPBFUT void __cdecl quik::QLua::getQuote(class quote::Level_2 &,const class QString &,const class QString &)
Возможная ошибка: пустая таблица для ask (see orderbook image)
Проблема: не обрабатывается callback при исключении когда стакан пуст на половину :)
Это полностью рабочая библиотека. Она даже тупо не компилируется.
Добрый день. После обновления QUIK начал получать исключения. Ранее такого поведения не замечал.
Исключение кидется когда работает скрипт через qluacpp и производятся действия с QUIK, например, добавление скрипта через кнопку добавить.
Что скажете, в чем может быть проблема?
При отключенном скрипте исключения не кидаются.
err: callback_OnTransReply _ Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
Добрый день.
При вызове callback OnTrade кидается исключение
Exception at 0x7ff82b7ca388, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at ...\contrib\qluacpp\contrib\luacpp\src\entity.hpp:63
EXCEPTION: Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
Предположение: в связи с переходом на 19-значное число ордеров и заявок quik.
текущий тип в qluacpp - uint
Общее описание проблемы привел в issues
Это работает нормально:
q.set_callbackqlua::callback::OnQuote(OnQuote);
а это нет:
q.set_callbackqlua::callback::OnParam(OnParam);
void OnParam(lua::state& l, const char* class_code, const char* sec_code) {
qlua::extended_api q(l);
int a = 5;
}
Вы хотели переписать библиотеку, прошел месяц - оно переписано или нет? Например cтарая библиотека вызывает ошибку:
qlua::instrument ins;
ins = q.getSecurityInfo("SPBFUT", "RIM7");
в этой все нормально?
Добрый день.
При работе с callback OnTransReply возникли следующие проблемы:
// add from QLUA.chm QUIK v7.19.0.51
LUACPP_TABLE_FIELD(error_code, int) // Числовой код ошибки. Значение равно «0», если транзакция выполнена успешно
LUACPP_TABLE_FIELD(error_source, unsigned int) // Источник сообщения. Возможные значения: «1» – Торговая система; «2» – Сервер QUIK; «3» – Библиотека расчёта лимитов; «4» – Шлюз торговой системы
LUACPP_TABLE_FIELD(first_ordernum, double) // Номер первой заявки, которая выставлялась при автоматической замене кода клиента. Используется, если на сервере QUIK настроена замена кода клиента для кросс-сделки
LUACPP_TABLE_FIELD(gate_reply_time, ::qlua::table::datetime) // Дата и время получения шлюзом ответа на транзакцию
LUACPP_TABLE_FIELD(price, double ) // Цена *
через optional. Все возможные nil поля просьба заменить через optional
LUACPP_TABLE_FIELD(order_num, std::optional<unsigned int>) // Номер заявки *
LUACPP_TABLE_FIELD(price, double ) // Цена * - error type policy
LUACPP_TABLE_FIELD(quantity, std::optional<unsigned int>) // Количество *
LUACPP_TABLE_FIELD(balance, std::optional<unsigned int>) // Остаток *
LUACPP_TABLE_FIELD(firm_id, std::optional<std::string>) // Идентификатор фирмы *
LUACPP_TABLE_FIELD(account, std::optional<std::string>) // Торговый счет *
LUACPP_TABLE_FIELD(client_code, std::optional<std::string>) // Код клиента *
LUACPP_TABLE_FIELD(brokerref, std::optional<std::string>) // Поручение *
LUACPP_TABLE_FIELD(class_code, std::optional<std::string>) // Код класса *
LUACPP_TABLE_FIELD(sec_code, std::optional<std::string>) // Код бумаги *
LUACPP_TABLE_FIELD(exchange_code, std::optional<std::string>) // Биржевой номер заявки *
LUACPP_TABLE_FIELD(date_time, ::qlua::table::datetime) // Дата и время
LUACPP_TABLE_FIELD(gate_reply_time, ::qlua::table::datetime) // Дата и время получения шлюзом ответа на транзакцию
не возможно достучаться до значений.
При этом, если в callback написать так
::qlua::table::datetime date_time = trans_reply().date_time();
::qlua::table::datetime gate_reply_time= trans_reply().gate_reply_time();
quik не падает. Однако если попробовать обратиться к значениям
int year = trans_reply().date_time().year();
quik падает и try catch не помогает выявить ошибку.
Пробовал даже так на случай если там nil
std::optional<qlua::table::datetime> date_time= trans_reply().date_time();
Возможно необходимо сделать со временем как в callback OnAllTrade.
Добрый день.
При вызове функции
getItem<qlua::table::trade_accounts>
кидается исключение
Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
. Число строк в таблице trade_accounts
определяется верно.
При этом, ранее указанные issues qlua::table::orders и qlua::table::trades более не кидаются.
тут пишет ошибку:
auto item_t = q.getItem("all_trades", 0).price;
При работе с таблицей datetime
LUACPP_TABLE_FIELD(datetime, ::qlua::table::datetime) // Дата и время
из callback OnAllTrade
происходит падение терминала.
err: Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
Здравствуйте. Не подскажете как можно запустить несколько экземпляров. После запуска второго экземпляра - первый (в лучшем случае) перестает получать данные. Из форума понятно - что это не так просто запустить два экземпляра. Что нужно переименовать.
Я переименовывал LUALIB_API int luaopen_gf_quik_robot1(lua_State * L), и
luaL_openlib(L, "gf_quik_robot1", ls_lib, 0);.
И разносил по разным папкам - ничего не помогает.
Спасибо.
Добрый день.
Предлагаю заменить тип поля limit_kind на int
Отрицательные значения реально присутствуют в таблицах money_limits, money_limit_delete, depo_limits, depo_limit_delete если в торговую сессию совершались операции на рынке. При этом, в таблицах quik такие строки не отображаются, но при запросе теблиц, например через getItem(...) такая строка присутствует.
Просто библиотека месяц не исправлялась.
Добрый день.
В QUIK v8 были добавлены следующие поля:
Object name in qluacpp: "qlua::table::all_trades"
exec_market STRING Площадка исполнения
Object name in qluacpp: "qlua::table::money_limits"
/*
* wa_position_price NUMBER Средневзвешенная цена приобретения позиции
* orders_collateral NUMBER Гарантийное обеспечение заявок
* positions_collateral NUMBER Гарантийное обеспечение позиций
* */
Object name in qluacpp: "qlua::table::neg_deals"
/*
* lseccode STRING Приоритетное обеспечение
* canceled_uid NUMBER UID снявшего заявку
* system_ref STRING Системная ссылка
* price_currency STRING Валюта, в которой указана цена заявки
* order_exchange_code STRING Биржевой номер заявки
* extref STRING Внешняя ссылка, используется для обратной связи с внешними системами
* period NUMBER Период торговой сессии, в которую была подана заявка
* client_qualifier NUMBER Квалификатор клиента, от имени которого выставлена заявка. Возможные значения: «0» – не определено; «1» – Natural Person; «3» – Legal Entity
* client_short_code NUMBER Краткий идентификатор клиента, от имени которого выставлена заявка
* investment_decision_maker_qualifier NUMBER Квалификатор принявшего решение о выставлении заявки. Возможные значения: «0» – не определено;«1» – Natural Person; «3» – Algorithm
* investment_decision_maker_short_code NUMBER Краткий идентификатор принявшего решение о выставлении заявки
* executing_trader_qualifier NUMBER Квалификатор трейдера, исполнившего заявку. Возможные значения: «0» – не определено; «1» – Natural Person; «3» – Algorithm
* executing_trader_short_code NUMBER Краткий идентификатор трейдера, исполнившего заявку
* */
Object name in qluacpp: "qlua::table::neg_trades"
/*
* extref STRING Внешняя ссылка, используется для обратной связи с внешними системами
* */
Object name in qluacpp: "qlua::table::orders"
/*
* awg_price NUMBER Средняя цена приобретения. Актуально, когда заявка выполнилась частями
* expiry_time NUMBER Время окончания срока действия заявки в формате <ЧЧММСС DESIGNTIMESP=19552>. Для GTT-заявок, используется вместе со сроком истечения заявки (Expiry)
* revision_number NUMBER Номер ревизии заявки. Используется, если заявка была заменена с сохранением номера
* price_currency STRING Валюта цены заявки
* ext_order_status NUMBER Расширенный статус заявки. Возможные значения:
«0» (по умолчанию) – не определено;
«1» – заявка активна;
«2» – заявка частично исполнена;
«3» – заявка исполнена;
«4» – заявка отменена;
«5» – заявка заменена;
«6» – заявка в состоянии отмены;
«7» – заявка отвергнута;
«8» – приостановлено исполнение заявки;
«9» – заявка в состоянии регистрации;
«10» – заявка снята по времени действия;
«11» – заявка в состоянии замены
* accepted_uid NUMBER UID пользователя-менеджера, подтвердившего заявку при работе в режиме с подтверждениями
* accepted_uid NUMBER UID пользователя-менеджера, подтвердившего заявку при работе в режиме с подтверждениями
* filled_value NUMBER Исполненный объем заявки в валюте цены для частично или полностью исполненных заявок
* extref STRING Внешняя ссылка, используется для обратной связи с внешними системами
* settle_currency STRING Валюта расчетов по заявке
* on_behalf_of_uid NUMBER UID пользователя, от имени которого выставлена заявка
* client_qualifier NUMBER Квалификатор клиента, от имени которого выставлена заявка. Возможные значения:
«0» – не определено;
«1» – Natural Person;
«3» – Legal Entity
* client_short_code NUMBER Краткий идентификатор клиента, от имени которого выставлена заявка
* investment_decision_maker_qualifier NUMBER Квалификатор принявшего решение о выставлении заявки. Возможные значения:
«0» – не определено;
«1» – Natural Person;
«2» – Algorithm
* investment_decision_maker_short_code NUMBER Краткий идентификатор принявшего решение о выставлении заявки
* executing_trader_qualifier NUMBER Квалификатор трейдера, исполнившего заявку. Возможные значения:
«0» – не определено;
«1» – Natural Person;
«2» – Algorithm
* executing_trader_short_code NUMBER Краткий идентификатор трейдера, исполнившего заявку
* */
Object name in qluacpp: "qlua::table::???" PORTFOLIO_INFO_EX
/*
* rcv1 STRING Норматив покрытия риска 1. Рассчитывается как разница параметров «Стоимость портфеля» и «Начальная маржа». Для клиентов типа «МД» и «МД+» НПР1
* rcv2 STRING Норматив покрытия риска 2. Рассчитывается как разница параметров «Стоимость портфеля» и «Минимальная маржа». Для клиентов типа «МД» и «МД+» НПР2
* */
Object name in qluacpp: "qlua::table::securities"
/*
* bsid STRING Bloomberg ID
* cusip_code STRING CUSIP
* stock_code STRING StockCode
* couponvalue NUMBER Размер купона
* sell_leg_classcode STRING Код класса инструмента ноги на продажу
* sell_leg_seccode STRING Код инструмента ноги на продажу
* first_currcode STRING Код котируемой валюты в паре
* second_currcode STRING Код базовой валюты в паре
* buy_leg_classcode STRING Код класса инструмента ноги на покупку
* buy_leg_seccode STRING Код инструмента ноги на покупку
* base_active_classcode STRING Код класса базового актива
* base_active_seccode STRING Базовый актив
* buy_mat_date NUMBER Дата расчетов сделки на покупку
* sell_mat_date NUMBER Дата расчетов сделки на продажу
* option_strike NUMBER Страйк опциона
* qty_multiplier NUMBER Кратность при вводе количества
* step_price_currency STRING Валюта шага цены
* sedol_code STRING SEDOL
* cfi_code STRING CFI
* ric_code STRING RIC
* buybackdate NUMBER Дата оферты
* buybackprice NUMBER Цена оферты
* list_level NUMBER Уровень листинга
* qty_scale NUMBER Точность количества
* yieldatprevwaprice NUMBER Доходность по предыдущей оценке
* regnumber STRING Регистрационный номер
* trade_currency STRING Валюта торгов
* second_curr_qty_scale NUMBER Точность количества котируемой валюты
* first_curr_qty_scale NUMBER Точность количества базовой валюты
* accruedint NUMBER Накопленный купонный доход
* stock_name STRING Код деривативного контракта в формате QUIK
* nextcoupon NUMBER Дата выплаты купона
* couponperiod NUMBER Длительность купона
* */
Object name in qluacpp: "qlua::table::stop_orders"
/*
* activation_date_time TABLE Дата и время активации стоп-заявки
* */
Object name in qluacpp: "qlua::table::trades"
/*
* lseccode STRING Приоритетное обеспечение
* order_revision_number NUMBER Номер ревизии заявки, по которой была совершена сделка
* order_qty NUMBER Количество в заявке на момент совершения сделки, в лотах
* order_price NUMBER Цена в заявке на момент совершения сделки
* order_exchange_code STRING Биржевой номер заявки
* exec_market STRING Площадка исполнения
* liquidity_indicator NUMBER Индикатор ликвидности. Возможные значения:
«0» – не определено;
«1» – по заявке мейкера;
«2» – по заявке тейкера;
«3» – вывод ликвидности;
«4» – по заявке в период аукциона
* extref STRING Внешняя ссылка, используется для обратной связи с внешними системами
* ext_trade_flags NUMBER Расширенные флаги, полученные от шлюза напрямую, без вмешательства сервера QUIK. Поле не заполняется
* on_behalf_of_uid NUMBER UID пользователя, от имени которого совершена сделка
* client_qualifier NUMBER Квалификатор клиента, от имени которого совершена сделка. Возможные значения:
«0» – не определено;
«1» – Natural Person;
«3» – Legal Entity
* client_short_code NUMBER Краткий идентификатор клиента, от имени которого совершена сделка
* investment_decision_maker_qualifier NUMBER Квалификатор принявшего решение о совершении сделки. Возможные значения:
«0» – не определено;
«1» – Natural Person;
«3» – Algorithm
* investment_decision_maker_short_code NUMBER Краткий идентификатор принявшего решение о совершении сделки
* executing_trader_qualifier NUMBER Квалификатор трейдера, исполнившего заявку, по которой совершена сделка.Возможные значения:
«0» – не определено;
«1» – Natural Person;
«3» – Algorithm
* executing_trader_short_code NUMBER Краткий идентификатор трейдера, исполнившего заявку, по которой совершена сделка
* waiver_flag NUMBER Признак того, что транзакция совершена по правилам пре-трейда. Возможные значения битовых флагов:
бит 0 (0x1) – RFPT;
бит 1 (0x2) – NLIQ;
бит 2 (0x4) – OILQ;
бит 3 (0x8) – PRC;
бит 4 (0x10)– SIZE;
бит 5 (0x20) – ILQD
* mleg_base_sid NUMBER Идентификатор базового инструмента на сервере для multileg-инструментов
* side_qualifier NUMBER Квалификатор операции. Возможные значения:
«0» – не определено;
«1» – Buy;
«2» – Sell;
«3» – Sell short;
«4» – Sell short exempt;
«5» – Sell undiclosed
* otc_post_trade_indicator NUMBER OTC post-trade индикатор. Возможные значения битовых флагов:
бит 0 (0x1) – Benchmark;
бит 1 (0x2) – Agency cross;
бит 2 (0x4) – Large in scale;
бит 3 (0x8) – Illiquid instrument;
бит 4 (0x10) – Above specified size;
бит 5 (0x20) – Cancellations;
бит 6 (0x40) – Amendments;
бит 7 (0x80) – Special dividend;
бит 8 (0x100) – Price improvement;
бит 9 (0x200) – Duplicative;
бит 10 (0x400) – Not contributing to the price discovery process;
бит 11 (0x800) – Package;
бит 12 (0x1000) – Exchange for Physical
* capacity NUMBER Роль в исполнении заявки. Возможные значения:
«0» – не определено;
«1» – Agent;
«2» – Principal;
«3» – Riskless principal;
«4» – CFG give up;
«5» – Cross as agent;
«6» – Matched principal;
«7» – Proprietary;
«8» – Individual;
«9» – Agent for other member;
«10» – Mixed;
«11» – Market maker
* cross_rate NUMBER Кросс-курс валюты цены сделки к валюте расчетов по сделке
* */
Object name in qluacpp: "qlua::table::trade_accounts"
/*
* exec_market STRING Идентификатор биржевой площадки
* */
Добрый день.
Вижу проделана огромная работа, "снимаю шляпу перед Вами".
К сожалению не удается запустить((
выдает ошибку
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include\optional(15): fatal error C1189: #error: class template optional is only available with C++17.
ninja: build stopped: subcommand failed.
К сожалению, я не знаком с cmake и nmake (((
Запускаю прямо из среды VS2017 но ругается
Пожалуйста помогите решить проблему.
Я, не профессиональный программист - это мое хобби.
С уважением, Александр
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.