Tudo sobre Arquitetura de Robôs

 
Decidi criar esse tópico para concentrar tudo (perguntas, respostas, cases, informações, etc.) sobre Arquitetura de Robôs em geral, com questões relevantes sobre arquitetura de software, estratégias, táticas, técnicas, etc. para o desenvolvimento/projeto de tecnologias ou produtos utilizando o MT4/MT5.

Algumas regras básicas:

1. Por favor não faça perguntas sobre outros assuntos aqui.
2. Se você já criou ou vai criar um tópico especificamente com sua pergunta coloque aqui apenas uma referência para ele para evitar redundância.
3. Por favor siga as regras do fórum (https://www.mql5.com/pt/about/rules)

Obrigado e boa discussão sobre Arquitetura de Robôs a todos!

Rogério Figurelli
Regras
Regras
  • www.mql5.com
Por favor, seja educado na participação deste fórum. Quaisquer mensagens que possam ofender outros visitantes do fórum são proibidas. As discussões negativas sobre qualquer banco, corretoras, de outras empresas ou instituições financeiras estão proibidas. Estas postagens estão sujeitas à remoção. Todas as discussões sobre as relações pessoais...
 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Como calcular rates_total pelos segundos e não pelo "current", tempo atual (Mínimo de 1 minuto)?

Rogerio Figurelli, 2019.04.06 03:19

Olá @NMarlon, sua pergunta já está precisamente respondida pelo colega de fórum @Joscelino Celso de Oliveira, uma vez que você solicitou os valores em segundos, mas caso seu modelo precise de mais precisão, com uma série temporal maior, ou ainda não correr o risco de perder transições, recomendo utilizar a função EventSetMillisecondTimer().
Sds.,
Rogério Figurelli

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Dois robôs no mesmo terminal METATRADER

Rogerio Figurelli, 2019.04.06 13:14

Olá Eduardo,
Em tese irá funcionar pois essa seria uma forma de estar executando dois EAs em paralelo, dentro da mesma plataforma, e no caso usando o mesmo ativo.
Na prática deve funcionar também independentemente de que gráfico você está utilizando para executar a ordem manualmente.
Entretanto sugiro estar atento aos riscos de sincronismo de execução entre os EAs, principalmente quanto à qualidade e latência do sistema que irá copiar os trades, fazendo inicialmente testes e homologação em conta demonstração.
Sds.,
Rogério Figurelli


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Protocolo FIX

Rogerio Figurelli, 2019.04.06 13:02

Olá @ericsebestyen perfeitamente, parabéns pela iniciativa e obrigado por compartilhar.
Não sei se entendi bem sua necessidade, mas você tem certeza que não consegueria desenvolver sua própria estratégia de negociação de opções, como as principais em https://www.metatrader5.com/pt/terminal/help/trading/options_board, diretamente de forma programática pelo MT5?
Sds.,
Rogério Figurelli


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Você tem alguma questão sobre Metatrader 5! Pergunte Aqui!

TraderPrado, 2019.04.05 21:16

Olá a todos! Por acaso alguém sabe se existe algum grupo de estudo aqui que esteja trabalhando na construção de algum plugin para MT5 que faça algo parecido com o "YuCluster" ? Tipo: informações de OPEN/CLOSE - HIGH/LOW - ASK/BID -DELTA - QUANTIDADE DE NEGÓCIOS - tudo isso extraído de cada vela em tempo real? Já vi isso funcionando, mas os caras que fizeram cobram uma fortuna pra vender o plugin.

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Sequência em que as ordens são processadas

Trader_Patinhas, 2019.02.05 03:19

Oi Samuel.

No caso eram operações de arbitragem, explorando ineficiências de mercado, ou seja, distorções transitórias na proporção entre preços de diferentes ativos que deveriam estar sempre correlacionados. Estas distorções normalmente se desfazem rapidamente, pois logo algum robô percebe e explora a distorção, restabelecendo o equilíbrio do mercado. Se o seu robô for o primeiro a perceber e conseguir agir antes dos outros, vc ganha dinheiro sem risco.

Exemplos de arbitragem: units x ações preferenciais e ordinárias, ações x opções, opções do mesmo ativo com diferentes strikes e/ou vencimentos, box de 4 pontas, lote cheio da ação x mesma ação no mercado fracionário, ADR's de empresa brasileira x ações da mesma empresa na B3, contratos futuros com diferentes vencimentos x taxa de juros, triangulações entre 3 moedas, triangulação entre commodities no Brasil e no exterior e câmbio USD/BRL, etc.

Essas oportunidades surgem a qualquer momento, em qualquer direção, geralmente causadas por algum comprador ou vendedor que faz um movimento grande e repentino, e geralmente só podem ser capturadas com lucro se você comprar/vender pelo menos uma das pontas de forma passiva, com ordem pendente em preço um pouco afastado do bid/ask, para capturar uma variação súbita e inesperada de um ativo antes que o(s) preço(s) do(s) ativo(s) correlacionado(s) se mexa(m).

Claro que dá pra evitar o problema do "zé-com-zé" que eu relatei colocando a "isca" (a ordem pendente) somente em uma das pontas de cada vez, mas nesse caso perdem-se metade das oportunidades.


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Protocolo FIX

Rogerio Figurelli, 2019.04.06 15:17

Olá @ericsebestyen muito interessante, não sabia que era um desenvolvimento próprio, parabéns!
Essa é uma excelente oportunidade de discussão de projetos na área de opções/derivativos, principalmente se forem superadas as limitações de integração com FIX e outras plataformas disponibilizadas pelas corretoras, como você está projetando.
Obrigado,
Rogério Figurelli


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Você tem alguma questão sobre Programação, com código fonte exemplo! Pergunte Aqui!

Rogerio Figurelli, 2019.04.10 23:54

Olá @Joscelino Celso de Oliveira,
Perfeitamente, agora ficou mais claro seu questionamento, que considero um ponto bastante relevante, principalmente para segurança de operações na B3.
Acredito que não existe uma forma determinística de garantir essa sincronização no MT5 apenas do lado do cliente, principalmente porque o robô depende de toda configuração e arquitetura cliente/servidor de cada corretora.
Dessa forma, nessa questão, sou bastante conservador, e utilizo uma abordagem de buscar trabalhar com o máximo de informações que a plataforma disponibiliza, como por exemplo validar a abertura e fazer o acompanhamento de posições, para comparar com a realidade de mercado e com a realidade apresentada nos dados do ativo em tempo real, de forma a poder agir imediatamente no caso de detecção de algum problema de sincronização.
Em outra palavras, infelizmente, me parece que a tecnologia para isso, do lado do cliente, está mais em trabalhar nos efeitos que nas causas dos problemas, uma vez que nem sempre esses problemas de sincronização são de simples detecção.
Evidentemente que essa abordagem está considerando apenas uma plataforma MT5 e corretora específica, pois sem dúvida é possível pensar em abordagens com arquiteturas bem mais complexas e de maior investimento, como tipicamente em sistemas organizacionais e com maior volume operacional, mas que no meu entender perdem o sentido em termos de custo/benefício para serem disseminadas para a maior parte dos usuários aqui nesse fórum.
Espero ter ajudado.
Sds.,
Rogério Figurelli


 

Artigos

Estudo de técnicas de análise de velas (Parte II): Busca automática de novos padrões

Alexander Fedosov, 2019.04.11 08:51

No artigo anterior, nós analisamos 14 padrões selecionados de uma grande variedade de formações de velas existentes. É impossível analisar todos os padrões um por um, portanto, outra solução foi encontrada. O novo sistema busca e testa novos padrões de velas com base nos tipos de velas conhecidos.

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Backtest genética rápida finalizado antes de completar todas as combinações

Raquel Picanco, 2019.04.21 04:04

Olá, pessoal,

rodei um backtest hoje por genética rápida e o seguinte acontece:

Quando é iniciado são geradas por exemplo 10175 combinações das mais de 1 milhão que seria caso fosse realizado o algoritmo completo lento. Tudo ocorre bem até que o teste é dado como finalizado quando alcança por volta de 8700/10175.

Sou nova na área dos EAs e não tenho ideia do que pode ser... poderiam dar uma luz?


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Por que o Metatrader 5 trava tanto ?

Rogerio Figurelli, 2019.04.28 16:51

Bom dia a todos,

Sem dúvida esse é um tópico bastante relevante, segue minha opinião sobre os vários pontos já levantados. Antes de mais nada gostaria de deixar claro que minha visão é focada em encontrarmos soluções para a melhoria de qualidade, pois acredito bastante no potencial do produto, e não tenho nenhum conflito de interesses com fabricantes e ou corretoras, apesar de ser um moderador desse site.

1) Quanto ao VPS
Note que ter uma "boa" VPS não significa apenas ter a menor latência, mas também ter uma boa capacidade de processamento, com "bom" dimensionamento dos principais recursos, principalmente de estabilização do sistema operacional. Acredito que não seja o caso do @sergiomt, portanto essa observação é geral para qualquer usuário, pois muitas vezes vejo plataformas instaladas em servidores gratuitos com o mínimo desempenho.

