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

EMA MA BREAKOUT
Дата создания: 2025-02-24 09:33:11 Последнее изменение: 2025-02-27 16:50:42
Копировать: 1 Количество просмотров: 347
2
Подписаться
319
Подписчики

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

Обзор

Стратегия является системой торговли, которая отслеживает тенденции, основанные на двухуровневых скользящих средних (EMA). Стратегия использует две линии EMA с 44-ми и 200-ми циклами, чтобы определить направление торговли в сочетании с ценовыми прорывными сигналами. При этом интегрирован механизм управления рисками, включая динамическое расчетные позиции и мобильные стоп-лоры.

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

Основная логика стратегии основана на взаимосвязи цены с двумя линиями EMA. Используются 44-циклические EMA для формирования верхних и нижних каналов, а 200-циклические EMA - как фильтры для долгосрочных тенденций. Система генерирует многосигналы, когда цена закрытия пробивает поверхнюю EMA и удовлетворяет условиям фильтрации 200 EMA. Система генерирует пустые сигналы, когда цена закрытия падает поверхнюю EMA и удовлетворяет условиям фильтрации 200 EMA.

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-25 00:00:00
end: 2024-03-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("RENTABLE Dual EMA Breakout TSLA ", overlay=true)

// Inputs for EMA lengths and risk per trade
length = input(44, title="EMA Length")
longTermLength = input(200, title="Long-Term EMA Length")
riskPerTrade = input.float(1.0, title="Risk per Trade (%)", minval=0.1, maxval=10.0)

// Additional inputs for strategy customization
useFilter = input.bool(true, title="Use 200 EMA Filter")
tradeDirection = input.string("Both", title="Trade Direction", options=["Long", "Short", "Both"])

// EMAs based on the high and low prices and long-term EMA
emaHigh = ta.ema(high, length)
emaLow = ta.ema(low, length)
ema200 = ta.ema(close, longTermLength)

// Plotting EMAs on the chart
plot(emaHigh, color=color.green, title="High EMA")
plot(emaLow, color=color.red, title="Low EMA")
plot(ema200, color=color.blue, title="200 EMA")

// Entry conditions with optional EMA filter
longCondition = close > emaHigh and (useFilter ? close > ema200 : true)
shortCondition = close < emaLow and (useFilter ? close < ema200 : true)

// Calculating stop-loss and position size
longStop = emaLow
shortStop = emaHigh
riskPerShareLong = close - longStop
riskPerShareShort = shortStop - close
equity = strategy.equity

// Ensure risk per share is positive for calculations
riskPerShareLong := riskPerShareLong > 0 ? riskPerShareLong : 0.01
riskPerShareShort := riskPerShareShort > 0 ? riskPerShareShort : 0.01

positionSizeLong = (equity * riskPerTrade / 100) / riskPerShareLong
positionSizeShort = (equity * riskPerTrade / 100) / riskPerShareShort

// Ensure position sizes are positive before entering trades
if (longCondition and (tradeDirection == "Long" or tradeDirection == "Both") and positionSizeLong > 0)
    strategy.entry("Long", strategy.long, qty= positionSizeLong)
if (shortCondition and (tradeDirection == "Short" or tradeDirection == "Both") and positionSizeShort > 0)
    strategy.entry("Short", strategy.short, qty=positionSizeShort)

// Applying the stop-loss to strategy
strategy.exit("Exit Long", "Long", stop=longStop)
strategy.exit("Exit Short", "Short", stop=shortStop) 
////Usar en  1,2 3 4 HRS TSLA