Стратегия обратного тестирования пробоя структуры
Обзор
Данная стратегия использует метод пробоя уровней, открывая длинные или короткие позиции при определенных условиях пробоя, и включает функцию автоматического бэктестинга для поиска оптимальных комбинаций параметров.
Принцип
-
Входные параметры включают количество дней ретроспективного анализа, процент тейк-профита, процент стоп-лосса, а также параметры автоматического бэктестинга, такие как диапазон дней ретроспективного анализа, диапазон тейк-профита и стоп-лосса и т.д.
-
При бэктестинге перебираются различные комбинации количества дней ретроспективного анализа, процента тейк-профита и процента стоп-лосса, и фиксируются результаты прибыли/убытка для каждой комбинации.
-
Определение сигнала пробоя: если цена закрытия пересекает верхнюю полосу (upper band) и это не свеча входа в рынок, открывается длинная позиция; если цена закрытия пересекает нижнюю полосу (lower band) и это не свеча входа в рынок, открывается короткая позиция.
-
Условие срабатывания стоп-лосса: если тейк-профит не сработал, но сработал стоп-лосс, то выход из позиции по стоп-лоссу.
-
Условие срабатывания тейк-профита: если стоп-лосс не сработал, но сработал тейк-профит, то выход из позиции по тейк-профиту.
-
Отображается подробная таблица результатов бэктестинга, которую можно отсортировать по проценту прибыли, чистой прибыли или количеству сделок в соответствии с настройками пользователя.
Преимущества
-
Функция автоматического бэктестинга позволяет быстро найти оптимальную комбинацию параметров без ручного тестирования.
-
Результаты бэктестинга можно сортировать по проценту прибыли, чистой прибыли, количеству сделок и т.д., что позволяет гибко выбирать оптимальные параметры в соответствии с потребностями.
-
Визуализация результатов прибыли/убытка по каждой сделке.
-
Параметры бэктестинга настраиваются, что позволяет тестировать более широкое пространство параметров и находить глобальный оптимум.
-
Правила стратегии просты и понятны, легко реализуемы.
Риски и решения
-
Короткий период бэктестинга может привести к нестабильным результатам. Решение: установить более длинный период бэктестинга.
-
Частые сделки могут привести к проскальзыванию, снижая прибыль. Решение: соответствующим образом расширить диапазон тейк-профита и стоп-лосса.
-
Результаты бэктестинга по одному инструменту могут быть нерепрезентативными. Решение: протестировать на разных инструментах, чтобы найти стабильную комбинацию параметров.
-
Чрезмерная оптимизация параметров может привести к переобучению. Решение: проверить стабильность параметров на разных инструментах и временных периодах.
-
Игнорирование торговых издержек может исказить результаты бэктестинга. Решение: установить разумный параметр комиссии.
Направления оптимизации
-
Увеличить размерность оптимизации параметров, например, добавить трейлинг-стоп или ограничение по количеству сделок.
-
Оптимизировать условия входа, добавив фильтрацию по трендовым индикаторам.
-
Оптимизировать стратегию тейк-профита и стоп-лосса, например, динамический тейк-профит или трейлинг-стоп.
-
Внедрить алгоритмы машинного обучения для помощи в оптимизации параметров.
-
Оптимизировать структуру кода для увеличения скорости бэктестинга.
-
Проверить стабильность параметров на различных инструментах и таймфреймах.
-
Рассмотреть интеграцию функции автоматической торговли.
Заключение
Данная стратегия имеет четкую и понятную общую концепцию. Функция автоматического бэктестинга позволяет быстро оптимизировать параметры, а отображение прибыли/убытка способствует улучшению стратегии. Существуют определенные риски, на которые следует обратить внимание, но их можно устранить с помощью многосторонней оптимизации, что делает стратегию очень практичной. В целом, эта стратегия, основанная на простой идее пробоя и оснащенная инструментом автоматического бэктестинга, может помочь трейдерам быстро построить стабильную торговую систему.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © -_-
//@version=5
// strategy("[-_-] LBAB", process_orders_on_close=true, overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, default_qty_type=strategy.cash, default_qty_value=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.075)
- 1

