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

Estrategia de negociación basada en tres velas bajistas consecutivas y medias móviles dobles

El autor:¿ Qué pasa?, Fecha: 2024-05-14 17:30:35
Las etiquetas:La SMAEl SMA200

img

Resumen general

Esta estrategia es una estrategia de negociación basada en tres velas bajistas consecutivas y dos promedios móviles. La idea principal de la estrategia es: cuando haya tres velas bajistas consecutivas y el precio de cierre actual sea mayor que el promedio móvil de 200 días, abra una posición larga; cuando el promedio móvil de 10 días se cruce con el precio, o el precio alcance el nivel de toma de ganancias o stop-loss, cierre la posición. La estrategia solo se ejecuta dentro de un intervalo de tiempo especificado.

Principio de la estrategia

  1. Calcule el número de velas bajistas consecutivas. Si el precio de cierre disminuye, el número de velas bajistas consecutivas aumenta en 1; de lo contrario se restablece a 0.
  2. Calcule los promedios móviles de 10 días y 200 días.
  3. Determine si el precio de cierre actual es superior al promedio móvil de 10 días.
  4. Compruebe si se cumplen las condiciones de entrada: tres velas bajistas consecutivas, el tiempo actual se encuentra dentro del rango especificado y el precio de cierre actual es superior al promedio móvil de 200 días.
  5. Compruebe si se cumplen las condiciones de salida: la media móvil de 10 días se cruza con el precio o el precio alcanza el nivel de toma de ganancias o stop-loss.
  6. Si se cumplen las condiciones de entrada y no existe una posición actual, abrir una posición larga.
  7. Si se cumplen las condiciones de salida y existe una posición actual, cierre la posición.

Ventajas estratégicas

  1. Considera el movimiento de los precios y los factores de la media móvil, lo que le permite captar oportunidades tanto en mercados de tendencia como en mercados oscilantes.
  2. Establece los niveles de take-profit y stop-loss, que pueden controlar los riesgos de manera efectiva.
  3. Limita el intervalo de tiempo de ejecución de la estrategia, evitando riesgos excesivos durante determinados períodos específicos.
  4. La lógica del código es clara y legible, por lo que es fácil de entender y optimizar.

Riesgos estratégicos

  1. El juicio de velas bajistas consecutivas puede ser demasiado simple, provocando fácilmente señales falsas.
  2. El establecimiento de los niveles de toma de ganancias y de stop-loss puede no ser lo suficientemente flexible, lo que conduce a operaciones frecuentes o oportunidades perdidas cuando el mercado fluctúa mucho.
  3. No tiene en cuenta los eventos inesperados, las noticias importantes y otros factores no convencionales, lo que podría suponer riesgos adicionales.

Direcciones para la optimización de la estrategia

  1. Considerar la introducción de más indicadores técnicos, como el RSI y el MACD, para construir una lógica de juicio de señales más robusta.
  2. Optimizar el establecimiento de los niveles de toma de ganancias y de parada de pérdidas, introduciendo una toma de ganancias/parada de pérdidas o parada de pérdidas dinámicas basadas en indicadores de volatilidad como ATR.
  3. Estudiar el impacto de diferentes configuraciones de parámetros en la estrategia, como el número de velas bajistas consecutivas, períodos de promedio móvil, etc., para encontrar la combinación óptima de parámetros.
  4. Incorporar la gestión de posiciones para ajustar dinámicamente las posiciones en función de los diferentes entornos de mercado, mejorando la eficiencia de la utilización del capital.

Resumen de las actividades

Esta estrategia construye un modelo de negociación simple y fácil de entender a través de la combinación de velas bajistas consecutivas y promedios móviles dobles. Al mismo tiempo que captura oportunidades de tendencia, la estrategia también establece ciertas medidas de control de riesgos. Sin embargo, hay más espacio para la optimización en el juicio de señales y el control de riesgos. Al introducir más indicadores técnicos, optimizar la configuración de parámetros, implementar una gestión dinámica de ganancias/stop-loss y posiciones, la robustez y rentabilidad de la estrategia se pueden mejorar aún más.


/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 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.