Como Funciona um robo de arbitragem entre Mini Indice e Indice? - página 2

 

Ta certo. Vou seguir estudando como sempre fiz. Vou levar em consideração suas palavras e seu modo de interpretar as coisas.

Quando conseguir algo positivo compartilho com voces. 

Segue na paz voce também. Sucesso.

 
Como vejo em muitos outros fórums : Sharing is caring.

Qualquer informação que venha somar à comunidade é bem vinda.
 
Rogerio Figurelli:

Olá massotti, como qualquer sistema operacional baseado em arbitragem estatística, busca-se obter um ganho em diferenças de preço temporárias entre dois ativos correlacionados, e nesse caso a lógica é muito simples: compra do instrumento com menor preço e venda do instrumento com maior preço, com volumes proporcionais, aguardando a correção.

Entretanto, tenha muito cuidado, principalmente no caso de ativos fortemente correlacionados, como índices futuros (mini e cheio), onde os riscos são muito altos, pois a competição irá migrar de arbitragem de preço para arbitragem de latência, e os riscos de sofrer uma grande perda por escorregamento de preços, em um momento desfavorável de mercado, devem ser considerados, mesmo com um S/L programado, pois você irá depender de baixa latência e liquidez para ele ser preciso.

Outro ponto que recomendo estar atento é que esse risco aumenta se você estiver utilizando robôs com o MT5, uma vez que a lógica desse tipo de arbitragem é que quem estiver mais próximo do servidor da BMF terá vantagem competitiva, e isso vale mesmo que você esteja com latência mínima com o servidor MT5 da corretora, uma vez que o mercado é centralizado.

Não esqueça, também, que existem vários vídeos na Internet com cases de sucesso de todo o tipo de estratégia, até mesmo de Martingale em seu formato clássico, que sabemos que é inviável a longo prazo, mas o vídeo que interessa mesmo é o da sua conta real com a estratégia funcionando, que provavelmente você não irá querer publicar se de fato for vencedora e gerar resultados consistentes.

Sds.,
Rogério Figurelli

Olá boa tarde tudo bem, boa explicação do Rogerio Figurelli e sim muito cuidado neste caso de estratégia é sempre bom usar Gerenciamentos de risco e capital

com (Sl) stop loss, principalmente ainda mais se for deixar o algarismo rodando sem ver!


Porque isso de arbitragem nada mais é que exemplo preço fictícios( 4.00 mini dólar venda )    <> espaço oscilante < >     ( 4,15 mini dólar compra).

Portanto nada mais que um,( hedge )podemos dizer assim acontecer irá  realmente encontrar perdas com facilidade pelo fato dos stop loss e take profits 

sugeridos não pagarem os mesmo preços isso se claro se acontecer agora se o preço sell alcançar primeiro e não voltar para o espaço oscilante <> ou o buy ai sim terá seu 

ganho talvez pelo tempo espaço do preço que buscou ou se estiver na frete poderá executar por si próprio....Portanto uma boa estratégia e aquela que consegue fechar em 

Azul para isso é preciso saber onde coloca lá penso nisso ....Mercado é Momento sempre se repete mas quando irá repetir vai do Análise ...


Bons negócios.

 
Criei um robô que faz tais operações. Ele tem uma certa estratégia. Ele se saiu muito bem na conta demo, cerca de R$1050,00 em 26 min. Sei que na conta real não é a mesma coisa. Vou arriscar um certo valor de teste para ver se ele funciona. Se funcionar bem, senão continuar estudando.
 
Lucas_Massotti:
Criei um robô que faz tais operações. Ele tem uma certa estratégia. Ele se saiu muito bem na conta demo, cerca de R$1050,00 em 26 min. Sei que na conta real não é a mesma coisa. Vou arriscar um certo valor de teste para ver se ele funciona. Se funcionar bem, senão continuar estudando.

