В процессе загрузки ресурсов... загрузка...

Многопоказательная тенденция после стратегии с оптимизацией прибыли

Автор:Чао Чжан, Дата: 2024-12-11 17:22:57
Тэги:SARATRMACDSMAДМИADX

img

Обзор

Эта стратегия - это торговая система, следующая за трендом, которая сочетает в себе несколько технических индикаторов. Она в основном использует параболический SAR, простую скользящую среднюю (SMA) и индекс направленного движения (DMI) для определения рыночных тенденций и точек входа, оптимизируя выход через процентные целевые показатели прибыли и дивергенцию MACD. Основная концепция заключается в том, чтобы ввести позиции после подтверждения сильных тенденций и выйти при достижении заданных целей прибыли или при появлении сигналов об обратном тренде.

Принципы стратегии

Стратегия использует многоуровневый механизм фильтрации:

  1. Первоначальные торговые сигналы фиксируются посредством перекрестных SAR
  2. Общее направление тренда определяется с использованием 50-периодного SMA
  3. Индикатор DMI подтверждает силу и направление тренда
  4. Условия входа требуют: пересечение цены выше SAR, цена выше SMA и бычий DMI.
  5. Механизм двойного выхода: целевая прибыль 3% или MACD bearish crossover
  6. Показатель ATR для отсчета волатильности рынка

Преимущества стратегии

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

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

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

Руководство по оптимизации

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Swing Trading Strategy with DMI", overlay=true)

// Define parameters
sarStart = input.float(0.02, title="SAR Start")
sarIncrement = input.float(0.02, title="SAR Increment")
sarMax = input.float(0.2, title="SAR Max")
atrLength = input.int(10, title="ATR Length")
macdShort = input.int(12, title="MACD Short Length")
macdLong = input.int(26, title="MACD Long Length")
macdSignal = input.int(9, title="MACD Signal Length")
smaLength = input.int(50, title="SMA Length")
dmiLength = input.int(14, title="DMI Length")
adxSmoothing = input.int(14, title="ADX Smoothing") // Smoothing period for ADX
targetProfitPercentage = input.float(3.0, title="Target Profit Percentage")

// Calculate SAR
sar = ta.sar(sarStart, sarIncrement, sarMax)

// Calculate ATR
atr = ta.atr(atrLength)

// Calculate MACD
[macdLine, macdSignalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)

// Calculate SMA
sma = ta.sma(close, smaLength)
bullishTrend = close > sma

// Calculate DMI
[plusDI, minusDI, adx] = ta.dmi(dmiLength, adxSmoothing) // Specify ADX smoothing period

// Determine if DMI is bullish
dmiBullish = plusDI > minusDI

// Define buy signal
buySignal = ta.crossover(close, sar) and bullishTrend and dmiBullish

// Track buy price and position state
var float buyPrice = na
var bool inPosition = false

// Enter position
if (buySignal and not inPosition)
    buyPrice := close
    inPosition := true
    strategy.entry("Buy", strategy.long)

// Define target price (3% above the buy price)
targetPrice = na(buyPrice) ? na : buyPrice * (1 + targetProfitPercentage / 100)

// Define MACD sell signal
macdSellSignal = ta.crossunder(macdLine, macdSignalLine)

// Define sell signal
sellSignal = inPosition and (close >= targetPrice or macdSellSignal)

// Exit position
if (sellSignal)
    inPosition := false
    strategy.exit("Sell", "Buy", limit=targetPrice)

// Plot SAR on the chart
plot(sar, color=color.red, style=plot.style_cross, linewidth=2)

// Plot SMA (optional, for visualizing the trend)
plot(sma, color=color.blue, title="SMA")

// Plot DMI +DI and -DI
plot(plusDI, color=color.green, title="+DI")
plot(minusDI, color=color.red, title="-DI")

// Plot buy signal on the chart
//plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")

// Plot sell signal on the chart
//plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Optional: Plot background color for buy and sell signals
bgcolor(buySignal ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(sellSignal ? color.new(color.red, 90) : na, title="Sell Signal Background")


Связанные

Больше