В процессе загрузки ресурсов... загрузка...

Настраиваемая стратегия времени начала обратного теста

Автор:Чао Чжан, Дата: 2023-09-26 20: 53:15
Тэги:

Обзор

Цель этой стратегии заключается в том, чтобы позволить пользователям настраивать время начала обратного тестирования для более гибкого и настраиваемого обратного тестирования.

Логика стратегии

Эта стратегия использует функции времени и временной метки Pine Script для реализации настраиваемого времени начала обратного тестирования.

Сначала он позволяет пользователям ввести настраиваемый год, месяц, дату, час и минуту начала обратного тестирования в настройках. Затем он использует эти входы для генерации временной метки и сохраняет ее в переменной startTime.

В проверке состояния стратегии добавляется новое условие startTime. Стратегия будет запущена только тогда, когда текущее время больше или равно startTime.

Например:

longCondition = crossover(sma(close, 14), sma(close, 28))

if (longCondition and startTime)

  strategy.entry("My Long Entry Id", strategy.long) 

Это позволяет реализовать настраиваемое время начала бэкстеста. Пользователи могут гибко настраивать время начала бэкстеста вместо того, чтобы ограничиваться жесткокодированными временами.

Анализ преимуществ

Эта настраиваемая стратегия времени начала обратного тестирования имеет следующие преимущества:

  1. Более гибкий: пользователи могут полностью настроить время начала обратного тестирования вместо того, чтобы быть ограничены фиксированной точкой времени.

  2. Более реалистично: время начала может быть установлено на фактическое время выполнения стратегии, что делает обратный тест более реалистичным.

  3. Удобно для обратного тестирования на основе событий: время начала может быть установлено на основе времени возникновения события для обратного тестирования конкретных событий.

  4. Легкая корректировка состояния: условия начала обратного тестирования могут быть легко скорректированы для целевого обратного тестирования различных стадий.

  5. Повторяемость и надежность: параметризация времени начала обратного теста позволяет повторяться и надежно оценивать результаты обратного теста.

Анализ рисков

Использование настраиваемого времени начала обратного теста также сопряжено с некоторыми рисками:

  1. Результаты зависят от времени начала: разное время начала может привести к очень разным результатам обратного тестирования.

  2. Время начала требует тщательного выбора: необоснованное время начала может вызвать искажение результатов обратного теста.

  3. Увеличение риска перегрузки кривой: легко перегрузить, скорректировав время начала на исторические данные.

  4. Уменьшенная сопоставимость: результаты этой стратегии менее сопоставимы с обратными тестами с фиксированным временем начала.

Решения:

  1. Многократное повторное тестирование для оценки влияния изменений времени начала работы на результаты.

  2. Выберите время значимого события как время начала, чтобы свести к минимуму искажения.

  3. Осторожно корректируйте время начала, чтобы избежать перегрузки исторических данных.

  4. Для сравнения с настраиваемыми обратными испытаниями используйте фиксированные обратные испытания времени начала.

Руководство по оптимизации

Эта настраиваемая стратегия времени начала обратного тестирования также может быть улучшена в следующих аспектах:

  1. Поддержка настройки как времени начала, так и времени окончания для полной гибкой конфигурации временного окна обратного тестирования.

  2. Поддержка нескольких режимов времени: конкретные даты, относительные даты, события и т. Д. для более умной и удобной конфигурации времени.

  3. Поддержка графического интерфейса конфигурации для более интуитивного настройки параметров времени.

  4. Поддержка конфигурации различных временных деталей: год, месяц, день, час, минута, секунда и т.д.

  5. Запись конфигурации времени обратного тестирования для воспроизводимых, отслеживаемых и сопоставимых результатов.

  6. Добавить проверку неправильной конфигурации времени, чтобы избежать низкого качества обратных испытаний из-за необоснованных настроек времени.

  7. Предоставьте связывающее время начала, чтобы легко синхронизировать время начала в нескольких стратегиях.

Резюме

Эта стратегия позволяет настраивать и гибко конфигурировать время начала бэкстеста, чтобы уменьшить ограничения и сделать бэкстесты более реалистичными. Но необходимо следить за зависимостью результатов от времени начала для использования нескольких бэкстестов, моделей, основанных на событиях и т. Д., Чтобы уменьшить искажение. Эта стратегия также имеет много направлений для улучшения для достижения более умной и удобной конфигурации времени бэкстеста в будущем.


/*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
xYear = input(2018, title = "Start Year")
xMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
xDay = input(01, title = "Start Day", minval = 01, maxval = 31)
xHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute)
// End copy and paste
// Add (and startTime) at the end of your condition/s to activate

// The strategy below is just an example
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and startTime)
    strategy.entry("My Short Entry Id", strategy.short)
// Happy trading!


Больше