Tamanho de fonte
Alto contraste
Altura de linha

Candlesticks e Time Bars: por que você deveria parar de usá-los nas suas estratégias

Avatar de Rodrigo Tadewald Rodrigo Tadewald
6 minutos de leitura 1 ano atrás

Candlesticks e time bars são abordagens tradicionais de visualização de dados no mercado financeiro. Porém, à medida que os mercados evoluem, surge a necessidade de questionar a eficácia dessas práticas convencionais.

Neste artigo, exploraremos as limitações intrínsecas dessas técnicas para entender por que o uso delas pode estar prejudicando o seu fluxo de desenvolvimento de estratégias ou limitando o retorno potencial delas. Em seguida, abordaremos técnicas alternativas, como Tick Bars e Volume Bars.

O problema dos candlesticks e time bars

É claro que, do ponto de vista de quem busca contar a história do pregão, este tipo de agrupamento é ideal. Porém, um trader quantitativo está interessado em encontrar padrões inexplorados nas séries temporais – padrões estes que raramente surgem nesse tipo de amostragem e que, quando aparecem, já estão sendo operados por outras dezenas traders (pois todos veem os dados sob o mesmo ângulo).

Em seu livro Advances In Financial Machine Learning, Marcos Lopez de Prado argumenta que time bars devem ser evitados, pois o mercado não processa informações em um intervalo de tempo constante. As primeiras horas de abertura do pregão são, em média, muito mais ativas do que os momentos após o almoço.

Dessa forma, ao compararmos dois candles em momentos distintos, estaremos dando pesos iguais a intervalos com diferenças gigantescas em atividade de mercado. Um candle formado entre 10h e 10h30 geralmente possui muito mais relevância que um candle entre 14h e 14h30. 

Com isso, se faz necessário explorar outras alternativas de visualização de dados financeiros – e de preferência alguma que ninguém mais esteja vendo.

Mas antes de explorar outras técnicas, é preciso pontuar que, independentemente da metodologia proposta, sempre acabaremos jogando uma gigantesca quantidade de dados fora. Ao transformarmos uma série temporal de transações (STT) de um dia de uma ação como ITSA4 (Itaúsa S.A) em tick bars de 1 minuto, por exemplo, estamos reduzindo uma base de milhões de operações a uma simples tabela de 540 entradas. Informações relevantes como os volumes transacionados por cada corretora ou momentos de atividade elevada no book são resumidos a uma simples barra. 

Gráficos que demonstram um minuto de negociações sendo resumido a um simples candlestick
Um minuto de negociações sendo resumido a um simples candlestick

Dados financeiros: tick bars

A ideia por trás do agrupamento em ticks é construir “candles” baseados em uma quantidade fixa de transações e não mais em janelas temporais de tamanho fixo. Isso traz uma série de consequências:

  • Os candles passarão a ter informações distribuídas de maneira mais uniforme;
  • Dias passarão a ter quantidade diferentes de candle;
  • Momentos do dia com maior atividade no mercado terão janelas temporais bem menores do que momentos mais calmos.

Essa técnica também faz com que a distribuição da curva de retornos tenha um comportamento mais próximo de uma Gaussiana. Isso é importante, pois muitos métodos estatísticos de análise de séries temporais dependem dessa propriedade. Transformar uma série de ticks em tick bars é um processo bem simples.

Abaixo um exemplo em Python de como fazer isso.

Para o seguinte DataFrame:

Exemplo de DataFrame de ticks

O seguinte código produzirá um agrupamento baseado em um número predeterminado de ticks. Podemos controlar o tamanho do agrupamento através da variável group_size.

# Variável de controle
group_size = 100

# Lista usada para orientar a operação de grupamento no Pandas
list_index = []

n = 0
c = 0

# Iteração repetindo índices de grupamento x vezes, onde x é controlado pela variável group_size
for i in range(len(df_cut)):
    list_index += [n] 
    c += 1
    
    if c >= group_size:
        n +=1
        c = 0

df_cut["index"] = list_index

# Realizando o grupamento de ticks baseados no indicador que acabamos de criar
df_ticks_bar = df_cut.groupby("index").agg({"last": "last", "time_msc": "first"})
df_ticks_bar["open"] = df_cut.groupby("index").first()["last"]
df_ticks_bar["high"] = df_cut.groupby("index").max()["last"]
df_ticks_bar["low"] = df_cut.groupby("index").min()["last"]

# Define o index
df_ticks_bar.set_index(pd.to_datetime(df_ticks_bar["time_msc"], unit='ms'), inplace=True)

O resultado:

Exemplo DataFrame tick bars

Dados financeiros: volume bars

Utilizando tick bars, corrigimos grande parte dos problemas existentes nas time bars, porém introduzimos outros. Ao criarmos grupos de transações de tamanho fixo, partimos do princípio de que as transações contêm a mesma quantidade de informação, o que na grande maioria das vezes não é verdade.

Negociações com volumes maiores dizem mais sobre o sentimento dos traders do que as com volumes menores. Além disso, ao utilizarmos a transação como parâmetro central, estamos sujeitos a algumas arbitrariedades intrínsecas dos ticks. Observe os seguintes livros de ofertas:

Exemplo de livro de oferta no mercado financeiro
Cenário A
Exemplo de livro de oferta no mercado financeiro
Cenário B

Se determinado participante de mercado inserisse neste exato momento uma ordem de compra de 2500 ações a 26,97 reais, geraria uma quantidade de ticks diferentes apenas pelo estado do book em cada cenário. No cenário A, seriam feitas 4 transações (3 com as primeiras ordens de 100 ticks e 1 com o lote maior de 3k), gerando 4 ticks; enquanto que, no cenário B, geraria apenas 1 tick.

Para evitar cenários, uma terceira técnica seria volume bars, na qual os agrupamentos são definidos sempre que um volume financeiro pré-definido for transacionado no mercado. Dessa forma, estaríamos resolvendo problemas de ambas as técnicas anteriores. 

E como aplicar tudo isso à análise de dados financeiros?

Neste artigo, discutimos a manipulação de dados financeiros, destacando as limitações de candlesticks e time bars nas estratégias de investimento. Contudo, nosso objetivo principal aqui não é apenas te apresentar essas técnicas de agrupamento; buscamos te colocar em contato com formas alternativas de pensar e de encarar um problema aparentemente resolvido: o de como visualizar os dados da maneira correta. 

Durante meus primeiros anos de mercado, em minha cabeça só havia duas possibilidades de séries temporais: tick-by-tick e time bars. Quando compreendi que as STTs podiam ser agrupadas de outras formas, minha mente se abriu.

Ao começar a trabalhar com volume bars e tick bars, me deparei com novos padrões e fui capaz de projetar minhas próprias formas de agrupamento e de projetar estratégias completamente novas. 

A exposição a conceitos inovadores tem a capacidade de criar em nosso cérebro novas conexões e, por consequência, nos tornamos mais criativos. Seu sucesso enquanto trader quantitativo dependerá totalmente de sua capacidade de pensar por conta própria.

Aliás, engana-se quem pensa que os resultados virão seguindo à risca setups milagrosos de terceiros. É necessário colocar suas próprias ideias na equação.

Diversos outros tipos de agrupamentos já são conhecidos por traders mais experientes, como Renko, Heikin-Ashi e Kagi, mas isso é assunto para um próximo artigo.

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov