Estrategia de seguimiento de tendencias basada en Ichimoku Kinko Hyo


Fecha de creación: 2023-10-12 17:29:46 Última modificación: 2023-10-12 17:29:46
Copiar: 0 Número de Visitas: 665
1
Seguir
1617
Seguidores

Descripción general

La estrategia utiliza la línea de conversión, la línea base y las líneas delanteras y posteriores de la nube de líneas en el indicador Ichimoku Kinko Hyo para identificar la dirección de la tendencia de los precios y realizar operaciones de seguimiento de la tendencia. Haga más cuando el precio rompa la cima de la nube, haga vacío cuando rompa la base de la nube, alcance el punto de parada de la proporción de ganancias predeterminadas y alcance el punto de parada de la proporción de pérdidas predeterminadas.

Principio de estrategia

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

  • Línea de conversión (Tenkan-sen): Línea de conversión, que representa la tendencia a corto plazo, es el promedio de los precios más altos y más bajos de 9 períodos
  • Línea Base (Kijun-sen): Línea de referencia, que representa la tendencia a mediano plazo, es el promedio de los precios más altos y más bajos de 26 períodos
  • Leading Span A (Senkou Span A): Línea de paso A, promedio entre la línea de conversión y la línea de referencia
  • Leading Span B (Senkou Span B): Línea de Leading B, el promedio de los precios más altos y más bajos de 52 períodos

Cuando el precio sube a través de la nube frontal, haga más; cuando el precio baja a través de la nube frontal, haga un vacío. ConfigEntry y ExitReason abren posiciones al romper el techo y el fondo de la nube, respectivamente, y cierran las posiciones cuando alcanzan el porcentaje de ganancias y pérdidas.

Análisis de las ventajas

  • Utiliza el indicador Ichimoku para identificar la dirección de las tendencias y evitar ser engañado por los movimientos del mercado
  • Identificar los puntos de inflexión de la tendencia y mejorar la eficiencia de las transacciones mediante la penetración en la nube
  • Establezca un punto de parada para ayudar a aprovechar las oportunidades de ganancias y controlar los riesgos

Análisis de riesgos

  • El indicador Ichimoku está rezagado y podría haber perdido el punto óptimo para un cambio de tendencia
  • Se requiere un ajuste razonable de los ciclos de los parámetros, ya que un ajuste incorrecto de los ciclos, como la línea de conversión o la línea de referencia, puede causar señales falsas
  • El punto de parada es demasiado pequeño y puede detenerse prematuramente; el punto de parada es demasiado grande y corre el riesgo de que las pérdidas aumenten.

Dirección de optimización

  • Considere la posibilidad de mejorar la precisión en combinación con otras tendencias de identificación de indicadores
  • Ciclo de parámetros de optimización dinámica para adaptarse a diferentes ciclos y entornos de mercado
  • Configuración de un stop tracking para que los puntos de parada se ajusten a las fluctuaciones de los precios y evitar un stop prematuro
  • Considerar el desarrollo de una estrategia de stop-loss automática que ajuste el stop-loss a la volatilidad del mercado de manera inteligente

Resumir

La estrategia utiliza la identificación de tendencias en la nube de Ichimoku para realizar operaciones de seguimiento de tendencias de manera simple y eficiente. Aunque existe un cierto riesgo de retraso y falsas señales, se puede mejorar mediante la optimización de los parámetros, la mejora de la tecnología de detención de pérdidas y la combinación de otros indicadores. La estrategia es fácil de entender y implementar, es adecuada para que los principiantes la aprendan, y también puede servir de referencia para otras estrategias.

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