Estrategia de negociación del oscilador de la nube Ichimoku

El autor:¿ Qué pasa?, Fecha: 2024-02-20 11:12:44
Las etiquetas:

img

Resumen general

Esta es una estrategia de negociación cuantitativa que combina el indicador Ichimoku Cloud y el indicador Bollinger Bands. La estrategia utiliza la línea de conversión, la línea base, el intervalo A y el intervalo B de la nube Ichimoku para generar señales comerciales, mientras que utiliza las bandas de Bollinger para juzgar la volatilidad del mercado y decidir los tiempos de entrada apropiados.

Estrategia lógica

Indicador de la nube de Ichimoku

El indicador de la nube de Ichimoku consta de cuatro líneas: línea de conversión, línea base, rango A y rango B. La línea de conversión es el precio promedio de cierre durante un período a corto plazo (9 días). La línea base es el precio promedio de cierre durante un período de 26 días más largo. El rango A es el promedio entre la línea de conversión y la línea base, que conduce la acción del precio. El rango B es el precio promedio de cierre durante un período aún más largo de 52 días, que se queda atrás del precio. Las señales de compra y venta se generan cuando el promedio móvil a corto plazo cruza por encima o por debajo del promedio a largo plazo.

Las bandas de Bollinger

Las bandas de Bollinger incluyen tres líneas: línea media, banda superior e inferior. La línea media es un promedio móvil simple de los precios de cierre durante un período de n días (establecido en 20 días aquí). La banda superior es la línea media más k veces (establecida en 2 veces aquí) la desviación estándar. La banda inferior es la línea media menos k veces la desviación estándar.

Esta estrategia utiliza la cruz de oro y la cruz de la muerte del intervalo líder B para construir señales comerciales. También incorpora las bandas de Bollinger para determinar la volatilidad de los precios y decide ingresar al mercado cuando la volatilidad es baja.

Análisis de ventajas

Esta estrategia combina el indicador de la nube de Ichimoku y las bandas de Bollinger para determinar de manera integral las tendencias y la volatilidad del mercado, lo que puede capturar eficazmente la información del cambio del mercado para localizar las señales comerciales.

Los parámetros de esta estrategia son ajustables para optimizar para diferentes productos y entornos de mercado, lo que la hace altamente adaptable.

Análisis de riesgos

Esta estrategia se basa principalmente en las bandas de Bollinger para determinar la volatilidad del mercado. Las bandas pueden fallar cuando la volatilidad extrema es causada por eventos de cisne negro.

Además, las propias líneas de la Nube Ichimoku también son sensibles a las fuertes fluctuaciones del mercado. La conversión y las líneas base podrían proporcionar señales incorrectas cuando los precios oscilan violentamente.

Direcciones de optimización

Otros indicadores pueden considerarse en combinación para determinar el momento de entrada, como KDJ para ver si el mercado está sobrecomprado/sobrevendido, y MACD para comprobar las relaciones de media móvil a largo plazo/a corto plazo.

Además, el aprendizaje automático puede aprovecharse para optimizar los parámetros de la nube Ichimoku. Diferentes parámetros tienen impactos significativos en todos los ciclos y productos. Encontrar las combinaciones óptimas de parámetros puede mejorar enormemente la rentabilidad de la estrategia.

Conclusión

Esta estrategia combina el indicador Ichimoku Cloud y las bandas de Bollinger para considerar tanto las tendencias del mercado como la volatilidad. Es una estrategia de trading cuantitativa adaptativa.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("一目均衡表シグナル + ボリンジャーバンド", overlay=true)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2.0, title="Bollinger Bands Multiplier")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// ボリンジャーバンドの計算
basis = ta.sma(close, bbLength)
bbUpper = basis + bbMultiplier * ta.stdev(close, bbLength)
bbLower = basis - bbMultiplier * ta.stdev(close, bbLength)

// 1σ、2σ、3σのライン
bbUpper1 = basis + ta.stdev(close, bbLength)
bbLower1 = basis - ta.stdev(close, bbLength)

bbUpper2 = basis + 2 * ta.stdev(close, bbLength)
bbLower2 = basis - 2 * ta.stdev(close, bbLength)

bbUpper3 = basis + 3 * ta.stdev(close, bbLength)
bbLower3 = basis - 3 * ta.stdev(close, bbLength)

// 遅行スパンがローソクに交差した際のBuyとSellシグナル
buySignalLeadLine = ta.crossover(close, leadLine2)
sellSignalLeadLine = ta.crossunder(close, leadLine2)

// Strategy Entry and Exit Conditions for Lead Line
strategy.entry("BuyLeadLine", strategy.long, when = buySignalLeadLine)
strategy.close("BuyLeadLine", when = sellSignalLeadLine)

strategy.entry("SellLeadLine", strategy.short, when = sellSignalLeadLine)
strategy.close("SellLeadLine", when = buySignalLeadLine)

// Plotting Ichimoku Cloud
plot(conversionLine, color=color.new(color.blue, 0), title="Conversion Line")
plot(baseLine, color=color.new(color.red, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(color.green, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(color.green, 0),
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#cdf80d, 0),
     title="Leading Span B")

fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))



// 2σ、3σのラインをプロット

plot(bbUpper2, color=color.rgb(100, 96, 100), title="BB Upper 2σ")
plot(bbLower2, color=color.rgb(100, 96, 100), title="BB Lower 2σ")

plot(bbUpper3, color=color.rgb(67, 61, 68), title="BB Upper 3σ")
plot(bbLower3, color=color.rgb(67, 61, 68), title="BB Lower 3σ")

// Plotting Entry and Exit Signals
plotshape(series=buySignalLeadLine, title="Buy Signal (Lead Line)", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignalLeadLine, title="Sell Signal (Lead Line)", color=color.rgb(255, 115, 0), style=shape.triangledown, location=location.abovebar, size=size.small)


Más.