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

 
Renat Fatkhullin #:

Время покажет, сколько будем поддерживать.

Как только доля Windows 7 снизится до 2%, будем думать об отказе. Старые билды все равно будут работать по аналогии, как мы поддерживаем и раздаем старые 32 битные терминалы.

Сейчас мы поддерживаем:

  1. старые 32 битные терминалы в инсталлерах, маркет для них закрыт
  2. 64 битные версии терминалов без AVX, оптимизация кода ограничена, маркет работает, ONNX поддерживается
  3. 64 битные с AVX, полная оптимизация, основная ветка со всеми возможностями
Планов очень много, впереди кардинальная переделка интерфейса терминала и усиление MQL5.
В 32битных ещё и синтаксис яп отличается от последних билдов. Править приходится)
 
Renat Fatkhullin #:

Для терминала больше не нужны сторонние библиотеки ONNX Runtime.

Теперь onnx модели можно гонять на любой платформе, где запускается терминал и тестер. Будет доступно в ближайшей бете.

Пару статей на эту тему не помешали бы. Если это окончательный вариант. 

Все равно спасибо за работу в этом направлении.

Удачи

 
Aleksey Nikolayev #:

Очень хорошо. А какие версии и опсеты ONNX будут поддерживаться?

Все, которые появляются в открытом проекте ONNX Runtime.

 
Renat Fatkhullin #:

Все, которые появляются в открытом проекте ONNX Runtime.

onnx.defs.onnx_opset_version() пишет, что opset=17. Про версию в журнале МТ пишется 1.14.0, хотя вроде бы последняя версия ONNX 1.13.1

 
Aleksey Nikolayev #:

onnx.defs.onnx_opset_version() пишет, что opset=17. Про версию в журнале МТ пишется 1.14.0, хотя вроде бы последняя версия ONNX 1.13.1

А не, всё правильно. Это ONNX последняя версия 1.13.1, а ONNX Runtime последняя версия 1.14.1

 
Renat Fatkhullin #:

Набор функций по доступу к чартам/тикам/торговым позициям/истории сделок указан выше. Этого достаточно для прямой работы питоновских скриптов.

Возможно, мы добавим доступ к индикаторам.

Передача индикаторов - не универсальный способ, хотя и достаточен, наверное, большинству трейдеров. Например, мне интереснее передавать данные не на каждом баре, а в моменты пробития уровней. Кому-то интересно ещё что-нибудь другое и тд.

Вряд ли можно сделать какой-то идеальный способ обмена, который устроит всех, поэтому костыльные методы на этапе разработки неизбежны. Главное - избежать костыльных методов на этапе запуска в тестере или на VPS.

 

Протестировал проект ONNX.Price.Prediction в новой версии МТ5 b3601. Вроде всё работает - обучение и вывод в питоне, вывод в МТ5 (dll для onnx удалил из корня и перезапустил терминал).

Можно ждать релиз и начинать попытки со своими модельками)

 
Aleksey Nikolayev #:

Передача индикаторов - не универсальный способ, хотя и достаточен, наверное, большинству трейдеров. Например, мне интереснее передавать данные не на каждом баре, а в моменты пробития уровней. Кому-то интересно ещё что-нибудь другое и тд.

Вряд ли можно сделать какой-то идеальный способ обмена, который устроит всех, поэтому костыльные методы на этапе разработки неизбежны. Главное - избежать костыльных методов на этапе запуска в тестере или на VPS.

Вопрос передачи индикаторов и произвольных данных (например строки) в питон затрагивает бизнес интересы MetaQuotes.

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

МТ поставляет котировки и при этом очень быстрый и надежный - отличный элемент для встраивания в торговую систему. Разрешить передавать в питон строку - значит закрепить эту роль терминала.

Например, крипта прошла мимо MT потому что брокер в крипте лишний и не нужный элемент, но это не отменяет использование терминала для написания и использования советников.

Говоря проще: пишешь советник => запускаешь на BTCUSD => через скрипт на питоне торгуешь на Binance => спасибо МетаТрейдеру что он есть.

 

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

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

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

 
Evgeny Dyuka #:

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

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

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

Такая интеграция есть с R. Только непонятно, зачем R нужен на VPS и зачем нужны проблемы по поддержке его связки с МТ (контроль версий языка и пакетов и тд). С питоном будет всё то же самое.

Есть ещё момент связанный со скоростью, который очень важен в нашем деле. Посмотрите, как fxsaber выцарапывает миллисекунды в постоянной борьбе с метаквотами, поскольку они превращаются в пункты прибыли. Очевидно связка чего угодно с чем угодно будет работать медленнее, чем обе программы по одиночке.

Казалось бы, что может быть очевиднее...

Причина обращения: