Стратегия динамического стоп-лосса с несколькими индикаторами, основанная на подтверждении тренда

SMA MACD ADX Swing Low
Дата создания: 2025-02-20 11:19:58 Последнее изменение: 2025-02-20 11:19:58
Копировать: 2 Количество просмотров: 323
2
Подписаться
319
Подписчики

Стратегия динамического стоп-лосса с несколькими индикаторами, основанная на подтверждении тренда Стратегия динамического стоп-лосса с несколькими индикаторами, основанная на подтверждении тренда

Обзор

Это стратегия отслеживания трендов, объединяющая несколько технических индикаторов, в основном через синхронную комбинацию трех индикаторов SMA (Simple Moving Average), MACD (Moving Average Convergence Spread Average) и ADX (Average Trend Index), которые торгуются на уровне круговой линии. Эта стратегия использует динамический механизм остановки убытков для оптимизации управления риском и более точного контроля позиций путем идентификации колебательных низких (Swing Low).

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

Основная логика стратегии основана на механизме тройной проверки:

  1. Судя по направлению общей тенденции по SMA ((30), цены выше средней линии представляют собой восходящую тенденцию
  2. Используйте MACD ((9,18,9) для захвата ценовой энергии, требуя, чтобы MACD-линия была выше сигнальной линии и была положительной
  3. Используя ADX ((14) для подтверждения силы тренда, ADX больше 25 означает, что тренд достаточно
  4. Открыть позицию, если выполнить все три условия
  5. Динамическая остановка, которая устанавливается с помощью идентификации второстепенных низких точек и ликвидации, когда цена падает ниже SMA

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

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

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

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

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

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

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

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

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

//@version=5
strategy("Invest SMA|MACD|ADX Long Weekly Strategy (BtTL)", overlay=true)

// SMA Inputs
smaLength = input.int(30, title="SMA Länge")
// MACD Inputs
macdFastLength = input.int(9, title="MACD schnelle Periode")
macdSlowLength = input.int(18, title="MACD langsame Perside")
macdSignalLength = input.int(9, title="MACD Signal Smoothing")
//ADX Inputs
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Länge")

// SMA-Berechnung
smaValue = ta.sma(close, smaLength)
isAboveSMA = close > smaValue
isBelowSMA = close < smaValue

// MACD-Berechnung
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
isMACDBuy = macdLine > signalLine and macdLine > 0

// Swing-Low Berechnung (5-Kerzen)
isSwingLow = low[2] > low[1] and low[3] > low[1] and low[1] < low and low[1] < low[4]
var float lastSwingLow = na
var float secondLastSwingLow = na

// Wenn ein neuer Swing-Low gefunden wird
if (isSwingLow[1])
    secondLastSwingLow := lastSwingLow
    lastSwingLow := low[1]

//ADX ermitteln
[pDI,mDI,ADX] = ta.dmi(dilen, adxlen)
IsInTrend = ADX > 25

// Einstiegskondition mit MACD und SMA
longCondition = isAboveSMA and isMACDBuy and IsInTrend
if (longCondition)
    strategy.entry("Long", strategy.long)

// Ausstiegskondition am vorletzten Swing-Low
if (isBelowSMA and na(secondLastSwingLow) == false)
    strategy.exit("Exit", from_entry="Long", stop=secondLastSwingLow)

// Reset bei Position schließen
if(strategy.position_size <= 0)
    secondLastSwingLow := na
    lastSwingLow := na

// Plots
plot(smaValue, title="SMA 30", color=#063eda, linewidth=2)
plot(na(lastSwingLow) ? na : lastSwingLow, title="Last Swing Low", color=#ffb13b, linewidth=1, style=plot.style_circles)
plot(na(secondLastSwingLow) ? na : secondLastSwingLow, title="Second Last Swing Low", color=color.red, linewidth=1, style=plot.style_circles)