Динамическая стратегия стоп-лосса, следующая за трендом, с использованием двойной фильтрации RSI и MACD

RSI MACD SL (Stop Loss) TA (Technical Analysis)
Дата создания: 2025-02-20 16:50:43 Последнее изменение: 2025-02-20 16:50:43
Копировать: 0 Количество просмотров: 289
2
Подписаться
319
Подписчики

Динамическая стратегия стоп-лосса, следующая за трендом, с использованием двойной фильтрации RSI и MACD Динамическая стратегия стоп-лосса, следующая за трендом, с использованием двойной фильтрации RSI и MACD

Обзор

Эта стратегия является системой отслеживания трендов, основанной на фильтрации двойных индикаторов MACD и RSI, с интеграцией динамического стоп-механизма. Эта стратегия в основном генерирует торговые возможности через перекрестные сигналы MACD и использует RSI в качестве вторичного подтверждения, в то же время вводит процентные стопы для контроля риска.

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

Стратегия использует MACD (<12,26,9) и RSI (<14) в качестве основных индикаторов. Входные сигналы должны одновременно удовлетворять двум условиям: MACD Gold Fork, когда RSI находится в зоне перепродажи (<40 по умолчанию), и MACD Dead Fork, когда RSI находится в зоне перекупа (<59 по умолчанию). Система также устанавливает динамический стоп-лосс в 3%, который автоматически сглаживает позиции, чтобы контролировать риск, когда цена движется в неблагоприятном направлении сверх установленной процентной доли. Кроме того, стратегия включает в себя временный фильтр, позволяющий пользователю устанавливать определенные временные рамки торговли.

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

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

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

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

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

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

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

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © eagle916
//@version=5
strategy("EAG MACD + RSI Strategy",overlay=true, initial_capital = 300, default_qty_value = 10, default_qty_type = "percent_of_equity", commission_type=strategy.commission.percent, commission_value=0.1)


// Input para el RSI
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(59, title="RSI Overbought Level", minval=1, maxval=100)
rsi_oversold = input.int(40, title="RSI Oversold Level", minval=1, maxval=100)

// Input para el MACD
macd_length = input.int(12, title="MACD Length", minval=1)
macd_overbought = input.int(26, title="MACD Overbought Level", minval=1, maxval=100)
macd_signal = input.int(9, title="MACD Signal Level", minval=1, maxval=100)

// Input para el porcentaje de pérdida (stop loss)
stop_loss_percent = input.float(3.0, title="Porcentaje de Stop Loss (%)", minval=0.1, step=0.1)

// Calcular RSI
rsi_value = ta.rsi(close, rsi_length)

// Calcular MACD
[macdLine, signalLine, _] = ta.macd(close, macd_length, macd_overbought, macd_signal)
macd_crossup = ta.crossover(macdLine, signalLine)   // Cruce al alza del MACD
macd_crossdown = ta.crossunder(macdLine, signalLine) // Cruce a la baja del MACD

// Condiciones de compra y venta
buy_condition = macd_crossup and rsi_value <= rsi_oversold
sell_condition = macd_crossdown and rsi_value >= rsi_overbought


// Registrar precio de entrada
var float entry_price = na
if strategy.position_size == 0
    entry_price := na

// Mostrar señales de compra y venta en la gráfica principal
plotshape(series=buy_condition, title="Señal de Compra", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Compra debajo de la vela
plotshape(series=sell_condition, title="Señal de Venta", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Venta encima de la vela

// Órdenes de estrategia
if buy_condition 
    strategy.entry("Compra", strategy.long)
    entry_price := close
if sell_condition 
    strategy.entry("Venta", strategy.short)
    entry_price := close

// Calcular el precio de stop loss
long_stop_loss = entry_price * (1 - stop_loss_percent / 100)
short_stop_loss = entry_price * (1 + stop_loss_percent / 100)

// Cerrar posición si el precio va en contra el porcentaje definido por el usuario
if strategy.position_size > 0 and close < long_stop_loss
    strategy.close("Compra", comment="Stop Loss Compra")

if strategy.position_size < 0 and close > short_stop_loss
    strategy.close("Venta", comment="Stop Loss Venta")