Tudo sobre Arquitetura de Robôs - página 5

 
Extraindo dados estruturados de páginas HTML através de seletores CSS
Extraindo dados estruturados de páginas HTML através de seletores CSS
  • www.mql5.com
O ambiente de desenvolvimento do MetaTrader permite integrar programas e dados externos, nomeadamente obtidos da Internet via WebRequest. O formato de dados mais universal e usado na Web é HTML. Quando um serviço público não fornece uma API aberta para solicitações ou a API em si mesma, seu protocolo é difícil de implementar em MQL, e é nesse...
 
Métodos para medir a velocidade do movimento de preços
Métodos para medir a velocidade do movimento de preços
  • www.mql5.com
Existem diferentes abordagens para estudar e analisar o mercado, mas, há dois principais, nomeadamente a técnica e a fundamental. No primeiro caso, acontece a coleta, o processamento e o estudo de quaisquer dados numéricos e de características relacionadas ao mercado: preços, volumes e assim por diante. No segundo caso, acorre a análise de...
 
Como transferir a parte de cálculo de qualquer indicador para o código do EA
Como transferir a parte de cálculo de qualquer indicador para o código do EA
  • www.mql5.com
Quando um programador cria um EA que recebe sinais de indicadores, ele sempre defronta a questão sobre se usar o indicador ou se transferir o código do indicador para o EA. As razões para isso podem ser diferentes: o desejo de manter em segredo os indicadores e a estratégia usados, a necessidade de distribuir o EA num único arquivo, o desejo de...
 

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

Serviço MQL5 VPS lançado em São Paulo!

Rogerio Figurelli, 2019.07.28 20:23

Olá  Trader_Patinhas, solução: ter um outro VPS padrão para espelhar os logs por socket ;-)
Falando sério agora, sem dúvida isso não faria lógica, e realmente até onde eu também saiba, o acesso é apenas através dos logs do terminal e expert.
Entretanto esse seu problema me parece similar ao de qualquer empresa com sistemas mais pesados, rodando em servidor blade e com alta performance e nesse caso me parece o mais apropriado os seus robôs fazerem tudo de forma autônoma, e você utilizar o socket apenas para gerar alarmes e os logs (também por socket) apenas para exibir resultados específicos ou relacionados.
Tenho alguns cases de clientes e alguns sistemas bem pesados na cloud processando bigdata e utilizando vários módulos e arquiteturas, como por exemplo baseadas em hadoop, com vários robôs analisando dados em tempo real e cruzando informações em paralelo, onde faço justamente isso, mantendo eles com autonomia em 100% das análises e operações, e onde as pessoas fazem apenas o reconhecimento de alarmes e análise de logs específicos, requisitados por socket.
Note que essa arquitetura também é muito usada para RPA Cognitivo, principalmente quando envolve análise de dados não estruturados como imagens ou até mesmo streaming, o que é bem mais pesado, pelo menos em termos de performance de redes neurais artificiais, que a "simplicidade" de analisar "apenas" preços, volumes, fitas, books, etc., com dados estruturados e limitados.
Na prática, acredito que essa é a tendência, ou seja, as máquinas fazendo tudo cada vez mais com o mínimo de supervisão (como processar logs em tempo real), mas com o máximo de visibilidade, também em tempo real, apenas sobre alarmes e não conformidades.
Mas essa é minha visão e respeito qualquer outra arquitetura, principalmente se gerar roi alpha, que ao fim e ao cabo é o objetivo principal de investir em uma estrutura assim.
Sds.,
Rogério Figurelli


 

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

Robo que analisa todas as ações do IBOV.

Rogerio Figurelli, 2019.07.31 09:07

Olá  marciomichailu, essa é uma possibilidade de robôs relativamente simples que pode ser criada em um robô, uma vez que você pode endereçar qualquer ativo. A questão é a eficiência de uma varredura assim, tanto em termos de estratégia como de performance, principalmente se você for otimizar seu robô usando backtesting, uma vez que o histórico de todos ativos da lista devem ser processados.
Sds.,
Rogério Figurelli


 

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

Dúvida sobre a função ZeroMemory()

Trader_Patinhas, 2019.08.08 04:15

Fiquei preocupado com esta frase que vc escreveu, pois me faz imaginar que há uma coisa importante que talvez vc ainda não tenha captado:

"Não tenho o hábito de declarar variáveis como 'static', justamente para não ter complicações com valores antigos."

Saiba que nas variáveis não-estáticas os valores NÃO são inicializados. Ou seja, elas podem conter inicialmente QUALQUER VALOR, pois elas ocupam endereços físicos na pilha do sistema, que podem ser compartilhados com outras variáveis locais de outras funções do seu programa, ou mesmo com variáveis usadas dentro das chamadas ao sistema operacional feitas pelo seu programa.

Portanto, se nas variáveis estáticas vc tem "complicações com valores antigos", nas não-estáticas vc tem as mesmas complicações com valores que podem ter sido deixados lá por outras funções do programa, ou até pelo sistema operacional.

No caso das estáticas, pelo menos vc sabe quais valores estão lá e pode deixar quietos os que ainda lhe servem. Já no caso das não-estáticas, NÃO DÁ PRA SABER O QUE ESTÁ LÁ e por essa razão vc TEM QUE INICIALIZAR TODOS OS CAMPOS.

No caso de variáveis locais declaradas dentro de um loop, se não houver nenhuma chamada de sistema operacional dentro do loop (imprimir na tela, ler arquivo, etc.), o conteúdo das variáveis declaradas dentro do loop geralmente não será alterado entre uma iteração e outra, e por essa razão, às vezes uma lógica de programação que se baseia na falsa premissa de que a variável nasce com determinado valor pode até funcionar .... mas note que eu disse "GERALMENTE" ... se o programa tiver threads concorrentes compartilhando a pilha, uma outra thread pode usar aquele mesmo endereço físico e alterar o valor armazenado ali ... o próprio compilador às vezes pode modificar a estrutura do seu loop para otimizar tempo de processamento ou memória e essas otimizações podem acabar fazendo com que o mesmo endereço físico fique sendo utilizado alternadamente por duas variáveis locais distintas ... enfim, em uma variável local não-estática declarada dentro de um loop, não é garantido que na iteração seguinte do loop vc encontrará lá o mesmo valor que deixou na iteração anterior.

 



 
Olá, como fazer meu EA realizar saída parcial em conta hedge? Tendo em consideração que uma saída parcial é uma nova operação em sentido contrário, como a corretora irá entender?
 
Aryel Marques:
Olá, como fazer meu EA realizar saída parcial em conta hedge? Tendo em consideração que uma saída parcial é uma nova operação em sentido contrário, como a corretora irá entender?

Primeiramente, observe as regras desta thread e as respeite. Este eh o caminho para se obter ajuda.

Em resposta a sua pergunta, não existe "a corretora entender". Se o código estiver adequado, a operação sera executada sem problemas.  Caso tenha mais duvidas, abra uma nova thread e seja mais objetivo e especifico. 

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

Tudo sobre Arquitetura de Robôs

Rogerio Figurelli, 2019.04.06 13:29

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

 
Joscelino Celso de Oliveira:

Primeiramente, observe as regras desta thread e as respeite. Este eh o caminho para se obter ajuda.

Em resposta a sua pergunta, não existe "a corretora entender". Se o código estiver adequado, a operação sera executada sem problemas.  Caso tenha mais duvidas, abra uma nova thread e seja mais objetivo e especifico. 


Reformulada;

Alguém pode me ajudar com o trecho do código onde o EA faz saída parcial em conta HEDGE?

Razão: