quarta-feira, 16 de agosto de 2023

Novidades da Versão 3.0.70

1) Backtest: exportação de todos os resultados individuais

Agora ao exportar o conteúdo da aba "Backtest individual" o sistema também exporta o resultado (trades executados) de cada um dos backtests dos ativos da lista de uma só vez. Cada resultado de backtest é exportado em um arquivo com o nome de seu respectivo ativo.

2) Melhorias e correções

Foram feitas diversas melhorias e correções no sistema como um todo.

domingo, 12 de fevereiro de 2023

Novidades da Versão 3.0.69

1) Indicador Algoritmo (Futuros)

Desenvolvemos um algoritmo para contratos futuros (índice e dólar) que utiliza análise quantitativa.

2) Indicador Negociação/Posição

Este indicador retorna informações da posição atual no ativo, como preço médio, quantidade, lado (comprado/vendido) e L/P projetado.

3) Indicador Pair Trade Beta

Este indicador da análise quantitativa retorna o coeficiente angular entre 2 ativos.

4) Indicador Pair Trade Z-score

Este indicador da análise quantitativa retorna o afastamento (desvios) da média entre 2 ativos.

5) Indicador TPO Profile

Este indicador mostra a relação entre os preços negociados de um ativo e o tempo.

quarta-feira, 25 de maio de 2022

Setups no gráfico Renko

Para criar setups utilizando o gráfico Renko é necessário trocar em todas as regras o tipo de preço de Normal para Renko. No indicador Preço isso pode ser feito diretamente nos seus parâmetros e para os demais indicadores utilize a opção Calcular a partir de....

No exemplo abaixo temos uma regra que utiliza o preço do tipo "Renko" e uma média móvel, que através da opção "Calcular a partir de..." é calculada usando um gráfico Renko:



O tipo do box em todas as regras deve ser "Ticks", assim como o tamanho deve ser o mesmo. Note que na regra acima estamos usando 10 ticks como tamanho do box. Todas as regras do setup devem usar esta mesma configuração.

Renko do tipo Ticks

A partir da versão 3.0.68.3 está disponível um novo tipo de box para o gráfico Renko: Ticks.

Com este tipo de box aperfeiçoamos a visualização de gráficos Renko, tornando-os 100% independentes do tempo. Um tick representa a variação mínima permitida para cada ativo, exemplo: para o índice futuro um tick representa 5 pontos, para o dólar futuro um tick representa 0,50 pontos e para as ações um tick equivale a 1 centavo ou 0,01. Desta forma, por exemplo, 10 ticks equivalem a 50 pontos no índice futuro, 5 pontos no dólar futuro e 10 centavos nas ações (0,10).

Para configurar um gráfico Renko usando este tipo de box, basta seguir o exemplo abaixo, destacado em vermelho:



No exemplo abaixo temos um gráfico do mini índice configurado com 10 "Ticks" de tamanho do box. Note que em todos os candles do gráfico a distância entre o preço de fechamento e o de abertura é sempre de 50 pontos, ou seja, 10 ticks. Sempre que o preço avança 10 ticks (50 pontos) a favor da direção atual um novo candle surge no gráfico. Para que ocorra uma reversão na direção é necessário que o preço avance 21 ticks no sentido contrário, ou seja, 2 vezes o tamanho do box mais um tick.



sábado, 5 de março de 2022

Novidades da Versão 3.0.68

1) Robôs: melhorias/evoluções

Desde o seu lançamento no ano passado (AGO/2021) os Robôs passaram por divesas melhorias e evoluções de forma a ficarem mais consistentes e processarem cada vez mais rápido as estratégias configuradas pelos usuários/clientes.

Caso ainda não conheça esta funcionalidade da plataforma, os Robôs, então consulte a documentação abaixo:

Robôs: Primeiros Passos
Robôs: Configuração e Ativação
Robôs: Roteamento de Ordens ativado
Robôs: Setup versus Preço

2) Backtest: melhoria do algoritmo

O algortimo do Backtest também foi melhorado de forma a ficar cada vez mais semelhante a execução dos Robôs. Dependendo da estratégia o resultado da execução do Backtest é praticamente identico ao do Robô.

3) Opção de colocar senha em Setup

Agora é possível colocar uma senha de acesso nos setups. Com essa senha de acesso em conjunto com a opção de compartilhar Backtest/Robô voce pode agora comercializar suas estratégias com outros clientes da plataforma sem que eles tenham acesso a sua configuração.


4) Opção de compartilhar Backtest e Robô

Agora é possível compartilhar com outros usuários da plataforma as suas configurações de Backtest e Robô de forma instântanea. Assim seus amigos não terão trabalho algum em ter que configurar suas estratégias manualmente.


