Estratégia de negociação do Oscilador de Nuvem Ichimoku

Autora:ChaoZhang, Data: 2024-02-20 11:12:44
Tags:

img

Resumo

Esta é uma estratégia de negociação quantitativa que combina o indicador Ichimoku Cloud e o indicador Bollinger Bands. A estratégia utiliza a linha de conversão, linha de base, o intervalo A e o intervalo B da Ichimoku Cloud para gerar sinais de negociação, enquanto usa as Bandas de Bollinger para julgar a volatilidade do mercado e decidir os horários de entrada apropriados.

Estratégia lógica

Indicador de Nuvem de Ichimoku

A linha de conversão é o preço médio de fechamento em um período de curto prazo (9 dias). A linha de conversão é o preço médio de fechamento em um período de 26 dias. A linha de base é a média entre a linha de conversão e a linha de base, que lidera a ação do preço. A linha de base B é o preço médio de fechamento em um período ainda mais longo de 52 dias, que fica para trás do preço.

Bandeiras de Bollinger

As bandas de Bollinger incluem três linhas: linha média, banda superior e banda inferior. A linha média é uma média móvel simples dos preços de fechamento durante um período de n dias (definido para 20 dias aqui). A banda superior é a linha média mais k vezes (definida para 2 vezes aqui) o desvio padrão. A banda inferior é a linha média menos k vezes o desvio padrão. Ela julga se os preços estão dentro dos intervalos normais de flutuação e determina o nível de volatilidade do mercado.

Esta estratégia usa a cruz de ouro e a cruz da morte do principal intervalo B para construir sinais de negociação.

Análise das vantagens

Esta estratégia combina o indicador Ichimoku Cloud e as Bandas de Bollinger para determinar de forma abrangente as tendências e a volatilidade do mercado, o que pode efetivamente capturar informações de mudança de mercado para localizar sinais de negociação.

Os parâmetros desta estratégia são ajustáveis para otimizar para diferentes produtos e ambientes de mercado, tornando-a altamente adaptável.

Análise de riscos

Esta estratégia depende principalmente das Bandas de Bollinger para determinar a volatilidade do mercado. As bandas podem falhar quando a volatilidade extrema é causada por eventos de cisne negro. Nesse caso, os sinais de negociação construídos com base na Nuvem Ichimoku podem gerar sinais falsos.

Além disso, as próprias linhas de Ichimoku Cloud também são sensíveis a fortes flutuações do mercado. A conversão e as linhas de base podem fornecer sinais incorretos quando os preços oscilam de forma selvagem. Sair de posições ou suspender a negociação é provavelmente a melhor escolha em tais situações.

Orientações de otimização

Outros indicadores podem ser considerados em combinação para determinar o momento de entrada, como o KDJ para ver se o mercado está sobrecomprado/sobrevendido e o MACD para verificar as relações de média móvel de longo prazo/curto prazo.

Além disso, o aprendizado de máquina pode ser alavancado para otimizar os parâmetros da Nuvem Ichimoku. Diferentes parâmetros têm impactos significativos em ciclos e produtos. Encontrar as combinações ideais de parâmetros pode melhorar muito a lucratividade da estratégia.

Conclusão

Esta estratégia combina o indicador Ichimoku Cloud e as Bandas de Bollinger para considerar as tendências do mercado e a volatilidade.


/*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)


Mais.