Стратегия настраиваемого времени запуска бэктестинга
Обзор
Цель данной стратегии — позволить пользователю настроить время запуска бэктестинга, что обеспечивает более гибкое и адаптированное тестирование на исторических данных.
Принцип работы стратегии
Стратегия использует функции time и timestamp языка Pine Script для реализации настраиваемого времени запуска бэктестинга.
Сначала пользователь вводит в настройках год, месяц, день, час и минуту запуска. Затем эти данные используются для создания временной метки, которая сохраняется в переменной startTime.
В условии проверки стратегии добавляется новое условие startTime. Стратегия запускается только тогда, когда текущее время больше или равно startTime.
Например:
pine
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
strategy.entry("My Long Entry Id", strategy.long)
Таким образом достигается настраиваемое время запуска бэктестинга. Пользователь может гибко настроить время начала тестирования в соответствии со своими потребностями, а не ограничиваться жёстко заданным временем.
Анализ преимуществ
Стратегия с настраиваемым временем запуска бэктестинга обладает следующими преимуществами:
-
Бóльшая гибкость: пользователь может полностью определить время запуска бэктестинга, не ограничиваясь фиксированным моментом.
-
Бóльшая реалистичность: можно установить время запуска, соответствующее фактическому моменту начала работы стратегии, что делает тестирование более близким к реальным рыночным условиям.
-
Удобство событийно-ориентированного тестирования: можно задать время запуска на основе времени наступления определённого события, чтобы провести тестирование для конкретного события.
-
Лёгкая настройка условий: можно очень просто скорректировать условия запуска тестирования, проводя целевое тестирование для разных этапов.
-
Повторяемость и надёжность: параметризация времени запуска бэктестинга позволяет повторять тесты с получением надёжных результатов.
Анализ рисков
Использование настраиваемого времени запуска бэктестинга сопряжено с некоторыми рисками:
-
Зависимость результатов от времени запуска: разные моменты запуска могут приводить к существенно различающимся результатам.
-
Необходимость тщательного выбора времени запуска: необоснованное время может исказить результаты, не отражая реальной картины.
-
Повышенный риск подгонки под кривую: появляется возможность подгонки результатов под исторические данные путём изменения времени запуска, что ведёт к переобучению.
-
Снижение сопоставимости результатов: результаты данной стратегии мало сопоставимы с результатами, полученными при фиксированном времени запуска.
Соответствующие методы решения:
-
Провести многократный бэктестинг, оценив влияние изменения времени запуска на результаты.
-
Выбирать время запуска на основе времени значимых событий, чтобы уменьшить искажения.
-
Осторожно настраивать время запуска, избегая чрезмерной подгонки под исторические данные.
-
Сохранять результаты бэктестинга с фиксированным временем запуска в качестве базового эталона для сравнения с кастомизированным тестированием.
Направления оптимизации
Стратегию настраиваемого времени запуска бэктестинга можно оптимизировать по следующим направлениям:
-
Поддержка настройки как времени начала, так и времени окончания, чтобы обеспечить полную гибкую конфигурацию временного окна тестирования.
-
Поддержка различных режимов времени: конкретная дата, относительная дата, событийно-ориентированный и т.д., что делает настройку более интеллектуальной и удобной.
-
Поддержка графического интерфейса настройки для интуитивного задания временных параметров.
-
Поддержка различных временных гранулярностей: год, месяц, день, час, минута, секунда и т.д.
-
Запись конфигурации времени тестирования, чтобы обеспечить воспроизводимость, отслеживаемость и сопоставимость результатов.
-
Добавление проверки некорректной настройки времени, чтобы избежать влияния необоснованных параметров на качество тестирования.
-
Предоставление функции привязки времени запуска, позволяющей одним нажатием синхронизировать и скопировать время запуска в несколько стратегий.
Заключение
Данная стратегия реализует настраиваемую и гибкую конфигурацию времени запуска бэктестинга, что позволяет уменьшить ограничения тестирования и приблизить его к реальной торговле. Однако необходимо учитывать зависимость результатов от времени запуска и применять такие меры, как многократное тестирование и событийно-ориентированный подход, для снижения искажений. Стратегия имеет множество направлений для дальнейшей оптимизации, и в будущем может быть достигнута ещё более интеллектуальная и удобная настройка времени тестирования.
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time- 1
