Karim
Karim личный блог
28 марта 2017, 13:30

Quik. Экспорт свечей в dll на С++.




Как создавать и подключать внешнюю dll на С++ к скриптам в Quik показано здесь http://smart-lab.ru/blog/387954.php.

Следующий важный шаг — это передача данных из Quik в библиотеку. В видео показано, как передавать данные свечей. Есть несколько вариантов.

1. С помощью функции CreateDataSource(ClassCode, SecCode, INTERVAL_M1)  подписаться на источник данных, зарегистрировать свой калбэк, и при возникновении события уже обрабатывать нужные данные.

2. Использовать функцию OnAllTrade(table), которая вызывается при каждой сделке. Получать эти данные и самостоятельно нарезать свечи по нужному таймфрейму.

3.  С помощью функции getCandlesByIndex (ind, 0, n — quantity, quantity)  забрать нужное количество свечей с графика.

В видео рассматривается третий вариант, как самый простой с точки зрения реализации.

Аналогичным образом можно передавать и данные таблиц заявок, стоп-заявок, сделок и т.д. А дальше остается только обработать эти данные по заданному алгоритму и отдать команду в Quik (есть тоже 3 способа). И робот готов.

Архив проекта: yadi.sk/d/nllkzMHV3GQqPg

12 Комментариев
  • Сергей Кошелев
    28 марта 2017, 16:05
    «Таблица всех сделок» как ввести в файл. Может сделаете урок?
  • Сергей Кошелев
    28 марта 2017, 16:08
    «Таблица текущий торгов» какое значение сейчас RTS или Si.
  • Сергей Кошелев
    28 марта 2017, 17:51
    Надо на С++, а не Lua. Я как понял на OnAllTrade как на C++ вызвать?
  • Сергей Кошелев
    28 марта 2017, 17:56
    https://github.com/elelel/qluacpp есть либа которая это все делает. Но там нету .sln проекта.
  • Сергей Кошелев
    28 марта 2017, 18:13

    Здесь есть только он не под Visual Studio не компилится. Может сделаете .sln проект из этой либы?

    void OnAllTrade(lua::state& l, const qlua::alltrade& data) {
    // Create extended QluaCpp API object.
    qlua::extended_api q(l);
    // Call message Quik LUA function
    q.message(std::string(«OnAllTrade: „) + data.sec_code + std::to_string(data.price));
    }

  • Сергей Кошелев
    28 марта 2017, 18:28
    Вы написали на Lua, а надо C++. А так писать можно и без C++ вообще.
  • Сергей Кошелев
    28 марта 2017, 18:28
     Lua тормоз.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн