Minha abordagem. O núcleo é o motor. - página 158
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Espere. Você escreveu:
Então, quem tem que exército?
Bem, vou gritar sua grosseria sobre "cara esperto" até o fato de que você não fala bem russo e não entende que isso significa uma atitude depreciativa e desdenhosa em relação à pessoa com quem você está falando.
Por que, você perdeu seu senso de humor?
Infelizmente, sim. Uma interface de chamada de retorno entre dois sistemas fundamentalmente diferentes não é possível.
Na verdade, a questão era quase retórica)
IMHO, com a compatibilidade NET adicionada, é necessário adicionar callbacks ao terminal. Pelo menos um) Pelo menos, para empurrar o evento para a fila terminal.
Se via temporizador, como você vai trabalhar no testador? Pensei que você tinha dito que estava fazendo código multiplataforma.
Artyom, que perguntas? Se o temporizador não funciona, ele é emulado de outras fontes.
é sempre assim mesmo no "robô de batalha", porque o EventSetTimer:-)
ps/ há algo infectilmente atraído para temas militaristas...postos de comando, robôs de combate... "Galacteco Danger"
Na verdade, a questão era quase retórica)
IMHO, com a adição da compatibilidade NET, há uma forte necessidade de adicionar call-backs ao terminal. Pelo menos um) Pelo menos, empurrando o evento para a fila terminal.
Não sou capaz de captar eventos no MT5, o Spy++ não consegue ver eventos no gráfico por algum motivo. Parece que são usadas classes e modelos de eventos autoescritos em vez de eventos padrão do Windows.
Eu uso o OnTimer também, por isso tento receber um pacote mínimo de dados no pedido, embora na velocidade atual do PC eu possa estar ficando ganancioso))))
Se o temporizador, como você trabalha no testador? Pensei que você tinha dito que fazia código de plataforma cruzada.
Quando tentei usar МТ5 foi um verdadeiro prazer escrever em C# - chamo .dll, começo imediatamente um formulário e coloco todos os gráficos em uma thread separada ( Thread ) e é tudo, depois disso só trabalho com a troca de dados entre C# e МТ5 e o formulário gráfico com botões funciona como uma aplicação viúva normal - a solicitação de МТ5 só recebe status de elementos clicados anteriormente e nada está freando ou estará;)
Artyom, para que servem as perguntas? se o temporizador não funciona, é emulado de outras fontes...
este é sempre o caso do "robô de combate", porque o EventSetTimer :-)
ps/ há algo infectilmente atraído para temas militaristas...postos de comando, robôs de combate... "Galacteco Danger"
Bem... Eu queria perguntar a Vassili como ele o faria. Para compará-lo com o que eu mesmo fiz há muito tempo (não sem o conselho de Vasil, é claro)
não consegui capturar eventos no MT5, por alguma razão o Spy++ não consegue ver eventos no gráfico, parece que são usadas classes e modelos de eventos autoescritos em vez de modelos de eventos padrão para viúvas, no MT4 posso enviar um evento para viúvas sem qualquer problema
Eu uso o OnTimer também, por isso tento receber um pacote mínimo de dados no pedido, embora na velocidade atual do PC eu possa estar ficando ganancioso))))
Quando eu tentei usar o OnTimer no MT5, o temporizador no testador é gerado sem problemas e é um verdadeiro prazer escrever em C# - eu chamo .dll, inicio imediatamente o formulário e coloco todos os gráficos em um thread separado ( Thread ), depois disso você só trabalha com troca de dados entre C# e MT5 e o formulário gráfico com botões funciona por si só como uma aplicação normal do Windows - o pedido do MT5 só recebe status de elementos clicados anteriormente e nada é retardado ;)
Eu o fiz em cinco minutos através de um temporizador no testador. Mesmo seu simples uso (é um multitimer de milissegundos) leva a uma séria desaceleração do testador. Portanto, simplesmente recusou o temporizador no visualizador - é a mesma coisa para trabalhar com carrapatos. Fabricados em dois modelos - por temporizador e por eventos de bandeiras através do OnTick(). Por temporizador em tempo real, por carrapatos - no visualizador.
Mentiras - três modelos - também através da OnChartEvent() - somente em tempo real lá também.
não consegui capturar eventos no MT5, por alguma razão o Spy++ não consegue ver eventos no gráfico, parece que são usadas classes e modelos de eventos autoescritos em vez de modelos de eventos padrão para viúvas, no MT4 posso enviar um evento para viúvas sem qualquer problema
Eu uso o OnTimer também, por isso tento receber um pacote mínimo de dados no pedido, embora na velocidade atual do PC eu possa estar ficando ganancioso))))
Quando eu tentei usar o OnTimer no MT5, o temporizador no testador é gerado sem problemas, e é um prazer escrever código sob C# - eu chamo .dll, inicio imediatamente o formulário e em um thread separado ( Thread ) todos os gráficos e isso é tudo, agora eu só trabalho com troca de dados entre C# e MT5, e o formulário gráfico com botões funciona por si só como uma aplicação viúva comum - no MT5 solicitação apenas o status dos elementos clicados anteriormente é enviado, nada está atrasado e não irá atrasar ;)
Se você também fizer Modelo a nível de MQL e outras coisas em Sharpey, será ótimo. Então a lógica é separada, a visão é separada. O frontend lida com design e usabilidade e não lida com o backend comercial. Alterar a configuração dos botões em um formulário ou dividir um formulário em dois ou três não deve afetar de forma alguma os algoritmos do Expert Advisor.
Peter, se você não se importa, vou preparar um artigo sobre como uma aplicação gráfica pode ser criada muito facilmente em MQL, usando o novo recurso de integração com bibliotecas .Net. O título do artigo será "Criação de formulários personalizados no VisualStudio para especialistas em comércio baseados em .Net Framework e C#".
Sua abordagem e suas idéias me animaram. Eu me perguntava se seria possível criar um formulário gráfico para meu Expert Advisor de forma rápida e fácil, usando apenas habilidades básicas de programação. Realizei uma experiência e descobri que isso é possível! Eu tenho um formulário como este:
A idéia era que o usuário desenhasse a forma necessária no editor VisualStudio e todo o trabalho necessário para integrar esta janela com o código MQL seria feito nos bastidores, em modo automático. Para fazer isso, tive que escrever um controlador C# - uma espécie de analógico de seu kernel, porém, são necessárias apenas cerca de 200 linhas de código.
Você pode ler sobre como tudo isso funciona no artigo que comecei.
É isso aí, Vasiliy, você cobriu seu grão com um caldeirão.
É isso aí, Vassily, você cobriu sua cabeça com um caldeirão.
Geralmente espera-se que acabe assim, mas ainda não há nenhum artigo específico...
embora haja 99% de chance de que tal artigo saia antes do kernel-engine. Peter precisa manter a porcentagem restante.
Eu fiz nos cinco através do temporizador no testador. Mesmo apenas usando-o (e é um multitimer de milissegundos) causou um sério abrandamento do testador. Portanto, simplesmente recusou o temporizador no visualizador - é a mesma coisa para trabalhar com carrapatos. Fabricados em dois modelos - por temporizador e por eventos de bandeiras através do OnTick(). Por temporizador em tempo real, por carrapatos - em renderizador.
ZS. Eu minto - três modelos - também através da OnChartEvent() - lá, também, apenas em tempo real.
Ainda não decidi sobre o projeto, verifiquei que funciona no testador sem problemas, graças ao@fxsaber por sua ajuda com o código #define - eu adiciono automaticamente os manipuladores OnTick(), OnTimer() ao conectar o injetor... para que eu possa fazer as ligações necessárias em qualquer seção do Expert Advisor
Eu nem sei onde pode estar o atraso... Eu uso o temporizador com bastante frequência - 400 ms, mas a chamada só está sendo feita a partir do .dll 2 arrays int 10-ele-v e 2 int (quantos botões e quantas caixas de seleção, tal dimensão de arrays), lá simplesmente não pode abrandar fisicamente, porque mesmo escreva no array se o botão foi clicado, e no número int que eu enviar um botão, o array não é necessário em princípio, como backup se o usuário tiver um colapso nervoso e mais rápido do que 0,5 segundos irá bater o botão )))
Acho que temos tarefas diferentes - quando se trata da construção do TS, você não precisa de gráficos, e quando se trata de depuração e visualização do TS, você não precisa da velocidade do testador ;)
Se você também fizer um modelo de nível MQL, e o resto em Sharpay, seria ótimo. Então a lógica é separada, a visão é separada. O frontend trata do design e da usabilidade e não se envolve com o backend comercial. Alterar a configuração dos botões em um formulário ou dividir um formulário em dois ou três não deve afetar os algoritmos do Expert Advisor.
Vou guardá-lo como um lembrete, bom post! E escreva-a na descrição, se eu estiver maduro para comentários do público