Пересечение скользящих средних легко описать и легко перебрать лишнего. Быстрая средняя может пересечь медленную сверху вниз или снизу вверх, порождая событие правила. Сложность в том, чтобы решить, какие средние, момент подачи сигнала, выход и допущения по издержкам были заданы до просмотра результатов — и не является ли привлекательная пара параметров лишь лучшей среди множества попыток.
Зафиксируйте одну версию до построения сетки
Выберите инструмент, таймфрейм, источник данных и даты. Укажите входную цену, метод усреднения и периоды для обоих окон. Определите бычье событие как пересечение быстрой средней выше медленной на закрытой свече — или задайте противоположное направление; не подменяйте его состоянием вроде «быстрая средняя сейчас выше медленной», не зафиксировав это как отдельное правило. Задайте момент первого допустимого сигнала после прогрева, более позднее соглашение о цене входа, разрешённое направление, выход, размер позиции и максимальное время удержания. Справочник по Pine Script v6 различает встроенные функции скользящих средних и пересечений; документируйте используемые функции и исходные значения, если воспроизводите правило там.
Для простой скользящей средней значение на баре t — это среднее арифметическое текущего закрытия и предшествующих n − 1 закрытий. Поэтому входная цена и момент, когда бар считается закрытым, входят в определение. Экспоненциальная скользящая средняя задаёт другие веса и может пересечь на другом баре; никогда не заменяйте SMA на EMA после того, как увидели, какая версия выглядит лучше.
Рассчитайте пересечение вручную
Возьмём шесть вымышленных закрытий: 100, 99, 98, 99, 100, 102. Используем 3-барную SMA как быструю среднюю и 5-барную SMA как медленную. На баре 5 быстрая средняя равна (98 + 99 + 100) ÷ 3 = 99.00, а медленная — (100 + 99 + 98 + 99 + 100) ÷ 5 = 99.20. Быстрая линия всё ещё ниже медленной.
На баре 6 быстрая средняя становится (99 + 100 + 102) ÷ 3 = 100.33. Медленная средняя равна (99 + 98 + 99 + 100 + 102) ÷ 5 = 99.60. Сравнение соотношения на соседних закрытых барах выявляет пересечение вверх: оно изменилось с «ниже» на «выше». Расчёт не говорит, торговать ли, каким риском управлять или где выходить. Эти шесть цен приведены только для того, чтобы арифметику можно было проверить.
Если в средних используется закрытие, сигнал на баре 6 неизвестен на открытии этого бара. При поведении стратегии по умолчанию в TradingView Pine v6 стратегия, рассчитанная после закрытия, создаёт рыночный ордер для следующего доступного тика, обычно на открытии следующего бара. Это соглашение конкретной платформы-эмулятора брокера, а не гарантия реального исполнения; настройки могут изменить моделируемый момент. В собственном тесте записывайте метку времени сигнала и метку времени смоделированного исполнения как отдельные поля. Вход на открытии того же бара на основе финального закрытия использует информацию из будущего.
Для небольшой иллюстрации исследователь мог бы заранее объявить быстрые окна 3, 5 и 8 баров и медленные окна 10, 15 и 20 баров, что даёт девять пар-кандидатов. Это учебные значения, а не рекомендуемые настройки. Периоды измеряются в барах, поэтому правило «20 периодов» означает разные горизонты удержания на 5-минутных и дневных данных. Более крупная сетка может быть оправдана, но каждая протестированная комбинация пополняет перечень сделанных выборов. Назовите метрику, которую будете сравнивать, эталон и максимально допустимую просадку или иные критерии неудачи до запуска сетки. Избегайте выбора новой метрики после того, как увидели, с какой из них график выглядит лучше всего.
Включите простой эталон, подходящий к вопросу. Например, сравните кривую капитала правила с удержанием того же стартового капитала в базовом активе на том же интервале, затем укажите среднюю экспозицию стратегии и любые неразмещённые денежные средства. Полностью инвестированный путь «купи и держи» и часто меняющаяся, частично инвестированная стратегия имеют разные риск и экспозицию; один процент доходности не решает, какой процесс был лучше. Если направление — только лонг, не считайте молча периоды ниже медленной средней прибыльными шортами. Если правило предполагает лонг/шорт, моделируйте обе стороны явно.
Сохраняйте хронологию оценки
Используйте более ранние наблюдения для реализации и сравнения настроек-кандидатов. Не допускайте более поздние наблюдения в процесс настройки. Оцените выбранное правило один раз на этом более позднем интервале, затем отметьте интервал как использованный, если он повлиял на дальнейшую корректировку. Перекрывающиеся скользящие окна означают, что соседние сигналы не обязательно независимы, и большое число часовых строк — не то же самое, что большое число различных рыночных режимов.
Отчёт должен охватывать всю сетку или её достоверное резюме. Покажите медиану и разброс результатов кандидатов, а также выбранную настройку, и объясните, была ли выбранная пара задана заранее или отобрана по результатам. Изучите небольшие изменения вокруг выбранных периодов. Если близкие окна дают сильно разное поведение, опишите результат как чувствительный к параметрам. Простое разделение на обучающую и тестовую выборку ограничивает одну форму повторного использования данных, но не стирает эксперименты, уже проведённые исследователем.
Убедитесь, что сигнал причинно обусловлен
Средняя, включающая финальное закрытие свечи, известна только после закрытия этой свечи. Не используйте её для входа раньше в той же свече. Документируйте метку времени и цену, использованные для сигнала и последующего входа. Сверьте реализацию с небольшим примером, рассчитанным вручную, или отдельным модульным тестом. Обрабатывайте ранние окна с недостаточной историей как недоступные наблюдения, а не как индикаторы с нулевым значением.
В реализации тренда SuperQuant используется пересечение быстрой/медленной SMA на предыдущем закрытом часовом баре, а вход оценивается на открытии следующего бара по общим правилам движка. Настройки продукта по умолчанию — это примеры, а не проверенные рекомендации. Предоставленные данные синтетические, и его прогон не может установить преимущество на живом рынке. Другие приложения могут определять EMA, SMA, входы или выходы на основе постоянного состояния иначе. Подтвердите фактический код и конфигурацию, прежде чем описывать, что проверяет инструмент. Актуальная документация по стратегиям Pine Script v6 в TradingView описывает её эмулятор брокера и соглашение об исполнении по умолчанию на следующем тике; эти элементы управления объясняют только ту платформу.
Добавьте издержки и сохраните результат
Применяйте одни и те же допущения по комиссии, спреду, проскальзыванию и фандингу к каждому кандидату. Если эти издержки зависят от номинальной стоимости или инструмента, отразите это или укажите приближение. Бессрочные фьючерсы также требуют фактического соглашения о фандинге, направления и допустимых моментов расчёта. Приводите выбранное правило рядом с медианой и разбросом результатов всех кандидатов, общим числом испытаний, числом сделок и самым слабым разумным сценарием по издержкам. Малое число сделок или одно благоприятное окно — это ограничение, о котором нужно заявить, а не повод скрывать другие испытания.
Сравните результаты с эталоном и сохраните журнал со сделками, кривой доходности, просадкой, временем удержания и экспозицией. Храните отклонённые настройки, версию кода, отпечаток данных и даты вместе, чтобы другой человек мог воспроизвести, какое правило изучалось. Отделите параметры, зафиксированные до исследования, от выбранных с использованием обучающего интервала. Более поздняя контрольная выборка перестаёт быть нетронутой, как только она меняет параметр, фильтр, метрику или даже следующий исследовательский вопрос; сохраните этот результат и получите новый период оценки для изменённого правила.
Для контекста прочитайте следование тренду в криптовалютах, руководство по ошибке заглядывания в будущее и руководство по переобучению на бэктестах. Чек-лист аудита бэктеста фиксирует допущения. Это метод реализации и исследования, а не заявление о доходности или индивидуальная инвестиционная рекомендация.