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

Tendencia de Ichimoku siguiendo la estrategia

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

img

Resumen general

Esta estrategia está diseñada sobre la base del indicador Ichimoku para el seguimiento de tendencias y la negociación de ruptura de equilibrio, con el objetivo de capturar las tendencias de precios a medio y largo plazo para obtener beneficios constantes.

Estrategia lógica

La estrategia utiliza las cinco líneas de Ichimoku - Tenkan-sen, Kijun-sen, Senkou Span A, Senkou Span B y Chikou Span para determinar la tendencia del precio y los niveles de soporte / resistencia.

  1. Cuando el cruce cerrado sobre Kijun-sen y Kijun-sen no es plano, se activa una señal de compra.
  2. Cuando los cruces cerrados bajo Kijun-sen y Kijun-sen no son planos, se activa una señal de venta.
  3. Cuando el cierre está sobre la nube, la liquidez es buena para tomar posiciones.
  4. Cuando el cierre está por debajo de la nube, la liquidez es baja y se debe evitar tomar posiciones.
  5. Cuando Chikou Span cruza el cierre, se activa una señal de compra.
  6. Cuando Chikou Span cruza bajo el cierre, se activa una señal de venta.

Las señales de negociación anteriores se combinan para determinar el momento de entrada final.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Usar Ichimoku para determinar la tendencia puede filtrar el ruido del mercado y capturar tendencias a medio y largo plazo.
  2. La inclusión de la condición de nubes evita tomar posiciones con poca liquidez.
  3. Chikou Span actúa como confirmación para evitar una fuga falsa.
  4. Las reglas son simples y claras para su aplicación.

Análisis de riesgos

Los riesgos de esta estrategia incluyen:

  1. La configuración inadecuada de los parámetros puede dar lugar a la pérdida de oportunidades comerciales.
  2. El juicio de tendencia puede retrasarse cuando la tendencia muta, incapaz de cortar la pérdida a tiempo.
  3. Riesgo de pérdida más alto para las posiciones largas.

Estos riesgos pueden abordarse optimizando los parámetros, combinándolos con otros indicadores para determinar el cambio de tendencia y estableciendo un estricto stop loss.

Direcciones de optimización

La estrategia se puede optimizar aún más en los siguientes aspectos:

  1. Optimice los parámetros de Ichimoku para encontrar la mejor combinación.
  2. Añadir filtros de precio y volumen para evitar la desviación de la tendencia.
  3. Incorporar indicadores de volatilidad para identificar los puntos de inversión.
  4. Agregue modelos de aprendizaje automático para determinar el estado de la tendencia.

Resumen de las actividades

Esta estrategia aprovecha Ichimoku para determinar la tendencia de precios y las condiciones de liquidez para seguir la tendencia, lo que puede filtrar eficazmente el ruido y capturar tendencias de mediano a largo plazo con reducciones más pequeñas.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.EUR)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===
//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8)
buy=buy2 and buy3 or (buy1 and sellCompteur <=8)
plotchar(buy,char='B',size=size.small,color=lime)
plotchar(sell,char='S',size=size.small,color=orange)

//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

Más.