Minha abordagem. O núcleo é o motor. - página 61

 
Dmitry Fedoseev:

Você pode fazer algo assim: em uma dll, um array ou dois arrays, um para o nome do objeto e o outro para o tipo de evento.

aqui!

Ainda não chequei, mas se os desenvolvedores têm suporte avançado para C#.Net, então talvez a troca de tipos de dados complexos entre MT5 e .dll funcione , ou seja, estruturas.

Se a troca de estruturas funcionar, a tarefa se torna ainda mais simples e primitiva.

preenchemos a estrutura com OrderProfit,OrderTicket,OrderStoploss.... no tick ...e enviar esta estrutura para uma .dll e receber uma estrutura de resposta do usuário ... Em seguida, o formulário gira as informações visuais por si só, o próprio terminal.


Tag Konow:

E depois criar uma memória TOTAL dentro da .dll.

Com o número crescente de elementos da forma e a complexidade crescente do programa MT5, esta interação torna-se CELESTIALMENTE ocupada e complexa.

Hmmm, o que há de complicado nisso? Você separa a visualização = .dll, separadamente o trabalho de MT

difícil de explicar, você tem alguma idéia da velocidade da troca de dados através da memória? - não estamos falando de cem mil bytes por segundo, nem mesmo de milhões, vários bilhões de bytes por segundo, e você está falando da complexidade do intercâmbio )))))

 
Реter Konow:

OK.

