La estrategia de la nube de Ichimoku

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

img

Resumen general

Esta es una estrategia de larga duración de la nube de Ichimoku. La estrategia juzga la dirección de la tendencia a través del indicador Ichimoku, combinado con patrones de línea K, promedios móviles y el indicador RSI estocástico para filtrar las señales y ir largo en mejores puntos de entrada cuando la tendencia sube.

Principio de la estrategia

Los principales criterios de evaluación de la estrategia son:

  1. La línea de conducción 1 de Ichimoku cruza por encima de la línea de conducción 2, lo que indica una tendencia al alza
  2. El precio de cierre de la línea K cruza por encima de la línea de referencia 1, cumpliendo con la condición de seguir la tendencia
  3. La línea K es una vela verde, la tendencia sube
  4. Cuando se habilitan las medias móviles, el MA rápido cruza el MA lento
  5. Cuando el RSI estocástico está habilitado, la línea %K cruza por encima de la línea %D

Cuando todas las condiciones anteriores se cumplan al mismo tiempo, la estrategia abrirá posiciones largas.

La estrategia utiliza principalmente la nube Ichimoku para determinar la dirección de la tendencia principal, combinada con indicadores auxiliares para filtrar las señales y ir largo en mejores puntos cuando la tendencia sube.

Ventajas de la estrategia

  1. Utilice la nube Ichimoku para determinar la tendencia principal, el backtest muestra una alta precisión
  2. Combinado con múltiples indicadores auxiliares para filtrar los puntos de entrada, puede mejorar significativamente la tasa de ganancia
  3. Estrategia de largo plazo, adecuada para monedas que se consideren en un mercado alcista
  4. Gran espacio para la optimización de parámetros, puede ajustar los parámetros del indicador para una mayor optimización

Riesgos de la estrategia

  1. Hay una probabilidad de que la nube Ichimoku juzgue la tendencia erróneamente.
  2. El punto de stop loss puede romperse durante cambios repentinos en el mercado, lo que conduce a pérdidas ampliadas
  3. Diseñado para mercados alcistas, no adecuado para monedas con signos ocultos de reversión de tendencia
  4. La configuración incorrecta de los parámetros puede dar lugar a entradas demasiado agresivas o acciones demasiado conservadoras.

Contramedidas:

  1. Combinar más indicadores para juzgar la tendencia, mejorar la precisión
  2. Establecer puntos razonables de detención de pérdidas para controlar estrictamente las pérdidas individuales
  3. Seleccionar las estrategias adecuadas de acuerdo con las condiciones de mercado de las diferentes monedas
  4. Prueba y optimiza cuidadosamente los parámetros para hacer que la estrategia sea más estable

Direcciones para la optimización de la estrategia

  1. Optimizar la configuración de parámetros de los indicadores auxiliares para mejorar aún más la estabilidad
  2. Añadir mecanismos de stop loss como el stop loss de seguimiento, el stop loss de promedio móvil exponencial, etc.
  3. Añadir la gestión de la posición como el tamaño de la posición fija, el promedio de la posición, etc.
  4. Hacer ajustes y optimizaciones de parámetros para monedas específicas

Resumen de las actividades

Esta estrategia de Ichimoku obtiene una alta tasa de ganancias, pero es una estrategia de largo plazo controlada por el riesgo al juzgar las direcciones de tendencia. Las ventajas de la estrategia son obvias y muestra un rendimiento sobresaliente en los mercados alcistas.


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

//@version=4

strategy(title="Ichimoku only Long Strategy", shorttitle="Ichimoku only Long", overlay = true, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=10000, currency=currency.USD)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2017,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

//Enable RSI
enableema = input(true, title="Enable EMA?")
enablestochrsi = input(false, title="Enable Stochastik RSI?")

//EMA
emasrc = close, 
len1 = input(24, minval=1, title="EMA 1")
len2 = input(90, minval=1, title="EMA 2")

ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)

col1 = color.lime
col2 = color.red

//EMA Plots
plot(ema1, title="EMA 1", linewidth=1, color=col1)
plot(ema2, title="EMA 2", linewidth=1, color=col2)

//STOCH RSI
smoothK = input(3, minval=1, title="RSI K Line")
smoothD = input(3, minval=1, title="RSI D Line")
lengthRSI = input(14, minval=1, title="RSI Length")
lengthStoch = input(14, minval=1, title="Stochastik Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

//Ichimoku
conversionPeriods = input(9, minval=1, title="Ichi Conversion Line Length")
basePeriods = input(26, minval=1, title="Ichi Base Line Length")
laggingSpan2Periods = input(52, minval=1, title="Ichi Lagging Span 2 Length")
displacement = input(1, minval=0, title="Ichi Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=color.green,
	 title="Lead 1")
p2 = plot(leadLine2, offset = displacement - 1, color=color.red,
	 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red)


//Long Condition
crossup = k[0] > d[0] and k[1] <= d[1]
ichigreenabovered = leadLine1 > leadLine2
ichimokulong = close > leadLine1
greencandle =  close > open
redcandle = close < open
emacond = ema1 > ema2
longcondition = ichigreenabovered and ichimokulong and greencandle

//Exit Condition
ichimokuexit = close < leadLine1

exitcondition = ichimokuexit and redcandle

//Entrys

if (enablestochrsi == false) and (enableema == false) and (longcondition) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)
    
if (enablestochrsi == true) and (enableema == false) and (longcondition) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == false) and (longcondition) and (emacond) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == true) and (longcondition) and (emacond) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)


//Exits
if (afterStartDate)
    strategy.close(id = "Long", when = exitcondition)









Más.