Estrategia de cruce de medias móviles Ichimoku


Fecha de creación: 2023-12-19 15:40:53 Última modificación: 2023-12-19 15:40:53
Copiar: 0 Número de Visitas: 613
1
Seguir
1621
Seguidores

Estrategia de cruce de medias móviles Ichimoku

Descripción general

La estrategia de Ichimoku es una estrategia de cruzamiento de líneas medias que se utiliza para realizar operaciones de corto y largo plazo mediante el cálculo de una serie de líneas medias y la identificación de señales de cruce de precios de acciones. La estrategia combina varios indicadores técnicos, es sólida y confiable, y es adecuada para operaciones de líneas medias y largas.

Principio de estrategia

La estrategia de Ichimoku utiliza un sistema de indicadores especializados que consiste en 5 líneas medias. En concreto, contiene la línea de cambio, la línea de referencia, la línea de ventaja 1, la línea de ventaja 2 y la línea de retardo de 5 líneas medias. Dentro de ellas, la línea de cambio es la media de la movilidad de los precios recientes, la línea de referencia refleja la tendencia de los precios a medio y largo plazo, la línea de ventaja combina la línea de cambio y la línea de referencia para reflejar el movimiento futuro, y la línea de retardo muestra una referencia de precios pasados.

Ventajas estratégicas

El conjunto de indicadores técnicos de la estrategia de cruzamiento de la media de Ichimoku tiene la ventaja de estar integrado. Combina ideas estratégicas múltiples como promedios móviles, canales de precios y confirmación de precios cuantitativos para formar un sistema metodológico sistemático. Esto garantiza la precisión y la orientación de las señales de negociación.

Riesgo estratégico

La estrategia de Ichimoku es una estrategia de seguimiento de tendencias, con un intervalo de negociación más largo. Esto significa que la estrategia no puede capturar las fluctuaciones de precios a corto plazo. Además, el indicador de la línea de paridad se invalida cuando el precio de las acciones fluctúa fuertemente. En estos casos, se producen señales erróneas y operaciones perdedoras.

Dirección de optimización

Las estrategias de cruce de línea media de Ichimoku se pueden optimizar en las siguientes direcciones: 1) ajustar los parámetros de la línea media para adaptarse a diferentes períodos y variedades; 2) combinar indicadores de energía, confirmar la relación entre el precio y el volumen de transacción; 3) introducir modelos de aprendizaje automático, mejorar el juicio de la señal; 4) agregar más condiciones y filtros para reducir la probabilidad de que se produzcan transacciones erróneas.

Resumir

La estrategia de Ichimoku es estable y fiable, se adapta como estrategia central y se usa en combinación con otros algoritmos. Proporciona una clara dirección de comercio de tendencias, mientras que el ajuste de parámetros y la optimización de múltiples indicadores hacen que la estrategia sea más inteligente y flexible.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
conversionPeriods = input(9, minval = 1, title = "Conversion Periods")
basePeriods = input(26, minval = 1, title = "Base Periods")
laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span")
usebf = input(true, defval = true, title = "Use body filter")
usecf = input(true, defval = true, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Ichimoku
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//Lines
plot(conversionLine, color=red, title="Conversion Line")
plot(baseLine, color=blue, title="Base Line")
plot(close, offset = -basePeriods, color=green, title="Lagging Span")
p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1")
p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2")
fill(p1, p2)

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebf == false

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//Signals
up = low > baseLine and rb and body
dn = high < baseLine and gb and body

//Trading
if up
    //if strategy.position_size < 0
    //    strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    //if strategy.position_size > 0
    //    strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()