Portanto, é necessário:

  1. Criar uma DLL.
  2. Conecte a DLL ao aplicativo Windows com um formulário.
  3. Escreva métodos que traduzam eventos de pressão de botões e caixas de seleção em dll.
  4. Escrever métodos que mudam o estado dos botões e caixas de seleção na aplicação da viúva.
  5. Criar memória compartilhada na dll. Para que ao acessar a partir do MT5 a bandeira de mudança de estado para botões e caixas de seleção seja definida. Então o aplicativo Windows acessa a memória compartilhada, lê as bandeiras e as utiliza para conhecer o estado de um ou outro elemento de forma a ser alterado.
  6. Escreva referência cíclica à DLL do cronômetro em MT5 para ler bandeiras de chamadas de função ou inserir texto nos campos.

    E se houver centenas de elementos?

    Como organizar a memória compartilhada?

    E se for necessário mudar não apenas o estado dos elementos pressionados/liberados em uma forma, mas também sua cor (por exemplo, para botões)?

    E se for necessário alterar o texto nos campos de entrada de um formulário de forma programática a partir de МТ5?


    1. Qual é o problema? É a seleção do tipo de projeto quando você o cria.

    2. Como visto no exemplo mostrado por Igor, a conexão é feita em uma linha, você não precisa nem mesmo descrever a importação.

    3. um método é escrito uma vez, salvo em um arquivo, e depois é usado em todos os projetos sem nenhuma alteração.

    4. Provavelmente, é necessário, mas eles são simples. Nem todos eles serão provavelmente necessários, a interação entre os elementos de controle em c# será diferente, e poderá ser necessário colocar um evento, e haverá 100 botões no formulário.

    5. isto está relacionado ao ponto 3.

    6. Também uma linha com a abordagem correta no ponto 3.

    7 - Você tem todo o poder do C# em suas mãos, cuja escala parece não ter idéia, é enorme.

     
    Реter Konow:

    Sem ofensa, mas desculpe por estar fora do tópico.

    Você está pegando o exemplo SIMPLEST e extrapolando a partir dele, pensando que a complexidade não vai aumentar. Isto é um erro.

    Mesmo o exemplo mais simples que você deu está errado. Porque além da forma criada, você também precisa criar uma DLL. E depois criar uma memória TOTAL dentro da DLL.

    medida que o número de elementos da forma cresce e a funcionalidade do programa no MT5 se torna mais complexa, esta interação se torna CLEALMENTE ocupada e complicada.

    Eu testei tudo isso na prática.

    A conclusão é completamente errada.

     

    O problema é que eu fiz REALMENTE o que estou falando. E conheço a complexidade de organizar a interação entre um programa complexo de MT e um programa complexo de terceiros.

    E a abordagem do leigo geralmente é dizer "Isso é fácil... Qual é o problema? É assim, é assim...".

    Dê-me um exemplo de conexão do complexo programa MT ao complexo formulário Windows, onde o programa pode:

    1. Alterar os estados dos elementos e o texto de saída para campos de entrada.
    2. Onde o programa pode aceitar texto dos campos do formulário e mudar as cores dos itens.
    3. Onde o programa pode controlar os fenômenos das janelas de formulário (abrir algumas e fechar outras).
    Posso dar um exemplo disto que funciona plenamente na MT.

     
    Реter Konow:

    O problema é que eu fiz REALMENTE o que estou falando. E conheço a complexidade de organizar a interação entre um programa complexo de MT e um programa complexo de terceiros.

    E a abordagem do leigo geralmente é dizer "Isso é fácil... Qual é o problema? É assim, é assim...".

    Dê-me um exemplo de conexão do complexo programa MT ao complexo formulário Windows, onde o programa pode:

    1. Alterar os estados dos elementos e o texto de saída para campos de entrada.
    2. Onde o programa pode aceitar texto dos campos do formulário e mudar as cores dos itens.
    3. Onde o programa pode controlar os fenômenos das janelas de formulário (abrir algumas e fechar outras).
    Posso dar um exemplo disto que funciona plenamente na MT.

    Se o fizesse, você não estaria fazendo perguntas como hoje. Aprenda c# e faça-o você mesmo. Como conectar dll e métodos de chamada que Igor mostrou ontem.

     
    Dmitry Fedoseev:

    1. Qual é o problema? É a escolha do tipo de projeto quando você o cria.

    2. Como visto no exemplo mostrado por Igor, a conexão é feita em uma linha, mesmo a importação não é descrita.

    3. um método é escrito uma vez, salvo em um arquivo, e depois é usado em todos os projetos sem nenhuma alteração.

    4. Provavelmente, é necessário, mas eles são simples. Nem todos eles serão provavelmente necessários, a interação entre os elementos de controle em c# será diferente, e poderá ser necessário colocar um evento, e haverá 100 botões no formulário.

    5. isto está relacionado ao ponto 3.

    6. Também uma linha com a abordagem correta no ponto 3.

    7 - Todo o poder do C#, do qual você parece não ter idéia, é enorme em suas mãos.

    Dmitry, use o ENORME poder do C# e faça uma aplicação não muito complexa com um formulário, que interage com a aplicação MT e executa estes itens:

    1. Muda os estados dos itens e o texto de saída para oscampos de entrada.
    2. Tira texto dos campos de entrada do formulário e muda as cores dos elementos.
    3. Controla o fenômeno das janelas de formulário (abre algumas e fecha outras).
    Igor e você afirma que é muito fácil. Portanto, você vai administrá-lo rapidamente. Fornecerei um análogo completamente em MT. E vamos comparar a qualidade da execução e a complexidade.
     
    Реter Konow:

    Dimitri, use o GRANDE poder do C# e faça uma aplicação não muito complexa com um formulário que interage com a aplicação MT e executa estes itens:

    1. Altera os estados dos itens e o texto de saída para oscampos de entrada.
    2. Tira texto dos campos de entrada do formulário e muda as cores dos itens.
    3. Controla o fenômeno das janelas de formulário (abre algumas e fecha outras).
    Igor e você afirma que é muito fácil. Portanto, você vai administrá-lo rapidamente. Fornecerei um análogo completamente em MT. E vamos comparar a qualidade da execução e a complexidade.

    Tenho muito o que fazer. Mas você pode continuar com seus delírios.

     

    E oh sim, um milagre invisível na programação - para fazer algo, você tem que escrever uma função para fazê-lo.

     
    Dmitry Fedoseev:

    Eu tenho coisas a fazer. ...

    OK, talvez o Igor faça isso então...

     
    Реter Konow:

    OK, talvez o Igor faça isso então...

    Igor já mostrou demais. E eu já falei demais.