Type/to search

Адаптивная стратегия выбора временного диапазона для бэктестинга на основе наложения двойных скользящих средних

Common strategy
Created: 2024-01-05 12:12:10
Last modified: 3 years ago
1
Follow
1802
Followers

img

Обзор

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

Стратегия предоставляет четыре способа выбора диапазона дат через входные параметры: использование всех исторических данных, последние N дней, последние N недель или ручное указание диапазона. В зависимости от выбранного диапазона динамически устанавливается окно бэктестинга, при этом торговая логика остаётся неизменной. Это позволяет сравнивать результаты стратегии на разных временных окнах.

Принцип работы стратегии

Стратегия состоит из модуля выбора диапазона дат бэктестинга и модуля торговой стратегии на основе двойной скользящей средней (MA).

Модуль выбора диапазона дат бэктестинга

  1. Предоставляет четыре способа выбора диапазона дат: все исторические данные (ALL), последние N дней (DAYS), последние N недель (WEEKS), ручное указание диапазона (MANUAL).
  2. В зависимости от выбранного диапазона динамически устанавливает время начала и окончания бэктестинга через преобразование временных меток.
  3. Использует временное условие window() для фильтрации свечей, проводя бэктестинг только в выбранном диапазоне дат.

Модуль торговой стратегии на основе двойной MA

  1. Период быстрой MA — fastMA (по умолчанию 14), период медленной MA — slowMA (по умолчанию 28).
  2. При пересечении быстрой MA вверх над медленной MA — открытие длинной позиции; при пересечении быстрой MA вниз под медленную MA — закрытие позиции.
  3. Отображение кривых быстрой и медленной MA.

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

  1. Гибкий выбор различных временных диапазонов бэктестинга без ограничений, удовлетворяющий различным экспериментальным потребностям.
  2. Возможность тестирования различных параметров периодов в одном и том же временном диапазоне с сопоставимыми результатами.
  3. Простота изменения торговой логики; может использоваться как фреймворк для других стратегий.
  4. Стратегия двойной MA проста для понимания и легка в освоении.

Анализ рисков и методов их решения

  1. Стратегия двойной MA довольно груба, возможны частые сделки. Рекомендуется добавить механизмы стоп-лосса и другие оптимизации.
  2. При ручном задании диапазона дат требуется осторожность во избежание ошибочных дат. Можно отображать подсказки.
  3. Полный исторический бэктестинг за длительный период увеличивает время тестирования. Для снижения частоты сделок можно добавить проскальзывание или комиссию.

Направления оптимизации стратегии

  1. Добавление логики стоп-лосса для снижения риска убытков.
  2. Включение фильтрации пула акций, отбор акций с высокой корреляцией к индексу для повышения стабильности.
  3. Добавление фильтра торговых сигналов для отсеивания нестабильных сигналов в определённом периоде и уменьшения ненужных сделок.
  4. Тестирование характеристик акций, связанных с различными классификационными индексами, для нахождения наилучших инструментов.

Заключение

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

Source
Pine
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title = "How To Auto Set Date Range", shorttitle = " ", overlay = true)
Strategy parameters
Strategy parameters
FastMA
SlowMA
Date Range
# Days or Weeks
From Month
From Day
From Year
To Month
To Day
To Year
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)