Количественная торговая стратегия с пересечением импульса скользящей средней двойного индекса

TEMA EMA SMA MA RSI
Дата создания: 2025-01-06 13:53:11 Последнее изменение: 2025-01-06 13:53:11
Копировать: 1 Количество просмотров: 348
1
Подписаться
1617
Подписчики

Количественная торговая стратегия с пересечением импульса скользящей средней двойного индекса

Обзор

Данная стратегия представляет собой торговую систему, следующую за трендом, основанную на тройной экспоненциальной скользящей средней (TEMA). Стратегия улавливает рыночные тенденции, сравнивая перекрестные сигналы краткосрочной и долгосрочной TEMA, и управляет рисками путем комбинирования стоп-ордеров волатильности. Стратегия работает на 5-минутном таймфрейме и использует индикаторы TEMA с периодом 300 и 500 в качестве основы для генерации сигналов.

Стратегический принцип

Основная логика стратегии основана на следующих ключевых элементах:

  1. Использование индикатора TEMA с двумя разными периодами (300 и 500) для определения направления тренда
  2. Когда краткосрочная TEMA пересекает долгосрочную TEMA снизу вверх, система генерирует длинный сигнал
  3. Когда краткосрочная TEMA пересекает долгосрочную TEMA сверху вниз, система генерирует короткий сигнал
  4. Используйте 10-периодный максимум и минимум для установки стоп-лосса
  5. После входа в рынок удерживайте позицию до появления обратного сигнала, прежде чем закрыть позицию.

Стратегические преимущества

  1. Высокая стабильность сигнала: использование TEMA с более длительным периодом может эффективно фильтровать рыночный шум и уменьшать ложные сигналы.
  2. Идеальный контроль риска: в сочетании со стоп-лоссом волатильности риск отдельной транзакции можно эффективно контролировать
  3. Высокая способность улавливать тенденции: TEMA реагирует на тенденции быстрее, чем традиционные скользящие средние
  4. Полный цикл торговли: включая четкие условия входа, стоп-лосса и фиксации прибыли
  5. Широкие возможности настройки параметров: ключевые параметры можно гибко настраивать в соответствии с характеристиками рынка.

Стратегический риск

  1. Риск волатильности рынка: на нестабильном и нестабильном рынке легко генерируются ложные сигналы, что приводит к постоянным убыткам.
  2. Риск проскальзывания: 5-минутный цикл может столкнуться с большим проскальзыванием во время резких колебаний.
  3. Риск управления фондом: стоп-лосс с фиксированной точкой может привести к чрезмерным потерям в периоды нестабильности
  4. Гистерезис сигнала: сам индикатор TEMA имеет определенный гистерезис, который может пропустить лучшую точку входа
  5. Чувствительность параметров: оптимальные параметры сильно различаются в разных рыночных условиях.

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

  1. Повышение узнаваемости рыночной среды: добавление индикаторов силы тренда и использование различных параметров в различных рыночных средах.
  2. Оптимизируйте метод стоп-лосса: рассмотрите возможность использования динамического стоп-лосса ATR для улучшения адаптивности стоп-лосса.
  3. Улучшить управление позициями: динамически корректировать количество открытых позиций в зависимости от силы тренда
  4. Усиление механизма раннего оповещения: подача сигналов раннего оповещения по ключевым ценовым позициям
  5. Добавить индикатор громкости: Объединить громкость для подтверждения действительности сигнала

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("TEMA Strategy for Gold", overlay=true)

// Inputs
tema_short_length = input.int(300, title="Short TEMA Length")
tema_long_length = input.int(500, title="Long TEMA Length")
pip_value = input.float(0.10, title="Pip Value (10 pips = 1 point for Gold)")

// Calculate TEMA
tema_short = ta.ema(2 * ta.ema(close, tema_short_length) - ta.ema(ta.ema(close, tema_short_length), tema_short_length), tema_short_length)
tema_long = ta.ema(2 * ta.ema(close, tema_long_length) - ta.ema(ta.ema(close, tema_long_length), tema_long_length), tema_long_length)

// Plot TEMA
plot(tema_short, color=color.blue, title="300 TEMA")
plot(tema_long, color=color.red, title="500 TEMA")

// Crossover conditions
long_condition = ta.crossover(tema_short, tema_long)
short_condition = ta.crossunder(tema_short, tema_long)

// Calculate recent swing high/low
swing_low = ta.lowest(low, 10)
swing_high = ta.highest(high, 10)

// Convert pips to price
pip_adjustment = pip_value * syminfo.mintick

// Long entry logic
if (long_condition and strategy.position_size == 0)
    stop_loss_long = swing_low - pip_adjustment
    strategy.entry("Long", strategy.long)
    label.new(bar_index, swing_low, style=label.style_label_down, text="Buy", color=color.green)

// Short entry logic
if (short_condition and strategy.position_size == 0)
    stop_loss_short = swing_high + pip_adjustment
    strategy.entry("Short", strategy.short)
    label.new(bar_index, swing_high, style=label.style_label_up, text="Sell", color=color.red)

// Exit logic
if (strategy.position_size > 0 and short_condition)
    strategy.close("Long")
    label.new(bar_index, high, style=label.style_label_up, text="Exit Long", color=color.red)

if (strategy.position_size < 0 and long_condition)
    strategy.close("Short")
    label.new(bar_index, low, style=label.style_label_down, text="Exit Short", color=color.green)