Обсуждение статьи "Градиентный бустинг (CatBoost) в задачах построения торговых систем. Наивный подход"
Перемешивать тут не стоит
train_X, test_X, train_y, test_y = train_test_split(X, y, train_size = 0.5, test_size = 0.5, shuffle=True)
Как пишут в справке https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
Whether or not to shuffle the data before splitting. If shuffle=False then stratify must be None.
Перемешиваются данные до разделения, т.е. в train попадут некоторые примеры из test.
В целом статья понравилась, показывает, что можно достаточно просто внедрить и использовать ИИ в торговле.
- scikit-learn.org
Полагаю, что валидация ухудшится, а тест на неизвестных данных может улучшиться.
Перемешивать тут не стоит
Как пишут в справке https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
Перемешиваются данные до разделения, т.е. в train попадут некоторые примеры из test.
В целом статья понравилась, показывает, что можно достаточно просто внедрить и использовать ИИ в торговле.
специально так делаю, чтобы немного выровнять выборки. Без перемешивания тест получается похуже, но на новые данные это почти не влияет. Позже покажу примеры.
Вот это я не понял:
if dataset['close'][i] >= (dataset['close'][i + rand]): labels.append(1.0) elif dataset['close'][i] <= (dataset['close'][i + rand]): labels.append(0.0) else: labels.append(0.0)
Красным помечены условия, которые никогда не сработают.
Вот это я не понял:
Красным помечены условия, которые никогда не сработают.
здесь ничего страшного, менял условия - остались артефакты
Especially for the importation of the python model on mql5.
Because I am not an ALGLIB expert but I strongly think that XGBoost CATBoost and Pytorch are by far superiors to do machine and deep learning.
Деревья строятся независимо друг от друга, а потом происходит подсчет в листьях (перебор по отквантованным предикторам) таким образом, что бы уменьшалась ошибка по градиенту.
При выборе предикторов для построения дерева и сплитов дерева используются рандомные коэффициенты, что дает возможность, в теории, увеличивать полноту (Recall) и препятствовать переобучению.
Лучше у разрабов спрашивать
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Градиентный бустинг (CatBoost) в задачах построения торговых систем. Наивный подход:
Обучение классификатора CatBoost на языке Python и экспорт модели в mql5 формат, а также разбор параметров модели и кастомный тестер стратегий. Для подготовки данных и обучения модели используется язык программирования Python и библиотека MetaTrader5.
Скомпилировав бота, можно проверить его в штатном MetaTrader 5 тестере. Не забывайте правильно выбрать тайм-фрейм (должен быть таким же как при обучении модели), а также про инпуты look_back и MA_period, которые также аналогичны параметрам из Python программы. Проверим модель на периоде обучения (тренировочная + валидационная выборки):
Производительность модели (тренировочная + валидационная выборки)
Если сравнить результат с результатом кастомного тестера, то они одинаковы, за исключением некоторых отклонений в спредах. Теперь протестируем модель на совершенно новых данных, с начала года:
Производительность модели на новых данных
На новых данных модель показала себя значительно хуже. Это обусловлено объективными причинами, которые я постараюсь описать ниже.
Автор: Maxim Dmitrievsky