Sistema de negociación de nivel de soporte dinámico de marco temporal dual

SMA EMA
Fecha de creación: 2024-12-05 16:44:56 Última modificación: 2024-12-05 16:44:56
Copiar: 0 Número de Visitas: 366
1
Seguir
1617
Seguidores

Sistema de negociación de nivel de soporte dinámico de marco temporal dual

Descripción general

La estrategia es un sistema de comercio de posiciones de soporte dinámico basado en un marco de tiempo doble, que opera mediante la combinación de señales cruzadas de las líneas medias SMA y EMA en el marco de tiempo de la línea semanal y de la línea diaria. El sistema utiliza el soporte generado entre las líneas medias para identificar las tendencias del mercado y las oportunidades de negociación, y mejora la precisión de las operaciones mediante la confirmación de señales en dos períodos de tiempo diferentes. La estrategia utiliza un método de gestión de posición porcentual y considera los costos de negociación y los factores de deslizamiento.

Principio de estrategia

El principio central de la estrategia es determinar las señales de negociación mediante la supervisión de la relación entre el cruce y la posición de la línea media en dos períodos de tiempo:

  1. El ciclo largo (periodo) utiliza el SMA de 20 semanas y el EMA de 21 semanas, el ciclo corto (periodo) utiliza el SMA de 50 días y el EMA de 51 días
  2. En períodos largos, la EMA produce una señal de paridad cuando cruza la SMA hacia arriba y una señal de paridad cuando cruza hacia abajo.
  3. En el ciclo corto, se produce una señal de multiplicación cuando el EMA cruza el SMA hacia arriba y el EMA de ciclo corto está por encima del EMA de ciclo largo
  4. Cuando se producen señales de vacío en períodos cortos o de cruce de la línea media hacia abajo en períodos largos, el sistema elimina todos los polinomios
  5. La estrategia se ejecuta en un rango de tiempo determinado, más allá de la posición automática de liquidación

Ventajas estratégicas

  1. Mecanismo de confirmación múltiple: confirmación de la señal a través de dos períodos de tiempo, reduciendo el efecto de la falsa señal
  2. Las bandas de soporte dinámicas: las bandas de soporte que se forman entre las líneas medias se adaptan dinámicamente a los cambios en el mercado
  3. Gestión de riesgos: incluye consideraciones de costos de transacción y puntos de deslizamiento, usando gestión de posiciones porcentual
  4. Adaptabilidad: Las correas de soporte se ajustan automáticamente a las fluctuaciones del mercado
  5. Las reglas de operación son claras: las condiciones de entrada y salida son claras, fáciles de ejecutar y medir

Riesgo estratégico

  1. Riesgo de mercado en movimiento: Falsa señal frecuente en mercados en movimiento horizontal
  2. Riesgo de atraso: el indicador de la línea media tiene un cierto atraso en sí mismo y puede perder el mejor punto de entrada
  3. Sensibilidad de parámetros: la elección del ciclo de la línea media tiene un mayor impacto en el rendimiento de la estrategia
  4. Dependencia del entorno del mercado: las estrategias tienen un buen desempeño en mercados de tendencia, pero pueden tener un mal desempeño en mercados de gran volatilidad
  5. Riesgo de gestión de fondos: las posiciones en porcentajes fijos pueden ser excesivamente arriesgadas en ciertas condiciones de mercado

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volatilidad: Considere agregar indicadores de volatilidad como el ATR para ajustar dinámicamente el tamaño de la posición
  2. Optimización de la selección de parámetros: se puede optimizar el rendimiento del sistema a través de la medición de parámetros de línea media de diferentes períodos de tiempo
  3. Aumentar el filtro de entornos de mercado: agregar indicadores de intensidad de tendencia para filtrar entornos de mercado inadecuados
  4. Mecanismos de detención de pérdidas: considerar la adición de detención móvil o fija para controlar aún más el riesgo
  5. Optimización de la gestión de posiciones: el tamaño de las posiciones se puede ajustar dinámicamente en función de la intensidad de la señal y las fluctuaciones del mercado

Resumir

La estrategia se basa en la combinación de señales de cruce de línea uniforme de diferentes períodos de tiempo para construir un sistema de negociación relativamente estable. Identifica las tendencias del mercado mediante el concepto de la banda de apoyo y utiliza mecanismos de confirmación múltiple para mejorar la precisión de las transacciones. El diseño de la estrategia tiene en cuenta diversos factores en la negociación real, incluidos los costos de negociación, el deslizamiento y la gestión del tiempo.

Código Fuente de la Estrategia
/*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()