Estrategia comercial de seguimiento de tendencias y gestión de riesgos con media móvil dual

EMA SMA
Fecha de creación: 2025-02-21 09:36:33 Última modificación: 2025-02-27 17:18:43
Copiar: 1 Número de Visitas: 330
2
Seguir
319
Seguidores

Estrategia comercial de seguimiento de tendencias y gestión de riesgos con media móvil dual Estrategia comercial de seguimiento de tendencias y gestión de riesgos con media móvil dual

Descripción general

La estrategia es un sistema de negociación automatizado que combina el seguimiento de tendencias de varios períodos y la gestión de riesgos. Identifica oportunidades de negociación principalmente a través de un promedio móvil indexado (EMA) de dos períodos de tiempo, de 5 minutos y 1 minuto, mientras que aplica una configuración de pérdidas y ganancias de porcentaje fijo para controlar el riesgo. La estrategia es especialmente adecuada para los comerciantes de línea corta, especialmente aquellos que se centran en el seguimiento de tendencias.

Principio de estrategia

La lógica central de la estrategia se basa en el juicio de tendencias en dos períodos de tiempo:

  1. Utilizando el EMA de 200 ciclos de 5 minutos como filtro de tendencia principal, solo se permite hacer más cuando el precio está por encima de esta línea media y hacer menos cuando está por debajo de la línea media.
  2. En un ciclo de 1 minuto, usa una EMA de 20 ciclos como un disparador de entrada. Cuando el precio cruza la línea media hacia arriba, se activa una señal de multiplicación, y cuando cruza hacia abajo, se activa una señal de vacío.
  3. La administración de riesgos utiliza un método de proporción fija, con un stop loss del 0,5% del precio de entrada por transacción y un objetivo de ganancias del doble de la distancia de stop loss, lo que genera un riesgo-beneficio de 1: 2.

Ventajas estratégicas

  1. El análisis de múltiples períodos proporciona un juicio de tendencias más fiable y reduce el riesgo de falsas rupturas.
  2. El uso de un método de gestión de riesgos de proporción fija hace que la administración de fondos sea más regulada y sistematizada.
  3. La proporción de riesgo/beneficio es de 1:2, y es posible obtener ganancias incluso con un 40% de probabilidad de éxito.
  4. La lógica de la estrategia es simple, clara, fácil de entender y ejecutar.
  5. Las marcas de señales de negociación visuales son fáciles de verificar.

Riesgo estratégico

  1. Los mercados rápidos pueden provocar frecuentes falsas señales.
  2. En periodos de baja volatilidad, un stop loss del 0.5% puede ser demasiado ajustado.
  3. Dependiendo de la intersección equilánea puede haber un retraso.
  4. Las transacciones de alta frecuencia pueden generar costos de transacción más altos.
  5. El mercado podría enfrentar una reversión más grande en un cambio de tendencia rápido.

Dirección de optimización de la estrategia

  1. Introducción de un indicador de fluctuación para ajustar dinámicamente la distancia de parada.
  2. Aumentar las señales de confirmación de tráfico para mejorar la calidad de la entrada.
  3. Se puede considerar la inclusión de indicadores de fuerza de tendencia como el ADX para filtrar tendencias débiles.
  4. En el mercado horizontal, los indicadores de oscilación como el RSI se añaden para filtrar las señales.
  5. Establecimiento de la relación riesgo-beneficio de acuerdo con la dinámica de desarrollo de las diferentes características del mercado.

Resumir

Se trata de una estrategia de seguimiento de tendencias estructurada y con claridad lógica. Combinando análisis multi-ciclo y una estricta gestión de riesgos, la estrategia capta eficazmente las tendencias del mercado, al mismo tiempo que protege los fondos. Aunque hay cierto espacio para la optimización, el marco básico de la estrategia es sólido y adecuado para ser mejorado y personalizado como una estrategia básica.

Código Fuente de la Estrategia
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("Scalping Strategy: 1-min Entries with 5-min 200 EMA Filter", overlay=true, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=5, calc_on_every_tick=true)

// --- Higher Timeframe Trend Filter ---
// Get the 200-period EMA on a 5-minute timeframe
ema200_5 = request.security(syminfo.tickerid, "5", ta.ema(close, 200), lookahead=barmerge.lookahead_on)
plot(ema200_5, color=color.purple, title="5-min 200 EMA")

// --- Local (1-Minute) Indicators ---
// On a 1-minute chart, calculate a 20-period EMA for entry triggers
ema20_1 = ta.ema(close, 20)
plot(ema20_1, color=color.yellow, title="1-min 20 EMA")

// --- Entry Conditions ---
// For long entries:
//   - The overall trend is bullish: current close > 5-min 200 EMA
//   - The 1-min candle closes and crosses above its 20 EMA
longCondition = (close > ema200_5) and ta.crossover(close, ema20_1)

// For short entries:
//   - Overall bearish trend: current close < 5-min 200 EMA
//   - 1-min candle crosses below its 20 EMA
shortCondition = (close < ema200_5) and ta.crossunder(close, ema20_1)

// --- Risk Management Settings ---
// For scalping, use a tight stop loss. Here we set risk at 0.5% of the entry price.
var float riskPerc = 0.005  // 0.5% risk per trade

// Declare global variables for stop loss and take profit so they can be used outside the if-blocks
var float longStop  = na
var float longTP    = na
var float shortStop = na
var float shortTP   = na

// --- Trade Execution --- 
if (longCondition)
    entryPrice = close
    // Stop loss for long: 0.5% below entry
    longStop := entryPrice * (1 - riskPerc)
    // Take profit: twice the risk distance (1:2 risk-reward)
    longTP   := entryPrice + 2 * (entryPrice - longStop)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTP)

if (shortCondition)
    entryPrice = close
    // Stop loss for short: 0.5% above entry
    shortStop := entryPrice * (1 + riskPerc)
    // Take profit: twice the risk distance
    shortTP   := entryPrice - 2 * (shortStop - entryPrice)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", stop=shortStop, limit=shortTP)

// --- Visual Debug Markers ---
// Plot a green triangle below bars when a long signal is generated
plotshape(longCondition, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
// Plot a red triangle above bars when a short signal is generated
plotshape(shortCondition, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)