Indicador Ichimoku Kinko Hyo Estratégia de tendência de equilíbrio

Autora:ChaoZhang, Data: 2023-11-24 14:38:47
Tags:

img

Resumo

A estratégia de tendência de equilíbrio é uma estratégia de tendência que utiliza o indicador Ichimoku Kinko Hyo. Identifica direções de tendência combinando vários indicadores, vai longo em um mercado de alta e vai curto em um mercado de baixa, para alcançar uma apreciação de capital a longo prazo.

Princípio da estratégia

O núcleo desta estratégia é baseado no indicador Ichimoku Kinko Hyo, que consiste no Tenkan-Sen (Linha de Conversão), Kijun-Sen (Linha de Base), Senkou Span A (Leading Span A), Senkou Span B (Leading Span B) e Chikou Span (Lagging Span).

Os sinais de negociação são gerados com base na combinação das seguintes condições:

  1. Tenkan-Sen cruza acima de Kijun-Sen como sinal de alta
  2. Tenkan-Sen cruza abaixo de Kijun-Sen como sinal de baixa
  3. Chikou Span cruzamento para cima como confirmação de alta
  4. Chicou Span cruzar para baixo como confirmação de baixa
  5. RSI acima de 50 como indicador de alta
  6. RSI abaixo de 50 como indicador de baixa
  7. Preço acima da nuvem indica tendência de alta
  8. Preço abaixo da nuvem indica tendência de queda

Ele vai longo quando todas as condições de alta são atendidas e vai curto quando todas as condições de baixa são atendidas.

Análise das vantagens

Esta estratégia combina indicadores de tendência e de sobrecompra-supervenda para identificar eficazmente as direcções da tendência.

  1. Ichimoku Kinko Hyo pode identificar tendências de médio a longo prazo, evitando ser enganado por ruídos de mercado de curto prazo.
  2. Incorporar o RSI ajuda a determinar zonas de sobrecompra e sobrevenda, evitando oportunidades de reversão perdidas.
  3. Apenas atua quando a volatilidade for suficientemente elevada, evitando negociações ineficazes.
  4. Regras estritas de entrada e saída mitigam o máximo os riscos.

Análise de riscos

Alguns riscos a ter em conta para esta estratégia:

  1. Ichimoku Kinko Hyo tem efeito de atraso, possivelmente atrasando o tempo de entrada.
  2. Baixa frequência de ocorrência de sinais de negociação com combinação de várias condições, levando a um número insuficiente de negociações.
  3. Nenhuma consideração em torno do tamanho da posição e gestão de risco, riscos em torno do excesso de negociação.

Soluções correspondentes:

  1. Encurtar os parâmetros de Ichimoku para melhorar a sensibilidade.
  2. Reduzir o rigor das condições de entrada para aumentar a frequência do comércio.
  3. Incorporar módulos de gestão de riscos e dimensionamento de posições para controlar a exposição ao risco por transação e a posição global.

Orientações de otimização

A estratégia pode ser melhorada nos seguintes aspectos:

  1. Adicionar ou combinar indicadores adicionais como KDJ, MACD para diversificar as fontes de sinal.
  2. Optimize os parâmetros de Ichimoku para melhorar a sensibilidade.
  3. Adicionar mecanismos de stop loss para bloquear lucros e controlar riscos.
  4. Incorporar um módulo de dimensionamento dinâmico da posição com base no tamanho da conta.
  5. Adicionar um módulo de cobertura para gerir os riscos das posições longas.

Resumo

No geral, esta estratégia de balanço de tendência é um sistema de seguimento de tendências confiável e robusto. Aborda o desafio fundamental na negociação de tendências - equilibrar a precisão de identificação de tendências e a frequência de geração de negócios.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Ichimoku Kinko Hyo: ETH 3h Strategy by tobuno", overlay=true)

//Inputs
ts_bars = input(22, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(60, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

//Volatility
vollength = input(defval=2, title="VolLength")
voltarget = input(defval=0.2, type=float, step=0.1, title="Volatility Target")
Difference = abs((close - open)/((close + open)/2) * 100)
MovingAverage = sma(Difference, vollength)
highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)

//RSI
change = change(close)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=green, title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=red, title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? green : red, title="Cloud color")

ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish and highvolatility

strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)

strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)


Mais.