Стратегия стоп-профита и стоп-лосса с несколькими скользящими средними и пересечением RSI и динамической схемой ATR

SMA RSI ATR TP SL
Дата создания: 2025-02-21 13:44:39 Последнее изменение: 2025-02-21 13:44:39
Копировать: 0 Количество просмотров: 330
2
Подписаться
319
Подписчики

Стратегия стоп-профита и стоп-лосса с несколькими скользящими средними и пересечением RSI и динамической схемой ATR Стратегия стоп-профита и стоп-лосса с несколькими скользящими средними и пересечением RSI и динамической схемой ATR

Обзор стратегии

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

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

Основная логика стратегии основана на совокупности пяти ключевых условий:

  1. Цены перешагнули 20-циклический максимум в скользящем среднем
  2. Цены перешагнули 20-циклические минимумы
  3. Цены перешагнули 50-циклический максимум в скользящем среднем
  4. Цена пробилась за пределы 50-циклического минимума
  5. RSI ((7) показатель выше уровня 50

Стратегия создает сигнал покупки только тогда, когда эти пять условий удовлетворены одновременно. После вхождения в курс стратегия использует динамические уровни остановок и остановок на основе ATR, в которых остановка устанавливается в 1,5 раза ATR, а остановка - в 2,5 раза ATR. Такая конструкция позволяет автоматически корректировать параметры управления риском в зависимости от волатильности рынка.

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

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

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

  1. Одновременное выполнение нескольких требований может привести к упущению потенциальных возможностей для торговли.
  2. Частые пересечения средней линии цены могут спровоцировать чрезмерное количество торговых сигналов на рынке во время колебаний.
  3. Фиксированный ATR-коэффициент может быть недостаточно гибким в экстремальных рыночных условиях.
  4. Стратегия не учитывает фундаментальные рыночные факторы, и чисто технический анализ может потерпеть неудачу перед важными новостями.

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

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

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

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

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

//@version=5
strategy("Virat Bharat Auto Trade", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// **User-Defined Inputs for Customization**
smaLength20 = input(20, title="SMA High/Low 20 Length")
smaLength50 = input(50, title="SMA High/Low 50 Length")
rsiLength = input(7, title="RSI Length")
rsiLevel = input(50, title="RSI Crossover Level")
atrMultiplierSL = input(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input(2.5, title="ATR Multiplier for Target")

// **Defining the Indicators with Custom Inputs**
smaHigh20 = ta.sma(high, smaLength20)
smaLow20 = ta.sma(low, smaLength20)
smaHigh50 = ta.sma(high, smaLength50)
smaLow50 = ta.sma(low, smaLength50)
rsiValue = ta.rsi(close, rsiLength)
atrValue = ta.atr(14)  // ATR for Dynamic Stop Loss & Target

// **Conditions for Buy Signal**
condition1 = ta.crossover(close, smaHigh20)
condition2 = ta.crossover(close, smaLow20)
condition3 = ta.crossover(close, smaHigh50)
condition4 = ta.crossover(close, smaLow50)
condition5 = ta.crossover(rsiValue, rsiLevel)

// **Final Buy Signal (Only when all conditions match)**
buySignal = condition1 and condition2 and condition3 and condition4 and condition5

// **Buy Price, Stop Loss & Target**
buyPrice = close
stopLoss = buyPrice - (atrValue * atrMultiplierSL)  // Dynamic Stop Loss
target = buyPrice + (atrValue * atrMultiplierTP)  // Dynamic Target

// **Plot Buy Signal on Chart**
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small, text="BUY")

// **Plot Labels for Buy, Stop Loss & Target**
if buySignal
    label.new(x=bar_index, y=buyPrice, text="BUY @ " + str.tostring(buyPrice, format="#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=stopLoss, text="STOP LOSS @ " + str.tostring(stopLoss, format="#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=target, text="TARGET @ " + str.tostring(target, format="#.##"), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up, yloc=yloc.price)

// **Strategy Trading Logic - Automated Entry & Exit**
if buySignal
    strategy.entry("BUY", strategy.long)
    strategy.exit("SELL", from_entry="BUY", loss=atrValue * atrMultiplierSL, profit=atrValue * atrMultiplierTP)