Не получается вывод в МТ5 из ONNX-модели, обученной в LightGBM. Ошибки 5808 и 5805 при установке формы параметров. Но проблема вроде уже с определением размерностей параметров - получаются отрицательные значения (выделено в коде). Может просто чего-нибудь напутал. В питоне 3.10 всё вроде нормально.
Похоже, переходить на питон рановато. Лучше освоить CLI версию LightGBM и сохранять модели в формате if-else на C. Неуниверсально, зато дёшево и сердито)
Вспомнилось обсуждение цикличных признаков, вроде времени суток. ИМХО, надо переводить их в обычные, просто подбирая точку для начала отсчёта, в которой происходит наиболее сильная смена возможной закономерности. Можно пользоваться либо соображениями о рынке (расписание сессии, в данном случае), либо чем-то вроде этого, либо обучать древесную модель и брать точку первого сплита по этому признаку.
Любой скальпер знает, что круглосуточная торговля - глупость. Есть интервалы, где достигается высокая и стабильная прибыльность, поэтому различными способами находят эти интервалы. Например, при
Aleksey Nikolayev #: Вспомнилось обсуждение цикличных признаков, вроде времени суток. ИМХО, надо переводить их в обычные, просто подбирая точку для начала отсчёта, в которой происходит наиболее сильная смена возможной закономерности. Можно пользоваться либо соображениями о рынке (расписание сессии, в данном случае), либо чем-то вроде этого, либо обучать древесную модель и брать точку первого сплита по этому признаку.
Можно взять волатильность вместо приращений, она точно отражает рыночные циклы. И прогнать через 2 модели, одна из которых фильтрует плохие случаи (как в последней статье делал). Результаты иногда приличные, нужно несколько раз попереобучать. Потенциально подобный подход даст больше, чем bestinterval.
ЗЫ onnx на маке завелся из примера, что круто, бустинги не проверял еще
Там на вход точно матрицу 2-мерную нужно, как в вашем примере? Логичнее одномерный массив с признаками, кажется. Может ругаться на неправильную форму матрицы. Например, вместо одномерного нужно давать 2-мерный, где каждая запись во 2-м измерении, т.е вложенные массивы, содержащие по 1 значению.
Ну и для катбуста есть пример перевода в mql из питона, lgbm вроде ничем не лучше
ЗЫ onnx на маке завелся из примера, что круто, бустинги не проверял еще
Там на вход точно матрицу 2-мерную нужно, как в вашем примере? Логичнее одномерный массив с признаками, кажется. Может ругаться на неправильную форму матрицы. Например, вместо одномерного нужно давать 2-мерный, где каждая запись во 2-м измерении, т.е вложенные массивы, содержащие по 1 значению.
Ну, при обучении в питоне тестил модель на первых пяти строках датасета. Потом при запуске ONNX в питоне тоже проверил вывод на тех же первых пяти строках. Как ни крути, всё же это матрица. В МТ5 варианте просто скопипастил эти же пять строк в виде матрицы. Да и в примере Рената на вход подаётся тоже матрица из десяти строк и четырёх столбцов.
Проблема там, ИМХО, уже при загрузке модели, поскольку выдаются отрицательные числа в размерностях. Кстати, надо посмотреть что будет выдавать в примере Рената.
Maxim Dmitrievsky #: Можно взять волатильность вместо приращений, она точно отражает рыночные циклы. И прогнать через 2 модели, одна из которых фильтрует плохие случаи (как в последней статье делал). Результаты иногда приличные, нужно несколько раз попереобучать. Потенциально подобный подход даст больше, чем bestinterval.
Не, я просто про общий подход к цикличным переменным. Их надо "разрезать" для превращения в обычные. Но можно же делать это по разному, не обязательно в формальном нуле.
Помимо суточного времени, циклические переменные возникают, например, когда ищутся веса для портфеля из двух символов.
Aleksey Nikolayev #: Похоже, переходить на питон рановато. Лучше освоить CLI версию LightGBM и сохранять модели в формате if-else на C. Неуниверсально, зато дёшево и сердито)
Есть ещё пакет intrees, там можно правила тянуть с многих деревняных моделей.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не получается вывод в МТ5 из ONNX-модели, обученной в LightGBM. Ошибки 5808 и 5805 при установке формы параметров. Но проблема вроде уже с определением размерностей параметров - получаются отрицательные значения (выделено в коде). Может просто чего-нибудь напутал. В питоне 3.10 всё вроде нормально.
Вывод MQL5:
Обучение в питоне:
Вывод в питоне:
Вспомнилось обсуждение цикличных признаков, вроде времени суток. ИМХО, надо переводить их в обычные, просто подбирая точку для начала отсчёта, в которой происходит наиболее сильная смена возможной закономерности. Можно пользоваться либо соображениями о рынке (расписание сессии, в данном случае), либо чем-то вроде этого, либо обучать древесную модель и брать точку первого сплита по этому признаку.
Ну, при обучении в питоне тестил модель на первых пяти строках датасета. Потом при запуске ONNX в питоне тоже проверил вывод на тех же первых пяти строках. Как ни крути, всё же это матрица. В МТ5 варианте просто скопипастил эти же пять строк в виде матрицы. Да и в примере Рената на вход подаётся тоже матрица из десяти строк и четырёх столбцов.
Проблема там, ИМХО, уже при загрузке модели, поскольку выдаются отрицательные числа в размерностях. Кстати, надо посмотреть что будет выдавать в примере Рената.
Можно взять волатильность вместо приращений, она точно отражает рыночные циклы. И прогнать через 2 модели, одна из которых фильтрует плохие случаи (как в последней статье делал). Результаты иногда приличные, нужно несколько раз попереобучать. Потенциально подобный подход даст больше, чем bestinterval.
Не, я просто про общий подход к цикличным переменным. Их надо "разрезать" для превращения в обычные. Но можно же делать это по разному, не обязательно в формальном нуле.
Помимо суточного времени, циклические переменные возникают, например, когда ищутся веса для портфеля из двух символов.
Похоже, переходить на питон рановато. Лучше освоить CLI версию LightGBM и сохранять модели в формате if-else на C. Неуниверсально, зато дёшево и сердито)
Есть лёгкие сомнения в будущем Яндекса)
Ещё, по идее, lgbm должен лучше интегрироваться с сишарпом и прочими поделками микрософта, если вдруг это станет актуальным)
Есть ещё пакет intrees, там можно правила тянуть с многих деревняных моделей.
Можете скрипт с таким функционалом продемонстрировать?
Есть лёгкие сомнения в будущем Яндекса)
На чем они основаны?