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

Sistema de negociación de soporte dinámico de doble marco de tiempo

El autor:¿ Qué pasa?, Fecha: 2024-12-05 16:44:56
Las etiquetas:La SMAEl EMA

img

Resumen general

Esta estrategia es un sistema de negociación de soporte dinámico de doble marco de tiempo que combina señales de cruce SMA y EMA en marcos de tiempo semanales y diarios. El sistema utiliza bandas de soporte formadas entre promedios móviles para identificar tendencias de mercado y oportunidades comerciales, mejorando la precisión de negociación a través de la confirmación de señales de dos períodos de tiempo diferentes. La estrategia emplea una gestión de posiciones basada en porcentajes y tiene en cuenta los costos de negociación y el deslizamiento.

Principios de estrategia

El principio básico gira en torno al seguimiento de los cruces de las medias móviles y las posiciones relativas en dos plazos:

  1. En el marco de tiempo largo (semanal) se utiliza la SMA de 20 semanas y la EMA de 21 semanas, en el marco de tiempo corto (diario) se utiliza la SMA de 50 días y la EMA de 51 días.
  2. En el marco temporal largo, se generan señales largas cuando la EMA cruza por encima de la SMA y las posiciones se cierran en cruces descendentes.
  3. En el marco temporal corto, las señales largas se producen cuando la EMA cruza la SMA y la EMA a corto plazo está por encima de la EMA a largo plazo.
  4. Todas las posiciones largas se cierran cuando el marco de tiempo corto genera señales cortas o el marco de tiempo largo muestra cruces a la baja
  5. La estrategia opera dentro de intervalos de tiempo especificados con cierre automático de la posición fuera de estos intervalos

Ventajas estratégicas

  1. Mecanismo de confirmación múltiple: Reduce las señales falsas mediante la confirmación de dos plazos
  2. Banda de soporte dinámico: las bandas de soporte entre las medias móviles se adaptan a los cambios del mercado
  3. Gestión integral del riesgo: incluye la consideración de los costes de negociación y el deslizamiento con el tamaño de las posiciones basado en el porcentaje
  4. Gran adaptabilidad: las bandas de apoyo se ajustan automáticamente a la volatilidad del mercado
  5. Reglas operativas claras: condiciones de entrada y salida bien definidas, fáciles de aplicar y pruebas posteriores

Riesgos estratégicos

  1. Riesgo de mercado inestable: puede generar frecuentes señales falsas en los mercados laterales
  2. Riesgo de retraso: las medias móviles presentan un retraso inherente, por lo que pueden faltar puntos de entrada óptimos.
  3. Sensibilidad de los parámetros: el rendimiento de la estrategia depende en gran medida de la selección del período de media móvil
  4. Dependencia del entorno del mercado: mejora en mercados de tendencia, pero puede tener dificultades en condiciones de alta volatilidad
  5. Riesgo de dimensionamiento de la posición: la posicionamiento en porcentaje fijo puede presentar un riesgo excesivo en determinadas condiciones de mercado

Direcciones de optimización

  1. Incorporar indicadores de volatilidad: considerar la posibilidad de añadir ATR para el dimensionamiento dinámico de las posiciones
  2. Optimización de la selección de parámetros: Prueba posterior de diferentes períodos de media móvil para optimizar el rendimiento del sistema
  3. Añadir filtros de entorno de mercado: aplicar indicadores de fuerza de tendencia para filtrar las condiciones de mercado inadecuadas
  4. Mejorar los mecanismos de stop-loss: considerar la adición de trailing o stop fijos para un mejor control del riesgo
  5. Mejorar la gestión de las posiciones: ajustar dinámicamente los tamaños de las posiciones en función de la fuerza de la señal y la volatilidad del mercado

Conclusión

Esta estrategia construye un sistema comercial relativamente robusto mediante la combinación de señales de cruce de promedio móvil de diferentes marcos de tiempo. Identifica las tendencias del mercado a través del concepto de banda de soporte y utiliza múltiples mecanismos de confirmación para mejorar la precisión de la negociación. El diseño de la estrategia considera varios factores comerciales prácticos, incluidos los costos comerciales, el deslizamiento y la gestión del tiempo.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")

lsmaLength = input.int(20, title="Long SMA Length", minval=1)
lemaLength = input.int(21, title="Long EMA Length", minval=1)
customLongTimeframe = input.timeframe("W", title="Long Timeframe")  // Khung thời gian dài
ssmaLength = input.int(50, title="Short SMA Length", minval=1)
semaLength = input.int(51, title="Short EMA Length", minval=1)
customShortTimeframe = input.timeframe("D", title="Short Timeframe")  // Khung thời gian ngắn

source = close

// Tính toán SMA và EMA cho khung thời gian dài
smaLong = ta.sma(source, lsmaLength)
emaLong = ta.ema(source, lemaLength)
outSmaLong = request.security(syminfo.tickerid, customLongTimeframe, smaLong)
outEmaLong = request.security(syminfo.tickerid, customLongTimeframe, emaLong)

// Tính toán SMA và EMA cho khung thời gian ngắn
smaShort = ta.sma(source, ssmaLength)
emaShort = ta.ema(source, semaLength)
outSmaShort = request.security(syminfo.tickerid, customShortTimeframe, smaShort)
outEmaShort = request.security(syminfo.tickerid, customShortTimeframe, emaShort)

// Plot các chỉ báo trên biểu đồ
smaPlotLong = plot(outSmaLong, color=color.new(color.red, 0), title='20w SMA (Long)')
emaPlotLong = plot(outEmaLong, color=color.new(color.green, 0), title='21w EMA (Long)')
smaPlotShort = plot(outSmaShort, color=color.new(color.red, 0), title='20d SMA (Short)')
emaPlotShort = plot(outEmaShort, color=color.new(color.green, 0), title='21d EMA (Short)')

// Fill vùng giữa các đường SMA và EMA
fill(smaPlotLong, emaPlotLong, color=color.new(color.orange, 75), fillgaps=true)
fill(smaPlotShort, emaPlotShort, color=color.new(color.orange, 75), fillgaps=true)

// Điều kiện long và short cho khung thời gian dài
longConditionLong = ta.crossover(outEmaLong, outSmaLong)
shortConditionLong = ta.crossunder(outEmaLong, outSmaLong)

// Điều kiện long và short cho khung thời gian ngắn
longConditionShort = ta.crossover(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong)
shortConditionShort = ta.crossunder(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong) // Điều kiện short khi EMA ngắn hạn cắt xuống dưới SMA ngắn hạn và EMA ngắn hạn cao hơn EMA dài hạn

// Kiểm tra điều kiện trong khoảng thời gian được chỉ định
inDateRange = true

// Nếu khung ngắn hạn xuất hiện tín hiệu short, ưu tiên đóng tất cả các lệnh Long
if shortConditionShort and inDateRange
    strategy.close_all()

// Nếu khung dài có tín hiệu short, đóng tất cả các lệnh Long
if shortConditionLong and inDateRange
    strategy.close_all()

// Nếu khung ngắn hạn có tín hiệu long và không có tín hiệu short từ khung dài, vào lệnh Long
if longConditionShort and not shortConditionLong and not shortConditionShort and inDateRange
    strategy.entry("Long", strategy.long)

// Đóng tất cả các lệnh khi không trong khoảng thời gian được chọn
if not inDateRange
    strategy.close_all()


Relacionados

Más.