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.
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.
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.
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.
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.
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.
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)