Também é possível a qualquer momento cancelar o compartilhamento, de forma que toda a configuração seja apagada da conta do usuário com quem o Backtest/Robô foi compartilhado.

5) Indicador Cotação agora é compatível com Backtest/Robô

O Indicador Cotação permite o acesso a vários valores no gráfico como:

   Dia atual
   Dia anterior
   Semana atual
   Semana anterior
   Mês atual
   Mês anterior
   Trimestre atual
   Trimestre anterior
   Ano atual
   Ano anterior
   Hora atual
   Hora anterior
   Primeira hora
   Topo anterior
   Fundo anterior
   Candle atual
   Candle anterior
   Pivot atual
   Pivot anterior
   Topo histórico
   Fundo histórico

Para que este indicador funcione no Backtest/Robô é necessário desmarcar a opção "Último valor", caso contrário irá aparecer um valor único do início ao fim do gráfico, referente a apenas o último valor calculado.


Este indicador é muito útil na configuração de diversas estratégias conhecidas, como por exemplo, "Rompimento da Primeira Hora". O indicador cotação permite que voce acesse o valor consolidado da primeira hora e consiga escolher a máxima, mínima, abertura e fechamento desta primeira hora.

Exemplo de regra de setup: detectando rompimento da máxima da primeira hora:


Exemplo de regra de setup: detectando rompimento da mínima da primeira hora:


sexta-feira, 10 de dezembro de 2021

Robôs: Setup versus Preço

Assim como no Backtest os parâmetros de configuração "Setup de Entrada" e "Setup de Saída" do Robô trabalham em conjunto com os respectivos parâmetros "Preço de Entrada" e "Preço de Saída".


Quando a ”Posição” é somente comprada ou somente vendida temos que os setups e preços são respectivamente de “Entrada” e de “Saída”.

Quando o robô opera tanto comprado como vendido, ou seja, nas 2 pontas, através das opções “Ambas” ou “Ambas (4S)” do parâmetro ”Posição”, então o setup e o preço de ”Entrada” passam a ser de “Compra”, assim como o setup e o preço de ”Saída” passam a ser de ”Venda”. Dessa forma quando o setup de compra sinaliza compra é feita a entrada na posição comprada e quando o setup de venda sinaliza venda é feita a entrada na posição vendida. Quando o robô, assim como o backtest, estiver posicionado e o setup na posição oposta é acionado (sinaliza) então é feita a inversão de posição.

”Exemplo:” o robô não está posicionado, ou seja, nenhum trade em andamento e o setup de venda sinaliza a operação. Neste momento o robô efetua uma entrada na posição vendida. Tempos depois o setup de compra é acionado e então o robô faz a inversão da posição de vendida para comprada. Isso sempre é feito através de uma única ordem com o dobro da “Qtde.”, de forma que o robô zere a posição atual e faça a entrada na posição oposta.

Posição ”Ambas”:

Posição ”Ambas (4S)”:

Na posição “Ambas (4S)” usamos 4 setups ao invés de apenas 2. São 2 setups para a posição comprada e 2 setups para a posição vendida. Para cada posição (comprada e vendida) temos um setup de entrada e um setup de saída. Dessa forma temos um setup para entrada na posição comprada, um setup para saída na posição comprada, um setup para entrada na posição vendida e mais um setup para saída na posição vendida, totalizando 4 setups diferentes.

Os setups precisam estar previamente criados/configurados. Voce pode criar novos setups ou importar setups pré-configurados na plataforma através do botão “Setups” da janela de Robôs.

Os preços possuem as seguintes opções:

- Setup
- Fechamento
- Abertura
- Máximo
- Mínimo
- Médio
- Fechamento anterior
- Abertura anterior
- Máximo anterior
- Mínimo anterior
- Médio anterior
- Indicador


A primeira opção, ”Setup”, permite que o preço seja obtido diretamente no setup através de suas regras. Nas regras de setup temos um parâmetro, chamado ”Opção de Preço”, que permite anotarmos o valor do lado direito ou do lado esquerda da regra, conforme exemplo abaixo:


Na janela de configuração de regra temos sempre 2 valores, um à direita e outro à esquerda. Na “Opção de Preço”, caso a regra seja verdadeira, podemos selecionar qual destes valores deverá ser anotado pelo sistema para ser usado lá no Robô. No exemplo acima estamos verificando se o preço máximo do candle é maior ou igual a média móvel aritmética de 5 períodos (MMA 5). Caso esta regra seja verdadeira será anotado o valor da MMA 5, pois ela está no lado direito da janela de configuração. Este valor anotado será usado como preço lá no Rôbo. Neste caso o preço da ordem será este, ou seja, o da MMA 5.

Esta opção de preço também é interessante quando queremos usar vários critérios de saída, como por exemplo a perda da mínima do candle anterior, além da MMA 5, conforme exemplo abaixo:


Note que agora estamos anotando o valor do lado esquerdo, pois a mínima anterior está deste lado. Isso porque a “Posição (ref.)” igual a 1 faz com que o sistema acesse o candle anterior, assim como a ”Posição (ref.)” igual a 0 faz com que o sistema acesse o candle atual.

Veja como ficou a configuração do setup com 2 regras de saída. Neste caso usamos o critério (OU), pois basta que qualquer uma das 2 regras seja verdadeira para que a saída seja executada. Como selecionamos a ”Opção de Preço” nas 2 regras o sistema vai usar o valor da primeira regra que for verdadeira como preço da ordem de saída que será enviada pelo robô. Se a primeira regra for verdadeira o preço a ser usado será o da MMA 5 (lado direito) e se a segunda regra for verdadeira será usado o valor da mínima anterior (lado esquerdo).


O parâmetro ”Opção de Preço” também tem mais opções, além do ”Lado direito” e “Lado esquerdo”. As opções do tipo “Gain” devem ser usadas quando o movimento do preço for a favor do trade, ou seja, for do tipo gain. As opções do ”Loss” devem ser usadas quando o movimento do preço for contrário ao do trade, ou seja, for do tipo loss. No exemplo acima com 2 saídas para uma operação na posição comprada, podemos dizer que a MMA 5 seria do tipo ”Gain” enquanto a saída na mínima anterior seria do tipo ”Loss”.


A segunda opção de preço, ”Fechamento”, pode ser usada quando o setup é do tipo ”Candle Aberto”, ou seja, temos pelo menos uma regra “olhando” para o candle atual na ”Posição (ref.)” 0. Neste tipo de configuração o sistema vai aguardar o momento do fechamento do candle, algo muito próximo a isso como 2 segundos antes em um gráfico intraday, ou 15 minutos antes no gráfico diário, e usar a cotação atual como sendo o preço a ser enviado na ordem do robô. É recomendável usar esta opção em setups do tipo candle aberto pois pode ser que as regras fiquem oscilando entre verdadeiro e falso até que o candle finalmente feche. Um exemplo clássico de uso para esta opção de preço é a estratégia do IFR2, a qual faz a entrada no momento do fechamento quando o IFR2 for menor que 10. Nesta estratégia o sistema só faz a entrada se no fechamento do candle, ou muito próximo deste momento, o IFR2 estiver abaixo de 10.

A terceira opção de preço, ”Abertura”, pode ser usada quando o setup é do tipo ”Candle Fechado”, ou seja, não temos nenhuma regra “olhando” para o candle atual na ”Posição (ref.)” 0. Neste tipo de configuração as regras do setup estão sempre olhando para os candles anteriores e caso o setup seja verdadeiro o sistema faz a entrada logo no momento da abertura do candle, usando como preço na ordem o valor do primeiro negócio do candle, ou seja, o valor de sua abertura. Este tipo de configuração permite uma maior facilidade de se reproduzir na prática (Robô) os resultados obtidos através de simulações passadas (Backtest).

As opções seguintes (”Máximo”, “Mínimo” e “Médio”) geram resultados artificiais no Backtest, ou seja, que dificilmente podem ser reproduzidos na prática (no mundo real), mas que servem como uma fonte de informação e de estudo. Estas opções estão disponíveis nos Robôs apenas para compatibilidade com o Backtest.

As opções do tipo ”*** anterior” usam os valores do candle anterior como preço a ser utilizado na ordem do robô. Este tipo de opção de preço é interessante em situações onde o setup faz a entrada no rompimento, por exemplo, da máxima anterior. Em uma configuração como esta o setup de entrada precisa ter uma regra do tipo “Preço [Max][0] > Preço [Max][1]”, onde [0] representa a posição ref 0 (candle atual) e [1] representa a posições ref 1 (candle anterior). Podemos inclusive fazer a entrada 1 centavo acima da máxima anterior (no caso de ações), através do parâmetro “Ajuste” do tipo ”Somar” e ”Valor” igual a 0,01.

A última opção, ”Indicador” permite que seja usado como preço nas ordens do robô o valor de um indicador. Isso é muito útil quando queremos, por exemplo, fazer a entrada em um trade no momento exato em que o preço bate/toca em uma média móvel e queremos que o preço de entrada (da ordem) seja exatamente o valor da média móvel. Este tipo de preço permite que o setup seja do tipo ”Candle Aberto”. No entanto, para uma maior convergência com Backtest, é interessante que o valor do indicador seja o calculado no candle anterior. Isso evita que o valor fique alterando constantemente no candle atual (aberto). Para isso o ideal é usarmos a opção de ”Deslocamento” disponível em alguns indicadores, como média móvel. Esta opção de deslocamento faz com que o valor do candle anterior seja movido para o candle atual. Caso o indicador não possua este parâmetro, podemos usar um indicador exclusivo para isso, chamado ”Deslocamento”. Este indicador aplica/efetua o deslocamento em qualquer outro indicador da plataforma.


