O recurso está a ser carregado... Carregamento...

Estratégia Kairou

Autora:ChaoZhang, Data: 2023-11-22 16:28:59
Tags:

img

Resumo

A estratégia Kairou é uma estratégia quantitativa de negociação que integra vários indicadores técnicos, incluindo Ichimoku Cloud, MACD, Chaikin Money Flow (CMF) e True Strength Index (TSI).

Estratégia lógica

A ideia central da estratégia Kairou é combinar os sinais longos/cortos da Ichimoku Cloud, os indicadores longos/cortos da MACD, os indicadores de fluxo de capital da CMF e o índice de força da TSI para julgar a tendência do mercado, as áreas de sobrecompra e sobrevenda.

Em especial, a estratégia faz julgamentos baseados principalmente nos seguintes indicadores:

  1. A linha Tenkan cruza acima da linha Kijun na Nuvem Ichimoku indicando um sinal de alta
  2. Chikou Span cruzando acima de 0 indicando confirmação de um sinal de alta
  3. Histograma MACD cruzando acima de 0 mostrando fortalecimento do poder de compra
  4. Indicador CMF > 0,1 que indica a entrada de capital
  5. Indicador da ETI > 0 que mostra um poder de compra mais forte do que o poder de venda

Quando as 5 condições acima são atendidas ao mesmo tempo, um sinal longo é gerado; Quando condições como a linha Tenkan cruzando abaixo da linha Kijun são invertidas, um sinal curto é gerado.

Esta estratégia combina as condições longas e curtas de vários indicadores para evitar o ruído causado por julgamentos de um único indicador. Ao mesmo tempo, usando a Ichimoku Cloud para determinar as principais áreas de suporte e resistência e combinando a direção da sombra do intervalo atrasado para determinar a direção do fluxo real de capital, é possível entrar na fase posterior da tendência e sair em pontos-chave antes, obtendo assim maiores lucros.

Análise das vantagens

A maior vantagem da estratégia Kairou é que utiliza de forma abrangente múltiplos indicadores para julgar os fenômenos de sobrecompra/supervenda no mercado e determinar com precisão os pontos de compra e venda.

  1. Melhoria da precisão do sinal através da integração de vários indicadoresUm único indicador é propenso a sinais falsos enquanto esta estratégia efetivamente filtra o ruído e melhora a confiabilidade do sinal integrando Ichimoku Cloud, MACD, CMF, TSI e muito mais.

  2. Identificar suporte e resistência chave com Ichimoku CloudA estratégia pode implantar pontos longos e curtos em torno dessas áreas para entrar no mercado em estágios posteriores da tendência.

  3. Determinação do fluxo de capital real utilizando o intervalo de atrasoO intervalo de atraso mostra divergência para detectar movimentos falsos de ordens de arbitragem em vez de fundos reais.

  4. Indicar sobrecompra/supervenda com MACD. O MACD exibe rapidamente as condições de sobrecompra/supervenda. Junto com os níveis da Nuvem Ichimoku, determina com precisão os sinais de entrada longos e curtos.

  5. Indicar o fluxo de capital com o CMFO indicador CMF reflete os movimentos dos grandes operadores através de alterações de volume, evitando sinais enganosos dos fluxos de arbitragem.

  6. Mostrar a força das forças de compra/venda com a ETIAo remover as magnitudes dos movimentos de preços, a TSI exibe com precisão a força real das forças de compra/venda para detectar rebotes no fundo e quedas no topo.

Riscos e otimização

Apesar das suas vantagens, a estratégia de Kairou traz também alguns riscos dignos de nota.

  1. Optimização de parâmetrosOs parâmetros existentes podem não ser ideais. Métodos de otimização mais sistemáticos podem ser usados para encontrar melhores parâmetros para lucros mais constantes.

  2. Falta de mecanismo de stop loss. Atualmente, não existe um mecanismo de stop loss. Reversões significativas no mercado podem levar a perdas descontroladas.

  3. Alta frequência de negociaçãoO número de transacções deve ser controlado de forma razoável através da regulação dos parâmetros.

  4. Fluctuações do desempenhoAs interações entre múltiplos indicadores podem conduzir a flutuações de desempenho maiores em determinadas condições de mercado.

  5. Riscos de divergência de sinalSe os indicadores revelarem sinais contraditórios, as decisões de entrada tornam-se difíceis.

Conclusão

A estratégia Kairou é uma estratégia de negociação quantitativa de múltiplos indicadores. Ela aproveita ao máximo os pontos fortes complementares da Ichimoku Cloud, MACD, CMF, TSI e mais para determinar de forma exclusiva o tempo de entrada e saída. Há também espaço para otimizações em aspectos como mecanismos de stop loss, ajuste de parâmetros, alocação de peso, etc. para melhorar significativamente a estabilidade das operações de estratégia.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Ichimoku with MACD/ CMF/ TSI ", overlay=true)

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

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)

// 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=color.green, title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.red, title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.green : color.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
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=hl2)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


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


//CMF
lengthA = input(10, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=20)
short = input(title="Short Length", type=input.integer, defval=20)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



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

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

Mais.