elelel / qluacpp

C++ interface for Quik trading terminal via lua bindings
48 stars 26 forks source link
algorithmic automation bot exchange quik stock trading

QluaCpp

C++ interface for Quik trading terminal via Lua bindings

Интерфейс для написания на C++ плагинов к торговому терминалу Quik через байндинги Lua

// ... 
#include <qluacpp/qlua>

static struct luaL_reg ls_lib[] = {
  { NULL, NULL }
};

void my_main(lua::state& l) {
  qlua::api q(l);
  std::string name;
  q.getSecurityInfo("TQBR", "SBER",
                    [&name] (const auto& sec_info) {     // C++14 style lambda
                      name = sec_info().name();
                      return 1;  // How many stack items should be cleaned up (poped)
                    });
  std::string text = "qluacpp: Hello, world! Ticker's SBER name is " + name;                  
  q.message(msg.c_str());  
}

LUACPP_STATIC_FUNCTION2(main, my_main)

extern "C" {
  LUALIB_API int luaopen_lualib_hello(lua_State *L) {
    lua::state l(L);

    ::lua::function::main().register_in_lua(l, my_main);

    luaL_openlib(L, "lualib_hello", ls_lib, 0);
    return 0;
  }
}

Преимущества

Requirements / Требования

Usage example / Пример использования

See tutorials for code examples, as well as step by step instruction for creating qluacpp projects.

Примеры содержат пошаговые инструкции и исходные коды небольших плагинов

License / Лицензия

GPL v3.0.

Distribute your source code if you distribute the binaries.

Если распространяете бинарники, прилагайте и исходный код.