Блог им. 3Qu

Использование Машинного Обучения в торговых системах. Реализация.

    • 18 января 2021, 22:58
    • |
    • 3Qu
  • Еще
В топике Использование Машинного Обучения в торговых системах. Простейшее применение описаны принципы построение логики ТС с применением Машинного Обучения (МО). Вкратце опишем пути реализации.
Это уже посложней — нам понадобятся знания  Lua, С++ и Python.
Я предпочитаю ничего не делать сам, особенно, если для написания программы требуется изучение и реализация сложных алгоритмов. Зачем это делать, если можно использовать уже готовое. В современном программировании это один из основных принципов объектно-ориентированного программирования — берешь готовый объект и используешь. Если есть уже готовые библиотеки с нужными программами, то их и используем — сокращает время реализации, не надо беспокоиться об отладке, и много других плюсов. Извините, ленив и нелюбопытен — есть масса других интересных вещей, на которые можно потратить свое время.
Для начала пишем на C++ простенькую DLL для связи с Lua — шаблон проекта такой DLL вы можете найти в моих топиках. Нужный Вам код вам придется писать самим.
Далее, подключаем нашу DLL (скажем, LogicDLL.dll) к программе Lua с помощью require(«LogicDLL»).  В функции Lua OnInit() запускаем Python и, если нужно, его функцию DLL загружающую в Python вашу Python программу и данные, необходимые для ее работы — всяческие константы, матрицы МО, необходимые для работы ваших методов и прочее.
Теперь нам осталось только периодически вызывать из Lua функцию С++, которая, в свою очередь, будет вызывать и передавать в метод МО Python необходимые для МО данные и возвращать в Lua результат вычислений.
Немного о Python. Активация и вызов функций Python осуществлятся из С/С++ через Python C-API. Все это расписано в документации Python - Справочное руководство по Python / C API и Расширение и встраивание интерпретатора Python в котором приводятся конкретные примеры использования Python в программах С/С++.
Да, немного сложновато, но, если вы знакомы с С/С++, на  освоение этого уйдет несколько дней, но взамен вы получите доступ ко многим библиотекам Python (и не только МО, но и многим другим, реализация которых в Lua или С++ нам и не снилась.).
Теперь, чтобы было чуть понятней, немного о том, как я делаю стратегии и ТС.
Вначале я пишу стратегию на Python и отлаживаю ее на исторических данных. В Python очень удобно и быстро строить и перестраивать графики, гистограммы, таблицы, проводить анализ данных — в общем, любой каприз за ваши деньги.
После полной отладки стратегии, если в этом есть смысл, стратегия переводится на рабочий язык ТС. В случае с Quik мы имеем рабочие языки Lua и DLL написанную на C++. В моем случае, основной код стратегии расположен в DLL, Lua в основном предназначена для трансляции данных терминала в DLL и выполнения запросов из DLL к функциям Lua программы.
В ходе переноса стратегии на язык ТС, то, что несложно реализовать на Lua или С++ переписывается на рабочие языки ТС, а то что сделать сложно остается в Python и вызывается из него функциями DLL.
Многие воротят нос от Python, говоря о его низком быстродействии. Этого я вообще не понимаю. Если вы успеваете в Quik щелкать мышкой купи/продай, то Python это тем более успеет. Кроме того, Python, в нашем случае, используется как язык сценариев и его доля времени в исполнении программы очень невелика — основную долю времени занимает обработка данных библиотеками Python, а они очень быстрые и, как правило,  представляют собой скомпилированные С++ программы.
2.4К | ★6
4 комментария
Вы какой с++ компилятор используете и в какой среде ?
У меня C++ 17 в Visual Studio не взлетел.
avatar
_sg_, VS 2017, выборочная установка. VS 2019 не пошла — сама оч медленно грузится.
VS 2015 удалил за ненадобностью, 2017 проекты 2015 открывает и автоматом сама под себя перестраивает.
На компе Win 10 Pro.
avatar
VS 2019 (как и предыдущие версии) имеет настройки, позволяющие отключить ненужное на этапе загрузки.
avatar

Снова общие слова, и ни строки кода.

Пример статьи здорового человека:

smart-lab.ru/blog/624695.php


И нафига так усложнять?

github.com/bastibe/lunatic-python

avatar

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят выходные дни. В...
Фото
Число инвесторов RENI достигло 107 тысяч человек по итогам 2025 года
Получили свежий отчет Московской Биржи. Количество наших инвесторов в течение 2025 года выросло на 45 тысяч человек до 107 тысяч, +73% с декабря...
Фото
📈 Почему важно инвестировать в компании с понятной логикой роста
Инвестору важно не просто видеть рост цифр, а понимать, откуда он берётся. Когда динамика объяснима, к ней проще относиться спокойно — без...
Фото
Обзор данных Росстата по выработке электроэнергии в РФ в ноябре 2025г. и по потреблению энергии в декабре 2025г.
Росстат представил данные по выработке электроэнергии в РФ в ноябре 2025г.: 👉выработка электроэнергии в РФ — 104,59 млрд кВт*ч. ( -2,69%...

теги блога 3Qu

....все тэги



UPDONW
Новый дизайн