Торговая система с двойным таймфреймом и динамическим уровнем поддержки
Обзор
Данная стратегия представляет собой динамическую систему торговли на основе уровней поддержки с использованием двух таймфреймов. Торговля осуществляется по сигналам пересечения скользящих средних SMA и EMA на недельном и дневном таймфреймах. Система использует полосу поддержки, формируемую скользящими средними, для выявления рыночных трендов и торговых возможностей, а также повышает точность сделок за счёт подтверждения сигналов на разных временных периодах. Управление позициями осуществляется в процентах, учитываются издержки и проскальзывание.
Принцип стратегии
Основной принцип стратегии — определение торговых сигналов на основе пересечения и взаимного расположения скользящих средних на двух таймфреймах:
- Длинный период (недельный): используется 20-недельная SMA и 21-недельная EMA.
- Короткий период (дневной): используется 50-дневная SMA и 51-дневная EMA.
- На длинном периоде: когда EMA пересекает SMA снизу вверх — сигнал к покупке, сверху вниз — сигнал к закрытию позиции.
- На коротком периоде: когда EMA пересекает SMA снизу вверх и при этом короткая EMA находится выше длинной EMA — сигнал к покупке.
- При появлении сигнала к продаже на коротком периоде или при пересечении скользящих средних на длинном периоде сверху вниз все длинные позиции закрываются.
- Стратегия работает в заданном временном диапазоне, за его пределами позиции автоматически закрываются.
Преимущества стратегии
- Множественный механизм подтверждения: сигналы на двух таймфреймах снижают влияние ложных сигналов.
- Динамическая полоса поддержки: полоса между скользящими средними динамически адаптируется к рыночным изменениям.
- Надёжное управление рисками: учитываются торговые издержки и проскальзывание, управление позициями в процентах.
- Высокая адаптивность: полоса поддержки автоматически корректируется в зависимости от рыночной волатильности.
- Чёткие правила: условия входа и выхода ясны, легко исполняются и тестируются.
Риски стратегии
- Риск бокового рынка: в условиях флэта могут генерироваться частые ложные сигналы.
- Риск запаздывания: скользящие средние обладают свойством запаздывания, что может привести к пропуску оптимальных точек входа.
- Чувствительность к параметрам: выбор периодов скользящих средних существенно влияет на результаты стратегии.
- Зависимость от рыночной среды: стратегия показывает лучшие результаты на трендовых рынках, но может быть менее эффективной при резких колебаниях.
- Риск управления капиталом: фиксированный процент позиции может быть чрезмерным в некоторых рыночных условиях.
Направления оптимизации
- Введение индикатора волатильности: добавление ATR или других индикаторов для динамического изменения размера позиции.
- Оптимизация выбора параметров: тестирование различных периодов скользящих средних для улучшения системы.
- Добавление фильтра рыночной среды: использование индикаторов силы тренда для исключения неподходящих условий.
- Улучшение стоп-лосса: рассмотреть возможность добавления трейлинг-стопа или фиксированного стоп-лосса для дальнейшего контроля рисков.
- Оптимизация управления позициями: динамическое изменение размера позиции в зависимости от силы сигнала и рыночной волатильности.
Итог
Данная стратегия создаёт относительно надёжную торговую систему на основе сигналов пересечения скользящих средних на разных таймфреймах. Концепция полосы поддержки позволяет распознавать рыночные тренды, а множественный механизм подтверждения повышает точность сделок. При разработке системы учтены различные факторы реальной торговли, включая издержки, проскальзывание и временное управление. Несмотря на присущие риски, предложенные направления оптимизации способны ещё больше повысить стабильность и доходность стратегии.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")- 1