Olá Lucas_Massotti, independentemente de funcionar ou não, obrigado por compartilhar pois acredito que esse é um bom caminho, de buscar testar na prática as ideias, pois no mínimo aprendemos com isso para ir melhorando, por mais provável ou improvável que seja a ideia original.

Nesse caso específico, me parece que qualquer backtesting ou teste em conta demo vai ser muito longe da realidade, pois exigiria uma precisão de tick a tick muito grande, e, principalmente, que o fornecedor de market data entregue essa precisão, o que não acredito muito.

Dessa forma, e antes dos seus testes em conta real, minha opinião é que os riscos e oportunidades dessa estratégia se equilibram ao de qualquer outra estratégia de pair trading ou long/short, ainda mais com instrumentos tão conhecidos e antigos como esses.

Seja como for, imagino as seguintes possibilidades de resultados dos testes em conta real:

  1. Perda por latência: como comentei no início, a competição está em arbitragem de latência, e você pode até visualizar a diferença, mas estará vendo atrasado e entrando atrasado nela, o que não é nada recomendado.
  2. Perda por exposição: caso a estratégia tenha sido vencedora em algum momento, apenas por arbitragem de preço, uma das leis mais relevantes da economia é a do equilíbrio, e certamente se já foi divulgado até em vídeo no YouTube, já são tantos players fazendo isso, com uma exposição tão grande no mesmo modelo operacional, que as chances de você encontrar o mesmo resultado no mundo real são mínimas e para poucos players, com maior capacidade operacional, ou até mesmo operando contra a estratégia original.
  3. Ganho: nesse caso não há meio termo e você descobriu um "Ovo de Colombo", trilhando um ótimo caminho para se tornar bilionário.

Espero, sinceramente, que a possibilidade correta seja a 3, até porque vejo um elemento novo que é a certa estratégia que você refere, mas da minha experiência no mercado e com robôs acredito bem mais na 1 e 2, mesmo sem escrever nenhuma linha de código, o que implicaria, no melhor caso, em um retorno baixo e de alto risco. Mas, caso não seja a 3 (nesse caso provavelmente você irá ter mais o que fazer), ou até mesmo se for, por favor retorne aqui para compartilhar o resultado de sua experiência em conta real.

Sds.,
Rogério Figurelli

 
Rogerio Figurelli:

Olá massotti, como qualquer sistema operacional baseado em arbitragem estatística, busca-se obter um ganho em diferenças de preço temporárias entre dois ativos correlacionados, e nesse caso a lógica é muito simples: compra do instrumento com menor preço e venda do instrumento com maior preço, com volumes proporcionais, aguardando a correção.

Entretanto, tenha muito cuidado, principalmente no caso de ativos fortemente correlacionados, como índices futuros (mini e cheio), onde os riscos são muito altos, pois a competição irá migrar de arbitragem de preço para arbitragem de latência, e os riscos de sofrer uma grande perda por escorregamento de preços, em um momento desfavorável de mercado, devem ser considerados, mesmo com um S/L programado, pois você irá depender de baixa latência e liquidez para ele ser preciso.

Outro ponto que recomendo estar atento é que esse risco aumenta se você estiver utilizando robôs com o MT5, uma vez que a lógica desse tipo de arbitragem é que quem estiver mais próximo do servidor da BMF terá vantagem competitiva, e isso vale mesmo que você esteja com latência mínima com o servidor MT5 da corretora, uma vez que o mercado é centralizado.

Não esqueça, também, que existem vários vídeos na Internet com cases de sucesso de todo o tipo de estratégia, até mesmo de Martingale em seu formato clássico, que sabemos que é inviável a longo prazo, mas o vídeo que interessa mesmo é o da sua conta real com a estratégia funcionando, que provavelmente você não irá querer publicar se de fato for vencedora e gerar resultados consistentes.

Sds.,
Rogério Figurelli

@Lucas_Massotti

