Ichimoku entra em estratégia

Autora:ChaoZhang, Data: 2024-01-31 15:23:21
Tags:

img

Resumo

As Entradas de Ichimoku é uma estratégia quantitativa que identifica a direção da tendência usando gráficos de nuvem de Ichimoku, e gera sinais de negociação em combinação com Bandas de Bollinger e indicadores RSI. Esta estratégia determina principalmente se o mercado está atualmente em uma tendência de alta ou baixa com base na cruz de ouro ou cruz de morte da Linha Tenkan e Linha Kijun, e, assim, produz sinais de entrada para posições longas e curtas.

Estratégia lógica

O núcleo desta estratégia está nas duas linhas importantes do gráfico das nuvens de Ichimoku - Linha Tenkan e Linha Kijun. A Linha Tenkan é a média do mais alto e mais baixo nos últimos 9 dias, representando a tendência de curto prazo. A Linha Kijun é a média do mais alto e mais baixo nos últimos 26 dias, representando a tendência de médio a longo prazo. Quando a Linha Tenkan cruza acima da Linha Kijun, ela sinaliza uma entrada para ir longo. Quando a Linha Tenkan cai abaixo da Linha Kijun, ela sinaliza uma entrada para ir curto. Isso julga a direção da tendência atual.

Além da nuvem de Ichimoku, a estratégia também analisa as Bandas de Bollinger e o indicador RSI para gerar sinais de negociação. É considerado um sinal de atividade anormal de preços quando o preço de fechamento atravessa as Bandas de Bollinger superiores ou inferiores.

Na lógica de saída, a estratégia verifica se a ruptura das bandas de Bollinger é bem sucedida e se o oscilador de proximidade comercial cruza o eixo 0, para decidir sobre o bloqueio de lucros ou a interrupção de perdas.

Análise das vantagens

A maior vantagem desta estratégia é que combina a determinação de tendências e flutuações anormais de preços para determinar a direção do comércio. A nuvem de Ichimoku revela claramente a tendência, enquanto as Bandas de Bollinger capturam anomalias. O RSI efetivamente filtra falhas. O uso de múltiplos indicadores coordenados torna os sinais de negociação mais confiáveis. Além disso, a lógica de stop loss e take profit ajuda a bloquear lucros e evitar grandes perdas.

Análise de riscos

Apesar de ter a vantagem de identificar tendências e anomalias, a estratégia ainda apresenta alguns riscos. Como é negociada junto com as tendências, muitos sinais falsos podem surgir em mercados variados. Configurações incorretas de parâmetros também podem prejudicar o desempenho da estratégia.

Orientações de otimização

A estratégia pode ser melhorada nos seguintes aspectos:

  1. Teste diferentes combinações de parâmetros, como período de Bollinger, período RSI, etc.
  2. Introduzir modelos de aprendizagem de máquina, parametros de saída dinâmica com base em dados históricos.
  3. Incorporar fluxo de informação para determinar a emoção do mercado, evitar movimentos errados em momentos críticos.
  4. Adicionar métodos de stop loss condicionais, como trailing stop, para preservar os lucros.

Conclusão

A estratégia de entrada de Ichimoku é uma estratégia de negociação de tendências integrada com vários indicadores. Ao julgar a direção da tendência e as anormalidades de preço, ela captura o ritmo do mercado de forma bastante confiável. Embora haja espaço para melhoria, em geral, esta é uma estratégia com desempenho consistente e riscos controláveis.


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

//@version=5
strategy("ichi strategy", overlay=true)

// Input parameters
rsiLength = input(14, title="RSI Length")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2, title="Bollinger Bands Multiplier")
stopLossPct = input(1, title="Stop Loss Percentage")
takeProfitPct = input(2, title="Take Profit Percentage")

// Calculate Ichimoku Cloud components
tenkan = ta.sma(high + low, 9) / 2
kijun = ta.sma(high + low, 26) / 2
senkouA = (tenkan + kijun) / 2
senkouB = ta.sma(high + low, 52) / 2

// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + bbMultiplier * ta.stdev(close, bbLength)
lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength)

// RSI
rsiValue = ta.rsi(close, rsiLength)

// Trade Proximity Oscillator
length = input(14, title="Channels Length")
multiplier = input(2, title="Channels Multiplier")
atr_length = input(14, title="ATR Length")
threshold_percentage = input(1.5, title="Threshold Percentage (%)")

ma = ta.sma(close, length)
std_dev = ta.stdev(close, length)
upper_band = ma + multiplier * std_dev
lower_band = ma - multiplier * std_dev
distance_upper = close - upper_band
distance_lower = lower_band - close
atr_value = ta.atr(atr_length)
threshold = atr_value * threshold_percentage
oscillator = distance_upper - distance_lower

// Strategy logic
longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70
shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30

strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)

// Exit logic
longExitCondition = close < upperBB and ta.crossover(oscillator, 0)
shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition)

// Plotting
plot(senkouA, color=color.green, title="Senkou A")
plot(senkouB, color=color.red, title="Senkou B")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")

// Additional Plots
plot(tenkan, color=color.orange, title="Tenkan")
plot(kijun, color=color.purple, title="Kijun")



Mais.