Robôs: Configuração e Ativação


Assim como no Backtest todo Robô precisa de um Setup de Entrada e um Setup de Saída. Setup é uma configuração que consiste basicamente de um conjunto de regras que avaliam eventos/condições no gráfico através de uma lista de mais de 150 indicadores disponíveis na plataforma.


Associado ao Setup de Entrada temos o Preço de Entrada que informa ao robô qual preço ele deverá usar para enviar a ordem de entrada em um trade. Da mesma forma temos o Preço de Saída que é associado ao Setup de Saída.

Estes parâmetros de configuração, Setup de Entrada/Saída e Preço de Entrada/Saída, basicamente orientam a forma como o robô será executado e por este motivo é muito importante entender o seu funcionamento.

Os setups sinalizam quando a entrada ou a saída deve ocorrer, ou seja, quando as regras/critérios definidos nos setups forem verdadeiros a operação (trade) poderá ser iniciada (Entrada) ou finalizada (Saída), enquanto os preços indicam em qual valor as ordens de entrada e de saída devem ser executadas.

Exemplo: quando o setup de entrada estiver sinalizando verdadeiro, ou seja, podemos fazer a entrada em um trade e o preço de entrada estiver configurado na opção “Abertura” então o robô irá enviar a ordem usando como preço o da abertura do candle/barra atual no gráfico. Se o preço (entrada/saída) estiver configurado na opção “Fechamento” então o robô vai aguardar o momento em que o candle for fechar para então verificar se neste momento o setup (entrada/saída) é verdadeiro e caso seja a ordem será enviada usando o preço de fechamento do candle, ou um valor muito próximo a isso.

Inserindo/criando um Robô:

Para inserir/criar um novo robô clique no botão Strong>Inserir da janela de Robôs.


Todo robô precisa de um nome de identificação, que pode ser o nome da estratégia que ele está implementando, como por exemplo “IFR2” ou “Máximas e Mínimas”.

A "Posição" do robô pode ser “Comprada” para operações apenas na ponta compradora, “Vendida” para operações apenas na ponta vendedora, “Ambas” para operações tanto na ponta compradora como na ponta vendedora ou “Ambas (4S)” (de 4 Setups), para operações nas 2 pontas usando 4 setups, ou seja, um setup para entrada na ponta compradora, um setup para saída na ponta compradora, um setup para entrada na ponta vendedora e mais um setup para saída na ponta vendedora (totalizando 4 setups).


Em seguida selecione os setups e preços de entrada e de saída. 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. Para saber em detalhes como criar, configurar, customizar, importar setups na plataforma consulte os tutoriais abaixo:

Alarmes: Primeiros Passos
Setups: Primeiros Passos
Setups: Importando Modelos

Além disso em nossa página de tutoriais, seção Alarmes e Setups, você encontra a documentação completa sobre este assunto:

Tutoriais

Os stops (gain e loss) e a despesa de cada trade podem ser em valor percentual ou valor fixo (pontos). Para os stops o valor é calculado a partir do preço de entrada e para a despesa o valor é calculado a partir do preço de entrada vezes a quantidade/lotes. A despesa incide 2 vezes sobre o trade, no momento da entrada e no momento da saída. Além do valor percentual e valor fixo os stops (gain e loss) possuem outras opções:

- Mínimo: mínima do candle de entrada,
- Máximo: máxima do candle de entrada,
- Mínimo ant.: mínima do candle anterior ao de entrada,
- Máximo ant.: máxima do candle anterior ao de entrada,
- Lowest (2): mínima dos últimos 2 candles ao de entrada,
- Highest (2): máxima dos últimos 2 candles ao de entrada,
- Max/Min: máxima menos mínima do candle de entrada,
- Max/Fch: máxima menos fechamento do candle de entrada,
- Max/Abe: máxima menos abertura do candle de entrada,
- Fch/Abe: fechamento menos abertura do candle de entrada,
- Max/Min ant.: máxima menos mínima do candle anterior de entrada,
- Max/Fch ant.: máxima menos fechamento do candle anterior ao de entrada,
- Max/Abe ant.: máxima menos abertura do candle anterior ao de entrada,
- Fch/Abe ant.: fechamento menos abertura do candle anterior ao de entrada

Para as primeiras 6 opções temos o valor direto do stop (gain/loss). A este valor podemos aplicar um ajuste (fator) do tipo multiplicar. Por padrão o ajuste é sempre 1, pois qualquer valor multiplicado por 1 é igual a ele mesmo. Se você deseja, por exemplo, aumentar em 10% esse valor basta alterar o ajuste para 1,1. Para diminuir este valor em 10% é só usar um ajuste de 0,9.

Para as opções finais, a partir de Max/Min, temos um valor do tipo amplitude o qual é somado ou subtraído do preço de entrada no trade. Exemplo: imagine que o preço de entrada no trade em uma posição comprada foi 10 e que a amplitude do candle atual (máxima menos mínima) foi de 10 centavos. Um stop loss usando esta opção, com um “Ajuste (fator)” de 1, seria 10 – (0,10 x 1) = 9,90. Imagine que para o stop gain desejamos ter 2 vezes essa amplitude de 10 centavos. Então para isso usamos um “Ajuste (fator)” de 2, assim temos 10 + (0,10 x 2) = 10,20.

No “Dimensionamento de Posição” a qtde respeita o lote padrão do ativo e o limite máximo do dimensionamento da posição. Por exemplo, se o capital inicial é de 100.000,00 e cada posição representa 10% deste total, opção "Percentual do capital inicial" então o valor máximo alocado em cada trade será de 10.000,00. No entanto este valor vai respeitar o lote padrão do ativo, ou seja, se o preço de entrada for de 4,50 e o ativo tem um lote padrão de 100 então a quantidade máxima alocada neste trade será de 2.200, pois 2.200 é múltiplo de 100 e 2.300 vezes 4,50 ultrapassaria o limite de 10.000,00. Também é possível dimensionar as posições a partir do saldo total, ou seja, se o capital inicial for aumentando então o capital alocado em cada trade também irá aumentar. Também é possível dimensionar valores fixos ou quantidades/lotes fixos em cada trade. Além do capital alocado em cada trade é possível configurar máximo de posições simultâneas. Estas configurações de dimensionamento de posição são muito importantes pois elas determinam o nível de risco que será assumido. É importante saber que sempre o valor será multiplicado pelo número de posições simultâneas.

Exemplo: se for selecionada a opção “Percentual do capital inicial” e o capital inicial for 100.000,00 e as posições simultâneas forem 5 então não poderemos ter mais do que 20% configurado no campo valor (%), pois 20% x 5 = 100%. Da mesma forma na opção “Valor fixo” com 5 posições simultâneas não poderemos ultrapassar o valor de 20.000,00, pois 20.000,00 x 5 = 100.000,00.

As opções de saída permitem o encerramento dos trades em situações onde o setup de saída e nem os stops (loss e gain) foram acionados. A opção ”Final do dia” permite que um trade seja encerrado de qualquer forma no final do dia, sempre 15 minutos antes do mercado fechar, e neste caso será considerada a cotação atual neste horário. A opção “Primeiro fechamento com lucro” encerra o trade no primeiro candle/barra que fechar com lucro. A opção de saída “Após nº máx. de candles/barras” permite que um trade não se estenda muito, pois após atingir a quantidade máxima de candles/barras configurada o trade será encerrado. A opção “Mesmo candle/barra de entrada: permitir” permite que um trade seja encerrado através do setup de saída no mesmo candle/barra em que a entrada ocorreu.

Para selecionar os ativos que o robô irá operar clique no botão “+”. Para remover ativos inseridos previamente clique no botão “-“. Para selecionar vários ativos de uma vez só utilize o botão “Portfólio”. É possível montar um portfólio para a execução do robô com até 50 ativos. Voce pode selecionar um portfólio já existente na plataforma ou criado por voce na grade de cotações. Em caso de dúvidas sobre como criar seu próprio portfólio para execução de robôs assista o video tutorial abaixo:

Grade de Cotações

Ainda na lista de ativos que o robô irá operar temos o botão ”Classificação” que permite configurarmos a ordem em que os ativos serão selecionados quando tivermos vários deles dando sinal de entrada em um trade ao mesmo tempo. Com esta opção podemos escolher os critérios de classificação que teoricamente tem maior probabilidade de lucro para os ativos. Para cada critério: Desvio Padrão (9,1) / Preço, Preço / MMA 100, Volatilidade Histórica (22), IFR Clássico (9) e ADX (9,9), podemos escolher também a ordem: Maior primeiro ou Menor primeiro. Estes critérios usam indicadores da plataforma os quais possuem seus valores calculados sempre para o candle/barra anterior.

Exemplo: ao escolhermos o critério de classificação “IFR Clássico (9)” e ordem “Menor primeiro” o sistema vai calcular o “IFR Clássico (9)” para todos os ativos da lista e selecionar aquele que tiver o menor valor no candle anterior ao candle em que a entrada em um trade estiver sendo sinalizada.


Ativação:

Para ativar um robô, ou seja, permitir que ele entre em operação/execução basta selecionar a opção Ativado no parâmetro de configuração Estado. Para desativar selecione a opção Desativado.


Além do estado do robô, ativado ou desativado, também é muito importante configurar seu capital inicial, ou seja, o saldo em caixa disponível para operação. Recomendamos que este saldo seja o valor que efetivamente está disponível (com ou sem alavancagem) para que o robô opere. É muito importante que o robô saiba qual é o valor total efetivo, e real, que ele tem disponível para operar através deste parâmetro. Nunca configure o robô com um valor menor que o disponível em caixa para evitar um eventual saldo negativo em conta.

O parâmetro Período informa ao robô em qual tempo gráfico (timeframe) ele deve operar. A opção Automático usa por padrão o tempo gráfico utilizado no setup de entrada (primeira regra do setup). Também é possível forçar a execução do robô em qualquer outro tempo gráfico ao selecionar uma opção diferente de “Automático”.

Parâmetros de Negociação:

Para configurar os parâmetros de negociação do robô clique no botão ”Negociação” que fica na janela Inserir Robô ou Alterar Robô.


Em seguida selecione a corretora (Simulador para conta demo ou XP Investimentos para conta real). Para que o robô entre em execução é importante selecionar uma corretora, ou seja, este parâmetro não pode estar em branco. Também é necessário que o roteamento de ordens esteja ativado e na mesma opção (Corretora) em que o robô foi configurado. Se o robô estiver configurado para operar no “Simulador” então o roteamento de ordens deve estar ativado também no “Simulador”. Se o roteamento de ordens estiver ativado em uma corretora diferente da configurada no robô ele não entrará em operação e será mostrada uma mensagem de erro na aba “Configuração” da janela de Robôs. Da mesma forma será exibida uma mensagem de erro quando o robô não tiver uma corretora selecionada/configurada.

A opção ”Preço nos setups” por padrão vem selecionada na opção “Cotação atual”. Esta opção faz com que as regras no setup que utilizam os valores de máxima e de mínima para o candle atual (Posição ref. 0) sejam substituídos pela cotação atual do candle. Isso é necessário para que a execução dos robôs, de uma maneira geral, fique compatível com o Backtest, pois nos robôs temos o processamento das regras negócio a negócio, diferente do Backtest. Em raras situações onde a regra no robô precisar, de fato, usar os valores de máxima e de mínima no candle atual então selecione a opção “Usar Max/Min”.

A opção “Tipo do preço” informa ao robô como ele deve definir o preço das ordens. Por padrão, para que o robô seja sempre compatível com o Backtest usamos a opção ”Opções: Preço Entrada/Saída” que informa ao robô que ele deve usar os preços de entrada e de saída definidos na tela anterior de configuração, ou seja, nas opções “Preço de Entrada” e “Preço de Saída”. A opção ”Cotação atual (último negócio)” informa ao robô que ele deve sempre usar a cotação atual do ativo, ou seja, o preço do último negócio como sendo o preço das ordens. A opção ”Oferta de venda (Ask)” informa ao robô que ele deve usar o preço da melhor oferta de venda no book como preço nas ordens. A opção ”Oferta de compra (Bid)” informa ao robô que ele deve usar o preço da melhor oferta de compra no book como preço nas ordens. A opção ”À mercado” informa ao robô que ele deve usar sempre o preço da melhor oferta de compra no book quando a ordem a ser enviada for uma venda e sempre o preço da melhor oferta de venda no book quando a ordem a ser enviada for uma compra. A opção ”Spread (em ticks)” que por padrão é configurada com o valor 0, informa ao robô quantos ticks devem ser acrescentados ao preço da ordem, obtido através da opção “Tipo de preço”. Exemplo: para uma ordem de compra de uma ação um spread de 3 ticks significa que serão somados 3 centavos no preço da ordem, pois um tick em uma ação equivale a 0,01 (1 centavo). No caso de uma ordem de venda para o índice futuro, cujo tick equivale a 5 pontos, temos que um spread de 3 ticks significa que serão subtraídos 15 pontos do preço da ordem. Esta opção de spread permite que o robô consiga entrar ou sair mais rapidamente em uma operação (trade) pagando mais caro na compra ou vendendo mais barato.

A opção ”Limite execução ordens (seg)”, que por padrão vem configurada em 120 segundos (2 minutos), informa ao robô quanto tempo ele deve aguardar para que uma ordem, que não seja de stop (loss/gain), seja executada. Após este tempo limite caso a ordem ainda não tenha sido executada totalmente a mesma é então cancelada. Caso uma ordem de entrada em um trade tenha zero como “Qtde exec.”, ou seja, o robô não conseguiu comprar ou vender nada então o trade simplesmente é abortado (não é iniciado). Caso a ordem tenha sido parcialmente executada, ou seja, “Qtde exec.” é maior que zero mas menor que a “Qtde” total da ordem o trade é então iniciado com a quantidade que foi executada até o momento do seu cancelamento. Quando o cancelamento ocorre na saída o robô continua enviando novas ordens para a quantidade que ficou faltando e isso pode ser repetir várias vezes até que toda a posição do robô seja zerada e o trade então encerrado.

A opção ”Tempo antes fechamento (seg)” só se aplica quando o tipo do preço de entrada ou de saída for “Fechamento”. Essa opção de “Fechamento” informa ao robô que as ordens devem ser enviadas sempre no fechamento do candle. Esta opção permite antecipar, em segundos, este tempo antes do fechamento. Por padrão o tempo, em segundos, configurado nesta opção é sempre subtraído do horário de fechamento do candle atual no gráfico. No entanto valores negativos nesta opção fazem com que o tempo seja somado ao tempo de fechamento do candle. Isso pode ser útil caso você queira, por exemplo, que as ordens no final do dia sejam enviadas mais próximas do fechamento do mercado, ao invés do padrão de 15 minutos antes. Exemplo: caso você queira que a ordem seja enviada 5 minutos antes do mercado fechar ao invés de 15 minutos então configure esta opção com um valor negativo de -600. Neste caso serão somados 10 minutos. Também é importante, em uma situação como esta, aumentar o tempo limite para execução das ordens para algo como 10 ou 15 minutos, ou seja, um valor entre 600 e 900 segundos.

A opção ”Horário inicial (HH:MM)” quando ativada informa ao robô qual é o horário inicial das suas operações, ou seja, o robô só começará a operar após este horário.

A opção ”Horário final (HH:MM)” quando ativada informa ao robô qual é o horário final das suas operações, ou seja, após este horário o robô para de operar.

A opção ”Horário zerar (HH:MM)” quando ativada informa ao robô em que horário ele deve zerar suas posições abertas. Esta configuração só se aplica quando o horário configurado for inferior aos 15 minutos antes do fechamento do mercado. Um horário superior a estes 15 minutos será ignorado. Além disso caso o horário final seja configurado com um horário superior ao horário para zerar o mesmo será ignorado, ou seja, o horário final será considerado como sendo o horário para zerar.

A opção ”Lucro máximo no dia (R$)” quando ativada informa ao robô que quando ele atingir este valor de lucro no dia todas as posições abertas deverão ser encerradas e mais nenhuma operação (trade) será iniciada no dia.

A opção ”Prejuízo máximo no dia (R$)” quando ativada informa ao robô que quando ele atingir este valor de prejuízo no dia todas as posições abertas deverão ser encerradas e mais nenhuma operação (trade) será iniciada no dia.

A opção ”Máximo de trades no dia” quando ativada informa ao robô que quando ele atingir este número de operações (trades) no dia ele deverá parar de operar.