2) Quanto a outras plataformas funcionarem bem
Sem nenhum desmérito a outras plataformas, notem que o MT5 possui uma arquitetura aberta para desenvolvimento extremamente avançada, que no meu entender foi herdada do expertise em Forex, onde ela é líder absoluta de mercado pelo menos no quesito de volume de usuários. Acompanho essa evolução de plataformas no Brasil desde 1998 e uso o MetaTrader desde sua versão MT3 e sempre ele esteve, na minha opinião, muito à frente das plataformas locais, principalmente em abertura para desenvolvimento de EAs e Indicadores personalizados, algo muito recente e extremamente limitado ainda (infelizmente) em nosso país. Dessa forma, é evidente que os riscos assumidos pela MetaQuotes e corretoras que disponibilizam essa plataforma é muito maior, justamente pelo nível de abertura de desenvolvimento, com maiores chances de falhas e riscos (como acontece, por exemplo, quando comparamos plataformas abertas e proprietárias) para qualquer aplicação, com inúmeros exemplos de mercado. Aliás, essa é uma lógica da tecnologia da informação: quanto mais avançada a tecnologia, maiores os riscos, maiores as chances de erros/falhas, mas, principalmente, maiores as possibilidades e oportunidades de resultados. Não por menos, a indústria de software só cresceu no mundo passando os riscos para os usuários, o que também não concordo, mas essa é a realidade e os termos de uso são muito claros nesse sentido (para quem é muito novo, note que foi Bill Gates a pessoa chave nesse processo, e isso foi fundamental para não estarmos usando o MS-DOS em nossas máquinas até hoje).

