Обсуждение статьи "Поиск сезонных закономерностей на валютном рынке с помощью алгоритма CatBoost"

 

Опубликована статья Поиск сезонных закономерностей на валютном рынке с помощью алгоритма CatBoost:

В статье показана возможность создания моделей машинного обучения с временными фильтрами и раскрыта эффективность такого подхода. Теперь можно исключить человеческий фактор, просто сказав модели: "Хочу, чтобы ты торговала в определенный час определенного дня недели". А поиск закономерностей возложить на плечи алгоритма.

В функции можно задать список часов, которые необходимо проанализировать. Здесь заданы все 24 часа. Для чистоты эксперимента я выключил случайный семплинг, поставив min и max (минимальный и максимальный горизонт открытой позиции) равными 15. Переменная iterations отвечает за количество переобучений для каждого часа. Увеличив этот параметр, можно получить более достоверную статистику. После завершения работы, функция отобразит следующий график:


По оси X расположен порядковый номер часа. По оси Y представлены оценки R^2 для каждой итерации (было выбрано 10 итераций, то есть переобучений модели для каждого часа). Хорошо видно, что для 4,5,6 часов все проходы расположены кучнее, что придает больше уверенности в качестве найденной закономерности. Здесь принцип выбора достаточно простой — чем выше и кучнее точки, тем лучше модель. Например, на интервале 9-15 график показывает большой разброс, а среднее качество моделей опускается до уровня 0.6. Выбрав интересующие часы, можно заново переобучить модель и посмотреть её результаты в кастомном тестере.

Автор: Maxim Dmitrievsky

 

Отлично, Максим!

Для примера, приведу графики от одного из Волшебников, который стрижет наличные на Форексе. Вот они:

https://smart-lab.ru/blog/666149.php

Очень сильно похоже...

Значит, ты идешь, примерно, по той же Дороге к Граалю.

Философия фундаментальных принципов движения цены
Философия фундаментальных принципов движения цены
  • smart-lab.ru
Рынок манит своими возможностями. Мозг большинства трейдеров отказывается мыслить рационально и заставляет как можно быстрее получить дозу адреналина. Какая альтернатива? Проверить формализованную идею на всей доступной истории и, осознав результаты, не торговать никогда. Что же мешает этому? тяга к игре на эфемерных неэффективностях нежелание...
 
Alexander_K2:

Отлично, Максим!

Для примера, приведу графики от одного из Волшебников, который стрижет наличные на Форексе. Вот они:

https://smart-lab.ru/blog/666149.php

Очень сильно похоже...

Значит, ты идешь, примерно, по той же Дороге к Граалю.

ну, там непонятно о чем речь

если брать машинное обучение на форексе, то данных для обучения всегда будет не хватать. Это ключевой момент, который нужно обходить.

В статьях я частично его обхожу, генерируя новые правдоподобные семплы, но можно развить тему.
 
Maxim Dmitrievsky:

ну, там непонятно о чем речь

если брать машинное обучение на форексе, то данных для обучения всегда будет не хватать. Это ключевой момент, который нужно обходить.

Ну, этот Волшебник убежден, что котировки на Форексе - это искусственная псевдослучайная последовательность, искаженная во времени. Тоже работает с временными фильтрами, если я правильно понял Его экспрессивные речи.
 
Alexander_K2:
Ну, этот Волшебник убежден, что котировки на Форексе - это искусственная псевдослучайная последовательность, искаженная во времени. Тоже работает с временными фильтрами, если я правильно понял Его экспрессивные речи.

Этих волшебников пора брать за грудки и выпытывать все до последней капли :)

 

Прочитал. Хороший слог.)

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

Даже новости выходят регулярно, а это привязка ко времени.

 
Valeriy Yastremskiy:

Прочитал. Хороший слог.)

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

Даже новости выходят регулярно, а это привязка ко времени.

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

если есть какие-то любые другие предположения, их легко встроить и проверить, в пару строк кода
 
Maxim Dmitrievsky:

фильтры по дисперсии приращений неплохо работают, для заданной глубины истории. Можно и новостные, надо откуда-то загрузить

если есть какие-то любые другие предположения, их легко встроить и проверить

Вот как раз другие предположения критики не держат. Приращения должны работать, но там по любому процент ложных срабатываний будет больше. Если только наложить на них временной фильтр.)

С новостями сложно в плане подготовки данных, их ранжирования и вообще разделения и понимания как это делать.

 
Valeriy Yastremskiy:

Вот как раз другие предположения критики не держат. Приращения должны работать, но там по любому процент ложных срабатываний будет больше. Если только наложить на них временной фильтр.)

С новостями сложно в плане подготовки данных, их ранжирования и вообще разделения и понимания как это делать.

С новостями сложнее, да, поэтому все никак не возьмусь

 
Максим а вы учитываете спред  при тестах в своем питон коде ? Скажем если модель засунуть в mql5 бота, в тестере MT5 она покажет такой же график или похожий ? Просто интересно матожидание в пятизначных пунктах какое получается у этих моделей. По графикам там у вас если взять самый лучший первый то там 5 пипс за 600 сделок это получается 50 пунктов в пятизнаке на 600 сделок и того 0.083 пятизначных пункта на одну сделку. Или может быть я что то не так понял ?
 
Evgeniy Ilin:
Максим а вы учитываете спред  при тестах в своем питон коде ? Скажем если модель засунуть в mql5 бота, в тестере MT5 она покажет такой же график или похожий ? Просто интересно матожидание в пятизначных пунктах какое получается у этих моделей. По графикам там у вас если взять самый лучший первый то там 5 пипс за 600 сделок это получается 50 пунктов в пятизнаке на 600 сделок и того 0.083 пятизначных пункта на одну сделку. Или может быть я что то не так понял ?

спред учитывается в кастомном тестере, потом модели проверяются в MT5 тестере (см. 1-ю статью из цикла)

т.е. логика легко (относительно) переносится в MT5, почти на автомате.