Recomendo que você preste atenção ao um ponto importantíssimo que o @Rogerio Figurelli explicou: "a competição irá migrar de arbitragem de preço para arbitragem de latência".

No caso específico da arbitragem entre minicontratos e contratos cheios, existem players que exploram essas distorções usando robôs HFT que rodam em servidores hospedados dentro da rede local da B3, com latência da ordem de microssegundos (ou até menos).

Se você examinar o log de eventos dos contratos e minicontratos de dólar e índice, verá que as raríssimas oportunidades de arbitragem que ocorrem nunca duram mais do que 1 ou 2 milissegundos, sendo praticamente impossíveis de serem exploradas por um robô que rode fora da rede local da B3.

Detalhe: essas janelas de oportunidade de 1 a 2 ms que observei ocorrem sempre em momentos de pico de fluxo de ordens, de modo que talvez nem sejam oportunidades reais onde se possa entrar negociando e obter lucro (a diferença de 1 a 2 ms talvez seja apenas delay de processamento de fila, inaproveitável para negociação, pois a sua ordem entraria na fila para ser executada).

Um tipo de arbitragem que observei que fica viável de se fazer de vez em quando usando robô externo à B3 é arbitrar lote cheio versus lote fracionário de ações de baixíssima liquidez, pelas quais os grandes players não se interessam em implementar robôs HFT de arbitragem, dado o baixo volume de negociação (nas ações de alta liquidez, tipo PETR4, ITUB4, BBAS3, etc. os robôs dos grandes players traçam todas as distorções entre cheio e fracionário em microssegundos e fica impossível competir com eles).

O problema é que, nessas ações de pouca liquidez, as oportunidades são tão raras e os volumes tão pequenos que o lucro potencial de arbitragem, mesmo com execução perfeita e corretagem zero, seria insignificante (talvez isso explique porque ninguém se interessa em implementar HFT de arbitragem nesses ativos).

Resumindo minha experiência: eu já tentei estudar várias possibilidades de arbitragem em diversos ativos da B3 (inclusive opções) e, pelo menos até o momento, não consegui encontrar nenhuma brecha que permita vencer os robôs HFT dos grandes players usando robôs com latência de milissegundos e os casos que encontrei nos quais não existe concorrência com os HFT são sempre ativos com liquidez e volume tão baixos que raramente compensam os custos operacionais.

Conselho de amigo: é importante vc examinar os históricos tick a tick e simular com precisão o comportamento real do seu robô de arbitragem naquele cenário, considerando latência da conexão de rede, spreads, dinâmica das filas, etc. Se vc não fizer uma simulação precisa e realista do que realmente vai acontecer quando o seu robô estiver operando no mercado real, vc certamente vai se iludir achando que dá pra tirar lucro de onde não dá (esqueça o strategy tester e a conta demo, pois ambos vão te iludir, vc terá que desenvolver seu próprio código para processar o histórico tick a tick, para obter uma estimativa realista do lucro que uma estratégia de arbitragem conseguirá realmente gerar).

 
Rogerio Figurelli:

Olá Lucas_Massotti, independentemente de funcionar ou não, obrigado por compartilhar pois acredito que esse é um bom caminho, de buscar testar na prática as ideias, pois no mínimo aprendemos com isso para ir melhorando, por mais provável ou improvável que seja a ideia original.

Nesse caso específico, me parece que qualquer backtesting ou teste em conta demo vai ser muito longe da realidade, pois exigiria uma precisão de tick a tick muito grande, e, principalmente, que o fornecedor de market data entregue essa precisão, o que não acredito muito.

Dessa forma, e antes dos seus testes em conta real, minha opinião é que os riscos e oportunidades dessa estratégia se equilibram ao de qualquer outra estratégia de pair trading ou long/short, ainda mais com instrumentos tão conhecidos e antigos como esses.