3) Quanto ao MT5 funcionar bem no exterior e/ou com Forex
É importante não esquecer que o MT5 for criado e lançado em 2010 justamente com um recurso diferenciado: a capacidade de operar no mercado de ações. Ou seja, partindo de uma plataforma líder em Forex (a MT4) foi criada uma tecnologia que incorpora as duas funcionalidades, o que é no meu entender uma grande inovação, principalmente que em 2010 não existia nada no mesmo nível de competitividade. Sem dúvida os riscos aumentaram muito com essa inovação, o que no meu entender justifica o fato de ainda existir o MT4 no mercado, totalmente focado em Forex, e que sempre me pareceu estar cada vez mais baseado na própria plataforma do MT5 (não tenho acesso a essas questões estratégicas, essa é apenas uma especulação). Dessa forma, é natural que o MT5 tenha performance excelente para Brokers/Corretoras MT5 em qualquer lugar no mundo, já que esse é o expertise de longo tempo. Mas quando entra o mercado acionário os problemas aumentam exponencialmente. Note-se que a B3 (BMF e Bovespa) foram pioneiras em testes do MT5, e acompanhei isso desde o início, ajudando em vários momentos no processo de identificação de problemas, quando iniciaram as operações em 2014 através da corretora XP, pioneira no Brasil com o MT5.

4) Quanto à qualidade das corretoras
Acredito que uma boa parte dos problemas está em duas questões: conhecimento especializado no MT5 e integração dos fornecedores de market data com as corretoras. Justamente o que já comentei antes em termos de abertura do MQL4/MQL5, se essas plataformas servidoras não estiverem bem ajustadas por profissionais especializados tanto em B3 e Forex, como na própria plataforma, os riscos são muito grandes de ter problemas. Então o investimento não passa apenas pela questão de tecnologia, mas de treinamento especializado e qualificação das equipes.

5) Quanto a soluções
No meu entender esse é o item que devemos focar, a menos que alguém me convença que existe alguma outra plataforma no mesmo nível e que isso não vale a pena. Sendo pragmático, nesse sentido, como existe uma limitação até onde o usuário e os fornecedores de robôs podem proteger (ver lista mais detalhada em https://www.mql5.com/pt/forum/23409), assim como as próprias corretoras em relação à plataforma, e a tecnologia apresenta grande evolução e abertura, me parece que o mais adequado seja uma colaboração entre usuários e profissionais nas corretoras. Como fazer isso? Também não tenho uma resposta, e acredito que seja um primeiro passo para discussão aqui, ficando essa minha sugestão.

Fico também à disposição para esclarecer qualquer ponto da minha opinião sobre o assunto, e colaborar na solução dos problemas apontados.

Sds.,
Rogério Figurelli


Razão: