Стратегия торговли по тренду и импульсу с несколькими индикаторами

RSI MACD MA EMA SMA
Дата создания: 2025-02-21 10:06:35 Последнее изменение: 2025-02-21 10:06:35
Копировать: 0 Количество просмотров: 379
2
Подписаться
319
Подписчики

Стратегия торговли по тренду и импульсу с несколькими индикаторами Стратегия торговли по тренду и импульсу с несколькими индикаторами

Обзор

Стратегия представляет собой динамическую торговую систему, отслеживающую тренд в сочетании с несколькими техническими показателями. Она определяет направление большого тренда, используя 200-дневную скользящую среднюю ((MA200), 50-дневную скользящую среднюю ((EMA50) для выявления возможностей для отклонения, и использует кросс-сигналы относительно слабых показателей ((RSI) и рассеянности тренда скользящих средних ((MACD) для определения времени входа. Стратегия также содержит механизм контроля риска, защищающий прибыль от убытков, устанавливая коэффициент прибыли от риска и отслеживая его.

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

Центральная логика стратегии заключается в повышении точности торгов с помощью многоуровневого механизма фильтрации. Во-первых, с помощью MA200 определяется основная тенденция рынка, которая определяется как многоуровневая тенденция, когда цена находится выше MA200, и наоборот, как воздушная тенденция. После определения направления тенденции стратегия ищет возможности для обратной связи около EMA50, требуя, чтобы цена достигла EMA50 за последние 5 циклов.

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

  1. Проверка совместных показателей для повышения надежности транзакций
  2. В сочетании с тенденциями и динамикой, мы можем запечатлеть ситуацию на большом уровне.
  3. Механизм обратного вызова снижает риск преследования
  4. Гибкий механизм хранения убытков, защищающий капитал, но не упускающий из виду крупные сделки
  5. Параметры регулируемы для различных рыночных условий
  6. Логика стратегии ясна, проста для понимания и реализации.

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

  1. Фильтрация по нескольким показателям может привести к упущенным возможностям
  2. На нестабильных рынках могут возникать частые ложные сигналы
  3. Движущиеся средние имеют отсталость, которая может повлиять на время входа
  4. Прибыль от фиксированного риска отличается от прибыли от фиксированного риска в различных рыночных условиях
  5. Слишком оптимизированные параметры могут привести к риску перенастройки

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

  1. Введение индикатора волатильности, динамическая корректировка риска/прибыли
  2. Повышение механизмов фильтрации рыночных условий, выявление тенденций и рыночных потрясений
  3. Оптимизация логики обратной связи для улучшения точности времени входа
  4. Добавить механизм подтверждения громкости для повышения надежности сигнала
  5. Разработка адаптивной системы параметров для повышения эффективности стратегии

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

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

Исходный код стратегии
/*backtest
start: 2024-02-21 00:00:00
end: 2024-08-10 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Trend-Following Momentum Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)

// PARAMETERS
lengthMA200 = input(200, title="200-day MA Length")
lengthEMA50 = input(50, title="50-day EMA Length")
rsiLength = input(14, title="RSI Length")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalLength = input(9, title="MACD Signal Length")
riskRewardRatio = input(1.5, title="Risk-Reward Ratio")
useTrailingStop = input(true, title="Use Trailing Stop?")
trailingPercent = input(1.0, title="Trailing Stop (%)") / 100

// INDICATORS
ma200 = ta.sma(close, lengthMA200) // 200-day MA
ema50 = ta.ema(close, lengthEMA50) // 50-day EMA
rsi = ta.rsi(close, rsiLength) // RSI
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)

// TREND CONDITIONS
bullishTrend = close > ma200
bearishTrend = close < ma200

// PULLBACK CONDITION
recentPullbackLong = ta.barssince(close < ema50) < 5 // Price touched EMA50 in last 5 bars
recentPullbackShort = ta.barssince(close > ema50) < 5 // Price touched EMA50 in last 5 bars

// ENTRY CONDITIONS
longEntry = bullishTrend and ta.crossover(macdLine, signalLine) and rsi > 50 and recentPullbackLong
shortEntry = bearishTrend and ta.crossunder(macdLine, signalLine) and rsi < 50 and recentPullbackShort

// EXECUTE TRADES
if longEntry
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", limit=close * (1 + riskRewardRatio), stop=close * (1 - (1 / (1 + riskRewardRatio))), trail_price=useTrailingStop ? close * (1 - trailingPercent) : na)

if shortEntry
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", limit=close * (1 - riskRewardRatio), stop=close * (1 + (1 / (1 + riskRewardRatio))), trail_price=useTrailingStop ? close * (1 + trailingPercent) : na)

// PLOT INDICATORS
plot(ma200, title="200-day MA", color=color.blue, linewidth=2)
plot(ema50, title="50-day EMA", color=color.orange, linewidth=2)