Я протестировал тысячи стратегий. Урок, который я усвоил на собственном опыте: Переобучение приведет к потерям $$$. Теперь я использую кросс-валидацию, чтобы помочь справиться с этим. Вот код для этого (за 2 минуты):
Если вы не знакомы с кросс-валидацией: • Снижает риск переобучения моделей • Включает разделение данных на подмножества • Оценивает производительность модели на невидимых данных Она используется во всех областях науки о данных. Теперь вы можете использовать это для торговли с VectorBT PRO. Вперед!
Давайте импортируем VBT PRO и несколько библиотек, относящихся к нашему анализу.
Получите данные для вашего любимого актива. Мы будем использовать AAPL.
Далее мы настроим "разделитель", который делит диапазон дат на меньшие сегменты в соответствии с выбранной схемой.
Команда splitter.plots().show_png() приводит к следующей визуализации:
Далее мы создадим функцию для выполнения торговой стратегии в заданном диапазоне дат, используя один набор параметров, возвращая один ключевой показатель. Наша стратегия будет простой: пересечение EMA в сочетании с трейлинг-стопом ATR.
Украшая (или оборачивая) нашу функцию с помощью `parameterized`, мы позволяем `objective` принимать список параметров и выполнять их по всем комбинациям.
Давайте проанализируем результаты, сегментируя быстрые и медленные периоды EMA. Это подчеркивает минимальное изменение коэффициента Шарпа от обучающего набора к тестовому набору по крайней мере в 50% разбиений, где синий указывает на положительное изменение.
Результат представляет собой тепловую карту, показывающую различные коэффициенты Шарпа для комбинаций медленных и быстрых периодов.
Хотя вы могли разработать многообещающую стратегию на бумаге, важно провести кросс-проверку, чтобы подтвердить ее стабильную эффективность с течением времени и убедиться, что это не просто результат случайных колебаний. Примените техники, которые вы здесь изучили, к своей стратегии.
113