Estrategia de seguimiento de tendencias basada en la nube de ICHIMOKU y el indicador STOCH

El autor:¿ Qué pasa?, Fecha: 2023-11-15 11:19:29
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el indicador de patrón del gráfico de la nube ICHIMOKU y el indicador aleatorio STOCH para determinar y rastrear tendencias.

Principio de la estrategia

La estrategia evalúa principalmente la dirección de la tendencia actual y las situaciones de sobrecompra/sobreventa a través del gráfico de nubes ICHIMOKU y el indicador STOCH.

Cuando la Línea de Conversión cruza por encima de la Línea de Base y el indicador de Stoch rebota desde el área de sobreventa, se considera una tendencia alcista y la estrategia toma una dirección alcista.

En el código, la línea de conversión se define como la media de los precios más altos y más bajos de las últimas barras N1; La línea de base se define como la media de los precios más altos y más bajos de las últimas barras N2. Se genera una señal alcista cuando la línea de conversión cruza por encima de la línea de base.

El indicador de Stoch define las líneas de umbral de sobrecompra y sobreventa, así como los parámetros de suavizado K y D. Se genera una señal alcista cuando el Stoch rebota desde el área de sobreventa, y se genera una señal bajista cuando vuelve desde el área de sobrecompra.

Al combinar los dos indicadores, la estrategia determina la dirección de la tendencia.

Análisis de ventajas

La estrategia combina indicadores de patrón gráfico y indicadores de sobrecompra/sobreventa para determinar eficazmente la dirección de la tendencia.

En comparación con el uso de un único indicador de evaluación de tendencias, esta estrategia tiene en cuenta de manera exhaustiva tanto las situaciones de tendencia como las situaciones de exceso y puede determinar con mayor precisión el momento de entrada.

El gráfico de la nube ICHIMOKU puede identificar tendencias a medio y largo plazo, mientras que el indicador Stoch puede descubrir situaciones de sobrecompra / sobreventa a corto plazo.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. El riesgo de fallo del indicador en caso de eventos de cisne negro.

  2. Hay un cierto retraso, que puede perder parte de la tendencia o revertir las posiciones de apertura.

  3. El juicio combinado de múltiples factores tiene cierta subjetividad, y la configuración incorrecta de parámetros puede causar errores.

  4. La alta frecuencia de negociación puede afectar a las ganancias debido a los costes de transacción.

Medidas de optimización correspondientes:

  1. Combinar los acontecimientos noticiosos para evitar el comercio a ciegas durante los principales acontecimientos políticos.

  2. Acortar adecuadamente los parámetros del ciclo para reducir la probabilidad de retraso.

  3. Optimizar los parámetros a través de backtesting para mejorar los ajustes científicos.

  4. Aumentar adecuadamente los rangos de toma de ganancias y de parada de pérdidas para reducir la frecuencia de operaciones.

Direcciones de optimización

Las principales direcciones de optimización para esta estrategia son:

  1. Optimizar los parámetros del ciclo de la línea de conversión ICHIMOKU y la línea de base para adaptarse mejor a las diferentes características del mercado.

  2. Optimizar los parámetros de suavizado K, D y los valores de umbral de sobrecompra/sobreventa del indicador Stock.

  3. Aumentar otros indicadores para formar un modelo multifactorial y mejorar la fiabilidad del sistema.

  4. Optimizar los puntos de toma de ganancias y de parada de pérdidas para reducir la frecuencia de negociación y garantizar la rentabilidad.

  5. Añadir un módulo para juzgar emergencias y evitar fallas durante eventos importantes.

Resumen de las actividades

Esta estrategia combina los gráficos de la nube ICHIMOKU y los indicadores de Stoch para hacer juicios integrales sobre la dirección de la tendencia y las situaciones de sobrecompra / sobreventa, que pueden realizar un seguimiento efectivo de los mercados de tendencia.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ICHI + STOCH V1", overlay=true)
length = input.int(20, minval=1)
smoothK = input(5)
smoothD = input(3)
OverBought = input(25)
OverSold = input(65)
Profit = input(1800)
Stop = input(1200)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k,d)
cu = ta.crossunder(k,d)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")
conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))
TREND = ta.ema(math.avg(leadLine1,leadLine2),displacement)
//plot(conversionLine, color=#2962FF, title="Conversion Line")
//plot(baseLine, color=#B71C1C, title="Base Line")
//plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
plot(TREND, color=#2962FF, title="TREND")
p1 = plot(leadLine1,style=plot.style_line, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")

p2 = plot(leadLine2,style=plot.style_line, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
close_price = ta.sma(close,1)
pc = plot(close_price,style=plot.style_line, color=#2a0ab9,
	 title="Price Close")
if (not na(k) and not na(d))
	if (co and k < OverSold)and(close_price > TREND)
		strategy.entry("BUY order", strategy.long, comment="BUY order")
		strategy.exit("exitBUY", "BUY order", profit = Profit, loss = Stop)
	if (cu and k > OverBought)and(close_price < TREND)
		strategy.entry("SELL order", strategy.short, comment="SELL order")
		strategy.exit("exitSELL", "SELL order", profit = Profit, loss = Stop)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Más.