Обсуждение статьи "Разработка робота на Python и MQL5 (Часть 1): Препроцессинг данных" - страница 6

 
Насчёт стационарных признаков кстати, ещё одно наблюдение. 

Модель XGBoost на тестах, сколько я не запускал, на разных датах, показывает один за одним прибыльные форварды, десятки раз на разных датах с текущими признаками. Я хоть и новичок, но не идиот, отсекаю обучение на 2007-2016, и дальше чистый форвардный тест. Accuracy меток со сделками risk reward 1:8 - 66% на форвардах средняя, иногда XGB вышибает 72-74%. Все остальные модели, нейросети, весь остальной бустинг, случайные леса - льют безбожно.

Я бы не стал публиковать даже первую статью цикла с текущими признаками, если бы они сливали в используемой модели на форвардах 10+ лет.

Не зря модель XGB бьёт множество конкурсов по прогнозированию и data science. Видимо, она как-то умеет работать с сырыми данными. И кросс валидация в ней встроенная. Мне про нее сказал знакомый учёный, доктор наук, он ее для прогнозирования использует, ну и приторговывает тоже, кидал мне торговый отчёт с Профит фактором в 55, правда он пропал из тырнетов, у него куча разработок была, непонятно что могло с ним случиться. Собственно именно он, а ещё супер статьи Максима Дмитриевского, и привели меня в МО пару лет назад.

Правда XGB обучается крайне долго. Последняя модель обучалась двое суток, я уже задолбался ждать, притом что обычный бустинг обычно учится за пару минут на сервере. Но для меня это в определенной степени показатель сложности и эффективности алгоритма. Буду идти к тому чтобы арендовать более мощный сервер для исследований.

Надеюсь ONNX версия не будет весить очень уж много и иметь очень много строк. В MQL5 есть ограничение на количество строк данных ONNX модели. Я один раз обучил модель в 100 млн строк и был очень расстроен этим, мкл не даёт использовать) Мне кажется вес будет большой, и предвосхищая это я сделал модель для онлайн торговли прямо через Пайтон, она появится в следующих статьях цикла, в понедельник поставлю ее на тестирование. Черновик цикла уже готов. Я хотел сначала все одной простыней опубликовать, но администрация не дала, и правильно наверное, было бы скучно такую портянку читать.)

Ещё из идей появилась идея скальпера для Сбера в Финам МТ 5, суть в том что тут в Пайтон библиотеке мкл есть функция получения истории стакана цен, что если обучить модель на ней, и пусть скальпит, пацаны в пропах же по стакану торгуют, и вполне успешно. Судя по опыту трейдеров пропов, не у меня первого такая идея, и уже давно есть куча такого рода скальперских алгоритмов на МО. Скальпинг привлекает тем что доходность чаще всего можно крыть день в день. У меня есть счёт Финама, как у иностранного инвестора в РФ, пусть и мелкого) Так что возможно, последняя статья цикла будет посвящена такому скальперу на Мосбирже или СМЕ, через Финам или AMP Futures Europe.

Также лежит черновик компьютерного зрения на Пайтоне, тоже сделаю статью про него после текущего цикла.

Идей полно, реально полно, каждый день новая идея появляется и сажусь за код. Хотя жена говорит, давай уже руби бабки, бери проп США с тем что есть, зарабатывай. Есть же уже десятки моделей обученных. А мне интереснее именно исследовать. Наверное и правда, надо взять счёт и подуспокоиться. Я брал счёт в феврале, и как назло появились траблы пропов с мета квотами, я так понял пропы не хотели покупать лицензии и химичили. Как назло, именно у моего пропа убрали МТ 5, я полез торговать руками через другой терминал который они поставили вместо МТ 5, и в итоге слив. Буду брать новый счёт в другом пропе с МТ 5, и писать новости про это, как торговля идёт.

Насчёт того что надо бы выбор лучших предикторов ограничить датой FORWARD, мысль очень дельная, я как-то упустил этот момент)
 

Пример форварда с 2010, обучение до 2010.

Пример, еще внедрил выборку EXAMWARD, чтобы отдельно на ней проверить модель, вот результат. ВСЕ остальные модели и нейросети льют на этих признаках с первого дня. 

 

А вот так отличается простой форвард: 

И форвард с фишками вроде кросс-валидации, бэггинга моделей (да, это все вшито в XGB по моему по дефолту, но решил внедрить), перебора гиперпараметров по сетке и т.п.:


 
Yevgeniy Koshtenko #:
Если метки классов не сбросить, то лучшим признаком для прогнозирования меток будут выбраны сами метки, разве нет? 

Вы не сбрасываете метки (что значит сбросить - очистить - как синоним), а исключаете столбцы, содержащие метки, а сами метки подаёте отдельно в модель в качестве целевых, т.е. информация о них не сбрасывается и не исчезает безвозвратно, а используется при обучении модели.

 
Yevgeniy Koshtenko #:
Модель XGBoost на тестах, сколько я не запускал, на разных датах, показывает один за одним прибыльные форварды, десятки раз на разных датах с текущими признаками. Я хоть и новичок, но не идиот, отсекаю обучение на 2007-2016, и дальше чистый форвардный тест. Accuracy меток со сделками risk reward 1:8 - 66% на форвардах средняя, иногда XGB вышибает 72-74%. Все остальные модели, нейросети, весь остальной бустинг, случайные леса - льют безбожно.

В статье много ошибок новичка - написал ранее, если такой же код используете - то могут быть чудеса.

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

Про чудеса XGB, конечно, интересно почитать, особенно как вы нашли гиперпараметры - читал, что очень он чувствителен к ним. 

 
Rashid Umarov #:

Не хотел делать это предположение, чтобы не обидеть вас :)

Впредь проверяйте свои исходные данные, прежде чем упрекать

У меня терминал в портативном режиме установлен, надо ли писать каким то образом ключ "portable"?

Если терминал запущен - то не работает код, а если выключить, то пытается загрузится без ключа, но так же не работает.

 
Aleksey Vyazmikin #:

У меня терминал в портативном режиме установлен, надо ли писать каким то образом ключ "portable"?

Если терминал запущен - то не работает код, а если выключить, то пытается загрузится без ключа, но так же не работает.

Попробуйте прямо из терминала его запустить. Просто кидаете скрипт на график и он распечатывает результаты во вкладке "эксперты"

Возможно нужно в метаэдиторе прописать путь к папку с питоном.

У меня так работает. Правда после долгих танцев)))

 
Aleksandr Slavskii #:

Попробуйте прямо из терминала его запустить. Просто кидаете скрипт на график и он распечатывает результаты во вкладке "эксперты"

Возможно нужно в метаэдиторе прописать путь к папку с питоном.

У меня так работает. Правда после долгих танцев)))

Вы в портативном режиме используете терминал?

В ME прописан путь (появился автоматом).

 
Aleksey Vyazmikin #:

Вы в портативном режиме используете терминал?

В ME прописан путь (появился автоматом).

Проверил в портабельной версии, всё работает.

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

 
Aleksandr Slavskii #:

Проверил в портабельной версии, всё работает.

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

Запустил из терминала

2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 1)
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 2)
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 3)
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 4)
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 5)

Путь указывал и так и сяк до терминала

terminal_path = "C:/FX/MT5_02/terminal64.exe"
#terminal_path = "C:\\FX\\MT5_02\\terminal64.exe"

Где то он не там ищет - история в терминале есть.

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