En la carga de los recursos... Cargando...

Estrategia de negociación dinámica de toma de ganancias y parada de pérdidas basada en tres velas bajistas consecutivas y promedios móviles

El autor:¿ Qué pasa?, fecha: 2024-05-09 16:42:35
Las etiquetas:La SMAEl EMA

img

Resumen general

Esta estrategia de negociación se basa en el patrón de tres velas bajistas consecutivas y un sistema de promedio móvil para determinar las señales de negociación. Cuando el precio está por encima del promedio móvil de 200 días y hay tres velas bajistas consecutivas, se abre una posición larga. La estrategia gestiona el riesgo comercial a través de niveles dinámicos de toma de ganancias y stop loss, que están determinados por la posición del promedio móvil a corto plazo y el cambio porcentual en el precio. La estrategia solo opera dentro de un intervalo de tiempo especificado.

Principio de la estrategia

  1. Cuando aparece un número especificado (por defecto es 3) de velas bajistas consecutivas, se considera una señal larga.
  2. Utilice dos promedios móviles para ayudar a determinar la tendencia y el momento de las operaciones, con configuraciones predeterminadas de promedios móviles de 10 días y 200 días.
  3. Establecer niveles dinámicos de toma de ganancias y stop loss. El nivel de toma de ganancias es un cierto porcentaje (default 1.5%) por encima del precio de entrada, y el nivel de stop loss es un cierto porcentaje (default 1%) por debajo del precio de entrada.
  4. Otra condición para cerrar una posición es cuando la posición de precio en relación con la media móvil de 10 días cambia.
  5. La estrategia solo se ejecuta dentro de un intervalo de tiempo especificado, determinado por las fechas de inicio y finalización.

Ventajas estratégicas

  1. Al combinar los patrones de precios y un sistema de media móvil, puede capturar las oportunidades de tendencia relativamente bien.
  2. A través de niveles dinámicos de toma de ganancias y stop loss, el riesgo y la recompensa se pueden controlar de manera flexible.
  3. El uso de cambios en la posición de la media móvil a corto plazo como señal para cerrar posiciones puede responder rápidamente a reversos repentinos de precios.
  4. La especificación de un intervalo de tiempo de negociación puede evitar la negociación durante períodos especiales como los cierres de mercado o los días festivos, reduciendo el riesgo.

Riesgos estratégicos

  1. El patrón de velas bajistas consecutivas no puede determinar completamente una inversión de tendencia, y puede haber situaciones en las que el precio continúa subiendo después de velas bajistas consecutivas, causando el fracaso de la estrategia.
  2. Cuando la tendencia es muy fuerte, el nivel de toma de ganancias puede establecerse demasiado bajo, lo que conduce a una salida prematura; cuando aumenta la volatilidad, el nivel de stop loss puede estar demasiado cerca, lo que conduce a paradas frecuentes.
  3. La evaluación de la posición de la media móvil a corto plazo puede retrasarse, especialmente cuando los precios cambian rápidamente, y la mejor oportunidad de cierre puede haberse perdido.
  4. La estrategia carece de medidas de gestión de posiciones y de control de riesgos. El punto de entrada y el tamaño de la posición son fijos, lo que puede dar lugar a un riesgo excesivo en una sola operación.

Direcciones para la optimización de la estrategia

  1. Se pueden introducir más indicadores técnicos para ayudar en el juicio, como el MACD y el RSI, para mejorar la fiabilidad de las señales.
  2. Optimizar el método de cálculo de los niveles de toma de ganancias y stop-loss, como el uso de ATR o volatilidad para ajustar dinámicamente, o combinar los niveles de soporte y resistencia para establecer.
  3. Para las señales de cierre, considere utilizar más condiciones de confirmación, como cambios en el volumen de operaciones, ratios de posiciones largas y cortas, etc., para evitar señales falsas.
  4. Introducir medidas de gestión de posiciones y control de riesgos, como ajustar el tamaño de las posiciones de cada operación en función del saldo de la cuenta y del nivel de riesgo, y establecer límites generales de riesgo.
  5. Para los parámetros, como el número de velas bajistas consecutivas y los períodos de media móvil, se pueden realizar pruebas de optimización para encontrar la mejor combinación de parámetros.

Resumen de las actividades

Esta estrategia de negociación determina las oportunidades de negociación de tendencia a través del patrón de velas bajistas consecutivas y un sistema de promedio móvil, al tiempo que controla el riesgo a través de niveles dinámicos de toma de ganancias y stop loss y cambios en la posición de la media móvil a corto plazo. La estrategia tiene una lógica clara y es adecuada para los operadores que buscan capturar tendencias a medio y largo plazo. Sin embargo, la estrategia también tiene algunas limitaciones, como la confiabilidad de las señales, el establecimiento de niveles de toma de ganancias y stop loss y la gestión de posiciones, que aún tienen espacio para la optimización. En la aplicación práctica, es necesario hacer ajustes y mejoras apropiados a la estrategia de acuerdo con las características del mercado y las preferencias personales de riesgo, y controlar estrictamente los riesgos.


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

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)


Relacionados

Más.