GithubHelp home page GithubHelp logo

elelel / qluacpp Goto Github PK

View Code? Open in Web Editor NEW
48.0 48.0 26.0 203 KB

C++ interface for Quik trading terminal via lua bindings

CMake 0.54% C++ 99.46%
algorithmic automation bot exchange quik stock trading

qluacpp's People

Contributors

elelel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qluacpp's Issues

datetime field at getCandlesByIndex

Добрый день
При обращении к полю datetime в функции getCandlesByIndex кидается исключение

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>)

getCandleByIndex_processing

Ошибка: C3861: 'luaL_getn': identifier not found

Собираю простейший пример через 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! */

Так вроде скомпилировалось, но стоит ли так делать?

Изменение нумерации заявок и сделок в Spectra 6.3

Добрый день.
Прошу Вас внести изменения в библиотеку в связи с переходом Spectra 6.3 с 14-значного на 19-значные номера заявок и сделок. Ссылка на ветку quik форума. Проблему частично описал в issues.

Изменения предположительно касаются:

  1. table orders field order_num
  2. table trades field trade_num
  3. table trades field order_num
  4. table stop_orders field order_num
  5. table stop_orders field co_order_num
  6. table neg_trades field order_num
  7. table trans_reply field order_num
  8. table all_trades field trade_num
  9. table stop_orders field alltrade_num
  10. table neg_trades field trade_num

Пример значения полей callback alltrade, полученные через qluacpp quik
image
при этом аналогичные значения в quik для приведенной выше сделки
image

QUIK 8.3.2.4
Библиотеки (на сколько я понял используется lua5.1 (на lua5.3 quik не перешел))
image

image

std::optional<T> для get<Name>Ex(args...)

Добрый день.
Прошу добавить возвращаемые функциями типы данных через 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

field "class_code" to "code"

Добрый день.

В 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)

callback main

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	Соединение установлено

имена в table.hpp

При сборке проекта получаю ошибку использования имени функции 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

но для чистой библиотеки может стоит изменит имена этих двух функций?

Параметры источника данных в колбэке

Можно ли как-то организовать в с++ подобный код?

   self.ds:SetUpdateCallback(function(...) updcallback(self, class, security, startpos,...) end)

Чтобы в колбэке была возможность получить параметры источника данных.

SearchItems

Добрый день.
Планируете реализовать функцию ?
TABLE SearchItems(STRING table_name, NUMBER start_index, NUMBER end_index, FUNCTION fn [, STRING params])
Разработчики quik утверждают, что скорость получения данных из таблиц быстрее чем getItem(...), но насколько точно выяснить не удается без реализации.
Это особенно актуально для таблиц alltrade (~ 50-80 тыс. значений) and securities (~ 20 тыс. значений)

size_t to int

Добрый день.
При сборке проекта 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

исключение на getQuoteLevel2 при отсутствии данных

Добрый день
Заметил на низко ликвидных инструментах такую особенность: при отсутствии в стакане (или в одной из сторон 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 &)
ob
processing

Возможная ошибка: пустая таблица для ask (see orderbook image)
Проблема: не обрабатывается callback при исключении когда стакан пуст на половину :)

DATETIME field's on ORDER & STOP_ORDER

Добрый день.
При обращении к полям даты и времени:

  1. OnOrders
    1.1 datetime
    1.2 withdraw_datetime
  2. OnStopOrder
    2.1 ordertime
    2.2 order_date_time
    2.3 withdraw_datetime
    2.4 activation_date_time

кидается исключение, аналогичное как здесь и здесь

info.exe, Exception at KernelBase.dll

Добрый день. После обновления QUIK начал получать исключения. Ранее такого поведения не замечал.
Исключение кидется когда работает скрипт через qluacpp и производятся действия с QUIK, например, добавление скрипта через кнопку добавить.
Что скажете, в чем может быть проблема?
При отключенном скрипте исключения не кидаются.

callback OnTransReply

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

Добрый день.
При вызове 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.
image

текущий тип в qluacpp - uint
Общее описание проблемы привел в issues

Как вызвать OnParam callback?

Это работает нормально:

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

Добрый день.
При работе с callback OnTransReply возникли следующие проблемы:

  1. в таблице qlua::table::trans_reply файла standalone.hpp отсутсвуют следующие поля
// 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)                        // Дата и время получения шлюзом ответа на транзакцию
  1. отсутствует возможность представить поле
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>)       // Биржевой номер заявки *
  1. В полях с датой и временем
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<T>

Добрый день.
При вызове функции
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 более не кидаются.

CreateDataSource

При обращении к методу ds_->T(i) где std::unique_ptr<qlua::data_source> ds_ происходит падение клиента, ни каких исключений не выбрасывается. При этом, при обращении к методам ds_->O(i); и др. все работает стабильно.
Счетчик i не доходит до своего верхнего значения в цикле.

cds1 bmp
cds2 bmp

datetime table

При работе с таблицей 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 field

Добрый день.
Предлагаю заменить тип поля limit_kind на int
image
Отрицательные значения реально присутствуют в таблицах money_limits, money_limit_delete, depo_limits, depo_limit_delete если в торговую сессию совершались операции на рынке. При этом, в таблицах quik такие строки не отображаются, но при запросе теблиц, например через getItem(...) такая строка присутствует.

added fields to data structures in QUIK v8

Добрый день.
В 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 но ругается
Пожалуйста помогите решить проблему.
Я, не профессиональный программист - это мое хобби.
С уважением, Александр

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.