Seja como for, imagino as seguintes possibilidades de resultados dos testes em conta real:

  1. Perda por latência: como comentei no início, a competição está em arbitragem de latência, e você pode até visualizar a diferença, mas estará vendo atrasado e entrando atrasado nela, o que não é nada recomendado.
  2. Perda por exposição: caso a estratégia tenha sido vencedora em algum momento, apenas por arbitragem de preço, uma das leis mais relevantes da economia é a do equilíbrio, e certamente se já foi divulgado até em vídeo no YouTube, já são tantos players fazendo isso, com uma exposição tão grande no mesmo modelo operacional, que as chances de você encontrar o mesmo resultado no mundo real são mínimas e para poucos players, com maior capacidade operacional, ou até mesmo operando contra a estratégia original.
  3. Ganho: nesse caso não há meio termo e você descobriu um "Ovo de Colombo", trilhando um ótimo caminho para se tornar bilionário.

Espero, sinceramente, que a possibilidade correta seja a 3, até porque vejo um elemento novo que é a certa estratégia que você refere, mas da minha experiência no mercado e com robôs acredito bem mais na 1 e 2, mesmo sem escrever nenhuma linha de código, o que implicaria, no melhor caso, em um retorno baixo e de alto risco. Mas, caso não seja a 3 (nesse caso provavelmente você irá ter mais o que fazer), ou até mesmo se for, por favor retorne aqui para compartilhar o resultado de sua experiência em conta real.

Sds.,
Rogério Figurelli

Muito boa sua explicação @Rogério Figurelli. Vou estudar bem sobre os problemas que podem ocorrer, os quais você citou, antes de testar numa conta real. Pode deixar que aviso sim caso der certo, ou mesmo se der errado. 

Att. Lucas

 
Trader_Patinhas:

@Lucas_Massotti

Recomendo que você preste atenção ao um ponto importantíssimo que o @Rogerio Figurelli explicou: "a competição irá migrar de arbitragem de preço para arbitragem de latência".

No caso específico da arbitragem entre minicontratos e contratos cheios, existem players que exploram essas distorções usando robôs HFT que rodam em servidores hospedados dentro da rede local da B3, com latência da ordem de microssegundos (ou até menos).

Se você examinar o log de eventos dos contratos e minicontratos de dólar e índice, verá que as raríssimas oportunidades de arbitragem que ocorrem nunca duram mais do que 1 ou 2 milissegundos, sendo praticamente impossíveis de serem exploradas por um robô que rode fora da rede local da B3.

Detalhe: essas janelas de oportunidade de 1 a 2 ms que observei ocorrem sempre em momentos de pico de fluxo de ordens, de modo que talvez nem sejam oportunidades reais onde se possa entrar negociando e obter lucro (a diferença de 1 a 2 ms talvez seja apenas delay de processamento de fila, inaproveitável para negociação, pois a sua ordem entraria na fila para ser executada).

Um tipo de arbitragem que observei que fica viável de se fazer de vez em quando usando robô externo à B3 é arbitrar lote cheio versus lote fracionário de ações de baixíssima liquidez, pelas quais os grandes players não se interessam em implementar robôs HFT de arbitragem, dado o baixo volume de negociação (nas ações de alta liquidez, tipo PETR4, ITUB4, BBAS3, etc. os robôs dos grandes players traçam todas as distorções entre cheio e fracionário em microssegundos e fica impossível competir com eles).

O problema é que, nessas ações de pouca liquidez, as oportunidades são tão raras e os volumes tão pequenos que o lucro potencial de arbitragem, mesmo com execução perfeita e corretagem zero, seria insignificante (talvez isso explique porque ninguém se interessa em implementar HFT de arbitragem nesses ativos).

Resumindo minha experiência: eu já tentei estudar várias possibilidades de arbitragem em diversos ativos da B3 (inclusive opções) e, pelo menos até o momento, não consegui encontrar nenhuma brecha que permita vencer os robôs HFT dos grandes players usando robôs com latência de milissegundos e os casos que encontrei nos quais não existe concorrência com os HFT são sempre ativos com liquidez e volume tão baixos que raramente compensam os custos operacionais.

