Criação de uma GUI para MQLs em modo gráfico. - página 15

 
Vladimir:
Estou interessado em "cada carrapato" para EA com várias moedas. Um gráfico contém eventos de carrapatos provenientes de muitos símbolos? Ou "cada carrapato" tem um significado diferente do comumente aceito, que é tratado pela função OnTick e é descrito na Ajuda como "gerado somente para Consultores Especialistas quando um novo carrapato é recebido para o símbolo, ao qual a EA está anexada"?

Sim, isso não é bem assim. Naqueles dias eles faziam um loop infinito, não havia OnTick, havia uma função de início

int start()
{ 
    while(true)
    {
    // обработка
        Sleep(200);
    }
}
 
Alexey Volchanskiy:

Você é realmente incapaz de responder a perguntas. A forma como os conselheiros se comunicam não me interessa. É isso aí, estou fechando o fio, porque é inútil.

Consulte um psiquiatra). Ele precisa de um mecanismo de troca que não perguntou, não está interessado em como eles se comunicam.
Prefiro que você fale de garotas... conheça-as, chore, ..... alimentou seu borscht.

 
Yuriy Asaulenko:
Merda. No início eu perguntei sobre a GUI - como funciona? Ele respondeu que não precisava dele. Agora acontece que ele precisa disso, como fazem os Consultores Especialistas. Ele já escreveu 100 vezes sobre isso.
Dê uma olhada no meu blog. Já discutimos tudo isso em particular, e parece que já descobrimos tudo isso.
Se você quiser respostas normais, faça perguntas normais). Aprenda a fraseá-los).

Interessado no intercâmbio descrito por você em https://www.mql5.com/ru/blogs/post/671000. Também funciona para mim, mas não creio que a troca de arquivos de comando de texto, que é "bastante adequada para organizar sistemas intraday bastante rápidos", não seja adequada para fins de escalpe. Outra citação de seu blog "Neste caso, a DLL, na fase de projeto, pode ser substituída pela troca de arquivos, para acelerar o uso do disco RAM virtual".

Eu não tive nenhum problema com o desempenho da troca de arquivos. Muito raramente, 2-8 vezes ao ano, há situações de corrupção de informação, quando um novo tamanho de arquivo já foi colocado no buffer de SO, mas seu conteúdo (cadeia até várias dezenas de bytes) neste buffer ainda não foi atualizado. Caso contrário, não vejo nenhuma diferença entre a transferência de arquivos e qualquer outra solução, ela ainda precisa de RAM para troca. O tamanho dos arquivos de troca é tal que o controlador de disco não tem a necessidade de endereçar as placas magnéticas. Para reduzir ainda mais esta freqüência, eu não apago os arquivos de sinal, mas os esvazio para que tenham um lugar permanente na placa magnética (aglomerado). Por favor, diga-me, em que se baseia sua opinião de que o compartilhamento de arquivos só é bom para a fase de desenvolvimento?

E mais uma pergunta. Em cada um dos terminais que você abre pelo menos dois gráficos, estou correto?

Acho que somente um EA pode ser anexado a um gráfico e você tem "Precisamos de dois МТ Consultores Especialistas: o primeiro escreverá informações por ticks no arquivo CSV para leitura por sistema e o segundo receberá informações do sistema e será responsável pelas funções comerciais".

Взаимодействие МТ со сторонним ПО
Взаимодействие МТ со сторонним ПО
  • 2016.05.08
  • Yuriy Asaulenko
  • www.mql5.com
Еще до начала работы на рынке мною была создана торговая система на Excel с небольшими кусками кода на VBA (Visual Basic for Application). Почему на Excel-VBA? - потому, что система несложная, и проще было на VBA. А возможности Excel позволяют свести программирование к минимуму. По мере развития доля VBA увеличивалась, и постепенно за Excel...
 
Alexey Volchanskiy:

Sim, isso não é bem assim. Naqueles dias eles faziam um loop infinito, não havia OnTick, havia a função de início

Acho que entendo. Do código acima segue-se que a coleta das últimas citações é feita não mais que cinco vezes por segundo(Sleep(200)). É este o período mínimo de carrapato de múltiplas moedas considerado em seu código? Se eles vêm com mais freqüência, você os ignora? Ou este valor (200) é diferente agora, depois de 10 anos?
 
Vladimir:
Acho que consegui. O código acima sugere que a coleta das últimas citações é feita não mais do que cinco vezes por segundo(Sleep(200)). É este o período mínimo de carrapato de múltiplas moedas considerado em seu código? Se eles vêm com mais freqüência, você os ignora? Ou este valor (200) é diferente agora, depois de 10 anos?

O temporizador está agora recolhendo amostras em intervalos de 1 segundo, pulando o resto. 200 ms está na memória, já foi há muito tempo. Acontece que muitas vezes é excessivo, e durante os testes e otimização carrega muito a CPU.

 
Renat Fatkhullin:

Nós iremos, especialmente quando congelarmos as versões de 32 bits em setembro e só iremos suportar as versões de 64 bits da plataforma.

Agora estamos preparando uma séria atualização do compilador, movendo algumas funções do sistema para programas MQL5, o que irá melhorar drasticamente o otimizador e acelerar o código resultante dos programas MQL5.

Publicaremos os benchmarks de desempenho completos para comparação com C++, juntamente com o código fonte, para que qualquer pessoa possa verificá-los por si mesma.

Renat, você pode adicionar uma pequena adição às mudanças: definir a propriedade estilo WS_CLIPCHILDREN para molduras de quadros ou janelas de quadros. Isto permitirá colocar qualquer janela para crianças nos quadros ou janelas de quadros sem manipulações adicionais. Atualmente, sem esta propriedade, uma janela dos pais (uma janela de tabela ou uma moldura de tabela) desenha uma janela infantil a ser definida. E ao definir este estilo para a janela dos pais, tudo é muito bem feito.

Suponho que esta adição não será difícil de ser feita. E em conjunto com os callbacks teremos possibilidades muito amplas para o desenvolvimento de add-ons para MT, sem entrar em suas "tripas". )))