Como os parâmetros setup e preço trabalham sempre em conjunto é muito importante que eles sejam coerentes entre si. Exemplo: imagine que você queira fazer a entrada no seu trade sempre que o preço romper a máxima anterior. Em uma configuração como esta tanto o setup como o preço de entrada devem usar/mencionar a máxima anterior. No “Setup de Entrada” você precisa ter uma regra que verifique se o preço no candle atual rompe a máxima anterior e no ”Preço de Entrada” você precisa usar a opção “Máximo anterior”.

terça-feira, 7 de dezembro de 2021

Robôs: Roteamento de Ordens ativado

Para que um robô possa entrar em operação é necessário que o Roteamento de Ordens esteja ativado. Também é necessário que a opção de corretora do robô, nos Parâmetros de Negociação, seja a mesma em que o roteamento de ordens está atualmente ativado, ou seja, para um robô configurado para operar no Simulador também é necessário que o roteamento de ordens esteja ativado no Simulador. Da mesma forma um robô só pode operar em conta real (XP Investimentos) se o roteamento de ordens também estiver ativado nesta mesma opção de corretora. Caso contrário aparecerá uma mensagem de erro na coluna “Execução” da aba “Configuração” da janela de Robôs.


Para ativar o roteamento de ordens na plataforma clique no botão “Minha Conta” que fica no canto superior direito da tela ao lado do link “Sair”. Ele é um botão amarelo. Em seguida selecione a aba “Roteamento de Ordens”, depois a corretora (Simulador para conta demo ou XP Investimentos para conta real). Para que o robô continue funcionando ”na nuvem”, mesmo depois que você feche a plataforma ou desligue o computador, é necessário selecionar/marcar a opção ”Manter ativado”. Se esta opção não for selecionada/marcada o roteamento de ordens é automaticamente desativado quando a plataforma é fechada e sem o roteamento de ordens ativado o robô para de operar, pois não tem um canal disponível para o envio de ordens.

Recomendamos sempre que você teste o robô inicialmente no Simulador (conta demo) para verificar se o funcionamento está correto e compatível com seu backtest, caso tenha utilizado a opção “Importar Backtest”. Somente depois de validar o funcionamento do seu robô no Simulador passe a sua operação para conta real (XP Investimentos).

Para ativar o roteamento de ordens na conta real (XP Investimentos) também é necessário efetuar antes a autorização no site da corretora, conforme telas abaixo:





Depois de efetuada a autorização no site da corretora, abra a janela “Minha Conta”, vá até a aba ”Roteamento de Ordens” selecione a corretora ”XP Investimenos”, depois entre com o seu código de cliente na corretora (número da conta, o mesmo utilizado para fazer login no site da XP), marque a opção “Manter ativado” e finalmente clique no botão ”Ativar”.


Após ativar o roteamento de ordens faça um teste para verificar se as ordens enviadas a partir da plataforma estão chegando na corretora. Para isso abra a boleta de “Compra” que pode ser acessada através do menu ”Janelas”, opção ”Comprar”, conforme tela abaixo:


Em seguida na boleta de compra selecione, por exemplo, a ação PETR4 e coloque um preço bem baixo como 1,99 para que a ordem não seja executada. Com este valor a ordem provavelmente será rejeitada pela corretora, mas o objetivo neste caso é verificar se esta ordem enviada a partir da plataforma InvestCharts aparece no Home Broker da corretora.


Caso a ordem não apareça no Home Broker da corretora então vá até a janela de ”Ordens”, que pode ser acessada através do menu ”Janelas”, aba “Execução” e consulte os detalhes desta ordem para saber o motivo de sua rejeição. Para consultar os detalhes de uma ordem basta selecioná-la e depois clicar no botão ”Detalhes”.

Uma outra opção, para ver a ordem registrada com sucesso, é colocar o preço de compra uns 5% abaixo da cotação atual da ação. Se a ordem for registrada com sucesso então em seguida vá até a janela de "Ordens" e selecione ela e depois clique no botão "Cancelar". Para concluir o teste veja se o estado da ordem muda de "Registrada" para "Cancelada".

Nunca ative um robô em conta real sem antes certificar-se de que o roteamento de ordens está corretamente ativado na corretora. Também recomendamos que nos primeiros dias de operação em conta real você monitore de perto o seu funcionamento, principalmente as primeiras ordens enviadas pelo robô.

Novidades da Versão 3.0.70

1) Backtest: exportação de todos os resultados individuais Agora ao exportar o conteúdo da aba "Backtest individual" o sistema ...