Conselho de amigo: é importante vc examinar os históricos tick a tick e simular com precisão o comportamento real do seu robô de arbitragem naquele cenário, considerando latência da conexão de rede, spreads, dinâmica das filas, etc. Se vc não fizer uma simulação precisa e realista do que realmente vai acontecer quando o seu robô estiver operando no mercado real, vc certamente vai se iludir achando que dá pra tirar lucro de onde não dá (esqueça o strategy tester e a conta demo, pois ambos vão te iludir, vc terá que desenvolver seu próprio código para processar o histórico tick a tick, para obter uma estimativa realista do lucro que uma estratégia de arbitragem conseguirá realmente gerar).

Obrigado @Trader_Patinhas , bem lembrado e explicado sobre robos HFT. É algo que deve ser muito bem levado em conta. Você sabe se tem algum conteúdo na comunidade sobre "desenvolver seu próprio código para processar o histórico tick a tick" , que você citou?

 
Isso é coisa de player gigante e não tem espaço pra ninguém. Forget about it.
 
Lucas_Massotti:

Obrigado @Trader_Patinhas , bem lembrado e explicado sobre robos HFT. É algo que deve ser muito bem levado em conta. Você sabe se tem algum conteúdo na comunidade sobre "desenvolver seu próprio código para processar o histórico tick a tick" , que você citou?

Essa pergunta é quase tão genérica quanto perguntar para um médico "como faço para diagnosticar e tratar uma doença?" e esperar que ele consiga resumir 6 anos de curso universitário e 2 anos de residência hospitalar em uma resposta de 2 ou 3 frases ... mas vou tentar te dar uma luz inicial ...

Para baixar o histórico de ticks do servidor vc pode usar as funções CopyTicks e CopyTicksRange. Com elas vc obterá todos os eventos (ticks) ocorridos em um determinado intervalo. Estes eventos são todas as mudanças do melhor preço de venda (ASK) e do melhor preço de compra (BID) e todos os negócios executados, com preço, volume e indicação se foi agressão de venda ou de compra. Cada tick vem no formato MqlTick.

Se vc não tiver familiaridade com MQL5, vc pode gravar tudo em um arquivo binário ou csv (use as funções de manipulação de arquivo) e depois processar o arquivo usando o ambiente e a linguagem de programação da sua preferência.

Bom, estamos falando de arbitragem, certo? Nesse contexto, a microestrutura do mercado (livro de ofertas, filas, gerenciamento de ordens, leilões, etc.) tem que ser simulada com precisão e não há como conseguir isso no Strategy Tester e nem mesmo operando numa conta demo (há várias diferenças entre conta demo e conta real: na conta demo não tem fila de ordens, a liquidez é ilimitada e a execução das ordens é sempre perfeita, sem delay, sem slippage, etc. - pra quem opera em gráfico de velas fazendo operações com vários minutos de duração, essas coisas fazem pouca diferença e a conta demo dá resultados muito próximos da conta real, mas pra arbitragem a diferença é enorme e a conta demo dá resultados muito mais otimistas que a realidade).

Então, pra você entrar nessa, 2 pré-requisitos são imprescindíveis:

1) Ter um sólido conhecimento de como funciona a microestrutura do mercado (pregão, livro de ofertas, tipos de ordem e como elas são processadas, leilões, etc.)

2) Ter uma sólida experiência em algoritmos e programação.

O requisito 2 pode ser mitigado se vc contratar um bom profissional para colaborar contigo nessa parte (nesse caso basta vc ter uma noção suficiente para conseguir avaliar o trabalho do profissional e não ser "enrolado" por ele).

Já o requisito 1 é indispensável vc mesmo ter, senão vc não vai nem saber o que especificar para ser programado e testado e o mercado vai te engolir vivo na primeira tentativa de operar numa conta real.

Abraços!

Razão: