Estrategia de seguimiento de tendencias de la línea de equilibrio de Ichimoku

El autor:¿ Qué pasa?, Fecha: 2023-10-12 17:29:46
Las etiquetas:

Resumen general

Esta estrategia utiliza la línea de conversión, la línea base y los límites de la nube del indicador Ichimoku Kinko Hyo para identificar la dirección de la tendencia e implementar operaciones de seguimiento de tendencia. Se hace largo cuando el precio se rompe por encima de la parte superior de la nube y se hace corto cuando el precio se rompe por debajo de la parte inferior de la nube. Se obtienen ganancias cuando se alcanza una proporción de ganancias preestablecida. Se reducen las pérdidas cuando se alcanza una proporción de pérdidas preestablecida.

Estrategia lógica

La estrategia utiliza principalmente las siguientes líneas de indicadores de Ichimoku:

  • Línea de conversión (Tenkan-sen): Representa la tendencia a corto plazo, calculada como la media del máximo más alto y del mínimo más bajo durante los últimos 9 períodos.
  • Línea de base (Kijun-sen): Representa la tendencia a medio plazo, calculada como la media del máximo más alto y del mínimo más bajo durante los últimos 26 períodos.
  • Velocidad de las líneas de conversión
  • Variación de las tasas de interés de los bancos centrales de los Estados miembros.

Se hace largo cuando el precio se rompe por encima de la nube y se hace corto cuando el precio se rompe por debajo de la nube. Las razones de entrada y salida se activan cuando el precio rompe la parte superior y inferior de la nube, respectivamente. Las salidas se activan cuando se alcanzan los ratios de ganancia o pérdida.

Análisis de ventajas

  • Utiliza Ichimoku para identificar la dirección de la tendencia, evitando señales falsas del ruido del mercado
  • La ruptura de las nubes arriba/abajo identifica los puntos de inversión de tendencia de manera eficiente
  • Los puntos de toma de ganancias y stop loss ayudan a bloquear las ganancias y controlar el riesgo

Análisis de riesgos

  • Ichimoku tiene retraso y puede perder los mejores puntos de entrada.
  • Mal ajuste de parámetros de líneas como Conversion Line podría causar señales falsas
  • Los riesgos de salida temprana demasiado ajustados; los riesgos demasiado flexibles pérdidas grandes

Direcciones de optimización

  • Considere combinar otros indicadores para mejorar la precisión
  • Optimización dinámica de parámetros para diferentes períodos y mercados
  • Utilizar el stop loss para ajustar las paradas en función de la acción del precio y evitar una salida anticipada
  • Desarrollar una estrategia automatizada de pérdidas y ganancias para ajustar de forma inteligente los puntos en función de la volatilidad

Resumen de las actividades

Esta estrategia utiliza la nube Ichimoku para identificar tendencias e implementar un seguimiento de tendencias simple. A pesar de algunos retrasos y señales falsas, las optimizaciones en parámetros, paradas y el uso de otros indicadores pueden mejorarla.


/*backtest
start: 2023-10-04 00:00:00
end: 2023-10-08 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Ichimoku Clouds////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////(VERSÃO 40.0)//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)",  minval=1)
periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)",  minval=1)
periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)",  minval=1)
deslocamento = input(defval=26, title="Deslocamento",  minval=1)

linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2
linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2
nivelAdiantadoA = (linhaDeConversao + linhaBase)/2
nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy.initial_capital = 50000
//Hardcoded quantity - strategy.entry(qty=)
capitalInicial = strategy.initial_capital
lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open

//Percentage input goal - strategy.exit(profit=)
percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1)
longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100
shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100

//Percentage input stop - strategy.exit(loss=)
percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1)
longStop = (strategy.position_avg_price * (percentStop/100)) * 100
shortStop = (strategy.position_avg_price * (percentStop/100)) * 100

strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop)
strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop)

plot(strategy.equity, title="Variação de capital", color=white)
//plot(strategy.position_size, color=red)

Más.