
Продолжаем тестировать торговые идеи с отличного ресурса — форума ForexFactory. Авторы публикуют многочисленные предложения для торговых стратегий и, что хорошо, дают четкие правила и описания.
Для нас логичный следующий шаг — бэктест этих идей. С его помощью можно узнать истинную ценность этих торговых идей и, может быть, попытаться развивать их в будущем.
Полезные материалы, которые хорошо бы изучить перед продолжением:
Relative Strength Index (RSI — индекс относительной силы) логичней называть осциллятором, так как этот индикатор показывает перекупленность/перепроданность рынка. Вы же можете называть его как вам удобней — оба варианта верны. RSI не является трендовым индикатором. Работа с индикатором RSI заключается в поиске точек входа и выхода из рынка. Он подходит для любых финансовых инструментов, будь то валюты, криптовалюты, или биржевые инструменты.
Механизм работы индикатора RSI мало чем отличается от других осцилляторов — он движется в диапазоне от 0 до 100, показывая среднее значение движения цены в зависимости от роста или падения.
Ок, теперь к тому, как настроить индикатор RSI.
Индикатор имеет уровни 70 и 30, которые являются сигнальными уровнями для покупок или продаж. Если цена заходит ниже уровня 30 — цена считается перепроданной, если выше 70 — перекупленной. Такая же логика использовалась и в нашей сегодняшней стратегии.
По умолчанию, период индикатора равняется 14: дневной RSI берет расчет за последние 14 дней, часовой RSI — за последние 14 часов, минутный — за последние 14 минут и т. д. В будущем можно тестировать различные настройки периода, но для первых тестов достаточно периода по умолчанию — 14.
Индикатор ADR — Average Daily Range, или средний дневной диапазон — показывает возможную волатильность инструмента внутри дня. Понимая потенциальную волатильность, вы можете прагматичней выставлять уровни стоп-лосса и тейк-профита.
В основе этой стратегии такая идея: найти вершину или низину рынка в пределах дня и торговать против этого движения. Качество вершины/низины измеряется с помощью дневного диапазона движения цены — индикатора ADR. Вход совершается, когда цена немного отходит от вершины/низины. Скоро обсудим правила стратегии чуть подробней.
Идея проста и элегантна. Автор оригинальной ветки на форуме достоин похвалы за четкое и детальное описание стратегии, побольше бы таких. Это позволило нам запрограммировать алгоритм и поиграть с его вариантами.
В этой стратегии меня привлекла, в первую очередь, простота правил. Более того, автор утверждает, что стабильно делает с этой стратегией 10 пунктов в день. Должен сказать, что всегда со скепсисом смотрю на такие утверждения, так как тысячи и тысячи бэктестов не подтвердили эту идею. Нельзя делать стабильные 10 пунктов в день не превышая риски. Такие маленькие тейк-профиты требуют от трейдера крупных стоп-лоссов. С математической точки зрения это не работает.
Представьте, что у вас стратегия дает 75% прибыльных сделок, средняя прибыльная в 0.2 раза больше средней убыточной (т.е. в 5 раз меньше). Стоп-лосс, например, 50 пунктов, а тейк-профит — 10 пунктов. Даже если терять в одной убыточной сделке по 0.5% от капитала, на дистанции такой подход не оставляет нам шансов.
Подробнее о методе Монте-Карло, который использовался выше, в статье Как определить вероятностный результат торговой стратегии, используя метод Монте-Карло.
Оригинальные правила стратегии такие:
В той версии, которую мы тестировали, правило с MACD было заменено. Замена этого пункта работает вот как: когда все прочие условия соблюдены, вычисляем уровень для бай-стопа, прибавляя некую долю ATR к минимуму дня, и пока цена ниже этого расчетного уровня, размещаем бай-стоп на нём.
Вкратце, последовательность ходов для размещения отложенного ордера бай-стоп такая:
Визуально на графике это выглядит так:
Для шорт сделок — все зеркально.
Еще раз о MACD и входе по рынку. Мы решили убрать это правило, и заменить его отложенным ордером, находящимся на некотором расстоянии в ATR-ах от минимума дня (было просто лень программировать это в Visual JForex). Мы посчитали, что упрощение этого правила не сильно скажется на результативности.
Инструментов: 28 валютных пар и 2 драгметалла.
Историческое окно: с 4 января 2010 — по 7 марта 2021. Это большое историческое окно делится на три части, затем отчеты по ним склеиваются.
Конфигураций робота: 450.
Мы перебрали значения четырех параметров алгоритма.
atr_order — это расстояние от минимума (максимума) дня до ордера бай-стоп (селл-стоп). Тестировалось 5 значений.
rsi_OB — это уровень перекупленности RSI; уровень перепроданности считался автоматически как 100 минус уровень перекупленности. Тестировалось 3 значения.
sl — величина стоп-лосса в пунктах, выраженная в долях дневного ATR(15). Тестировалось 3 значения.
tp — величина тейк-профита в пунктах, выраженная в стоп-лоссах, то есть тейк-профит измеряется в стоп-лоссах. Тестировалось 10 значений.
Не пугайтесь нижней таблицы — сейчас все расшифруем.
Например, «312/156» в ячейке «N2» означает, что тренировочный период (бэктест) длится 312 недель (или 6 лет), а валидационный (форвард-тест) 156 недель (или 3 года).
По оси Y у нас 32 разных требования для отбора лучших настроек робота на тренировочном периоде. Требования представлены тремя параметрами:
Подробнее об этих и других коэффициентах — в статье Алготрейдинг. Оценка результативности торговой системы.
Цветные ячейки с «H3» по «AA36» — это средний годовой доход (или CAGR), полученный при торговле на валидационных отрезках с конкретными требованиями к тренировочному. Для получения этого процента все валидационные отрезки склеиваются в один непрерывный.
Например, в ячейке «J19» средний годовой доход равен 15.1%. Тренировочные промежутки всегда по 416 недель (или 8 лет). Валидационные промежутки всегда по 52 недели (или 1 год). Чтобы получить такой результат, к тренировочным промежуткам для отбора настроек робота выставлялись следующие требования:
Теперь отправимся к этому конкретному форвард-тесту и посмотрим на непрерывную кривую капитала, полученную после склеивания валидационных отрезков.
В частности, эта кривая состоит из четырех отрезков по одному году. Склейка велась так же, как мы ее описывали в статье про форвард-тест — кривая капитала вверху состоит из склеенных форвард-тестов (которые отмечены желтым на картинке ниже).
Если не совсем все ясно с форвард-тестом, обязательно посмотрите видео в начале этой статьи — там эти примеры разбираются подробней.
В итоговой супер-таблице по форвард-тесту получено слишком много отрицательных значений (красные ячейки). Это значит, что для торговли на коротких тренировочных и валидационных промежутках на эту стратегию полагаться нельзя. Согласно таблице, наши шансы повысятся, если отбирать топовые настройки алгоритма на тренировочных промежутках в 7 лет и более (столбцы с «H» по «K»).
Еще один примечательный момент в том, что результативность на валидационных отрезках получше, если несколько снизить требования к тренировочным. Здесь я имею ввиду, что фактор восстановления и R-квадрат не должны быть слишком высокими.
Посмотрим на пример, где тренировочные промежутки идут по 3 года, а валидационные — по 1-му году. При этом предъявим жесткие требования для отбора роботов на тренировочных отрезках.
В этом примере мы жестко подойдем к выбору алгоритмов на «прошлом»: пусть фактор восстановления будет выше 1, а Р-квадрат между 0.75 и 1, т.е. кривые капитала на прошлом должны смотреться очень гладенько.
Однако результат расстраивает. Еще можно заглянуть внутрь объединенной кривой из валидационных отрезков и увидеть, как могли выглядеть тренировочные отрезки.
Есть два крупных класса торговых стратегий, что для форекса, что для остальных рынков: это трендоследящие и контртрендовые (возврат к среднему). Наша подопытная стратегия принадлежит ко второму классу. Судя по результатам многочисленных бэктестов, мне так и не удалось найти контртрендовую стратегию, которой я стал бы доверять и запустил на своих счетах. В любом случае, мы продолжим тестировать эту стратегию в других вариациях.
Все благодарности за проведение бэктестов напраляю своим друзьям-трейдерам, которые запускали бэктесты на своих платформах и прислали готовые отчеты.
Если вы также заинтересованы в бэктестировании торговых роботов на платформе JForex, просто напишите нам. В настоящий момент мы с группой трейдеров проводим бэктесты и отправляем отчеты в объединенную базу данных, которой может пользоваться каждый участник.
База данных стратегий весит многие гигабайты и включает следующее:
Подробнее — по кнопке ниже.
Empirix Prime · 7 дней за 0 ₽
Лаборатория системного и алгоритмического трейдинга
Исследования стратегий, бэктесты с 2008 года и разборы на вебинарах с командой.
Новое в блоге
ИП Овсянников Павел Андреевич, ИНН 771387871944, ОГРНИП 320774600169552. Empirix.ru не осуществляет брокерскую деятельность и не оказывает услуги Форекс-дилинга. Материалы сайта представлены в обучающих целях и не являются инвестиционными рекомендациями. Трейдинг на финансовых рынках имеет рискованный характер, возможность получения прибыли неразрывно связана с риском получения убытков.
Мы используем cookie