Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2947

 
Evgeny Dyuka #:

Я вообще не понимаю зачем все эти навороты с ONNX.

Есть очевидный базовый сценарий как подружить MT5 и МО:
1. из OnInit() запускается питоновский скрипт как отдельный процесс.
2. нужно пара функций обмена инфой между питоном и советником, в режиме когда советник может ждать поступления инфы.
3. делаем папочку Models и кидаем в нее модели TensorFlow

ВСЁ!!! Интеграция MT и МО случилась! Все довольны.

можно проще..цепляем Redis, получаем RedisAI с поддержкой PyTorch, ONNX, TensorFlow, при желании распределяем нагрузку по нодам и облакам

 
Maxim Dmitrievsky #:
Одним костылем меньше, сильно расширится круг используемых моделей (до этого в основном все оптимизировали веса через инпуты терминала). Видимо, на маке тоже должно заработать, скоро проверю :) иногда душе ничего не делать и подождать пока еда сама залетит к тебе в рот

Ну, побыстрее ввязался в это дело чтобы поднять уровень по питону - без него теперь никак) Думаю начать с LightGBM. Для него вроде есть два способа получить ONNX - onnxmltools и skl2onnx.

 
Обратите внимание, что нативное исполнение onnx моделей позволяет легко и очень быстро прогонять их в тестере и клаудной сети без системного оверхеда, что практически исключено при сторонних интеграциях.

Именно при проверке стратегии все эти 'чего такого потерять 50 мс на вызов' увеличат время тестирования в тысячи раз.
 
Evgeny Dyuka #:
Эту легенду про важность скорости я слышу постоянно, но не могу понять в каком месте это важно.
Учитывая спред и комиссии бирж/брокеров, прогнозировать надо на время измеряемое десятками минут или часами. При чем тут разница в 50 миллисекунд?
Как конкретно в реальной жизни вам помогает победа MQ над fxsaber на 5 миллисекунд ?

Вы как хотите, но не откажусь даже от небольшого повышения скорости. Как при тестировании/оптимизации, так и при торговле.

 
Renat Fatkhullin #:
Обратите внимание, что нативное исполнение onnx моделей позволяет легко и очень быстро прогонять их в тестере и клаудной сети без системного оверхеда, что практически исключено при сторонних интеграциях.

Именно при проверке стратегии все эти 'чего такого потерять 50 мс на вызов' увеличат время тестирования в тысячи раз.
Боюсь что оптимизировать в облаке не выйдет. Смысл оптимизации в изменении параметров ТС. Например подбор ТП/СЛ. При их изменении изменяются данные для обучения. Т.е. надо обучать с каждыми вариантами параметров модель, а для этого должно быть установлено ПО МО (Катбуст, нейросеть и т.д.). Вряд ли в облаке у кого-то будет установлено требуемое ПО, нужной версии.

Так что обучение можно делать только в тестере на машине разработчика.
А готовую модель уже нет смысла загонять в облако.

 
Maxim Kuznetsov #:

можно проще..цепляем Redis, получаем RedisAI с поддержкой PyTorch, ONNX, TensorFlow, при желании распределяем нагрузку по нодам и облакам

Наш самолет имеет на борту бассейн, танцевальную площадку, ресторан, уютные зоны отдыха, зимний сад... Уважаемые пассажиры, пристегните ремни, теперь мы попытаемся со всей этой херней взлететь.

 
Forester #:
Боюсь что оптимизировать в облаке не выйдет. Смысл оптимизации в изменении параметров ТС. Например подбор ТП/СЛ. При их изменении изменяются данные для обучения. Т.е. надо обучать с каждыми вариантами параметров модель, а для этого должно быть установлено ПО МО (Катбуст, нейросеть и т.д.). Вряд ли в облаке у кого-то будет установлено требуемое ПО, нужной версии.

Так что обучение можно делать только в тестере на машине разработчика.
А готовую модель уже нет смысла загонять в облако.

Справедливости ради, модель не обязательно является завершённой ТС. Например, модель предсказывает приращение цены, а в параметрах советника задаётся пороговое значение для предсказанного приращения, которое ТС пытается торговать.

 
Aleksey Nikolayev #:

Наш самолет имеет на борту бассейн, танцевальную площадку, ресторан, уютные зоны отдыха, зимний сад... Уважаемые пассажиры, пристегните ремни, теперь мы попытаемся со всей этой херней взлететь.

IMHO это как раз про текущее развитие MQL. Попытка впихнуть внутрь всё и сразу вместо интеграций 

 
Maxim Kuznetsov #:

IMHO это как раз про текущее развитие MQL. Попытка впихнуть внутрь всё и сразу вместо интеграций 

+

 
Maxim Kuznetsov #:

IMHO это как раз про текущее развитие MQL. Попытка впихнуть внутрь всё и сразу вместо интеграций 

Пути для интеграций всегда были открыты:

  • Native DLL
  • .NET DLL
  • HTTP/HTTPS
  • Raw Sockets
  • Files/Pipes
  • SQLite
  • Python library


Но именно нативные интеграции в язык дают возможность писать цельные приложения.

Если говорить про ML, то мы проработали и внедрили:

  • вектора, матрицы и операции с ними как основу для машинного обучения
  • интеграцию с Питоном, включая запуск питоновских программ в терминале в виде обычных скриптов
  • использование нативных ONNX моделей, что открывает огромную дверь в практическую область применения нейромоделей

У нас получается создавать цельные и быстрые решения.

Слова про "попытку впихнуть" указывают лишь на негативный настрой без рационального обоснования. Тем более, что наличие возможностей никак не ограничивает пишущего.