A maioria dos Expert Advisors não precisa de uma DLL. Embora programação em MQL é bastante limitativo, basta para 99% de consultores especializados. Programação DLL para MetaTrader só é apropriado quando MQL não oferece uma capacidade que as necessidades da EA.
O que é uma DLL?
DLL significa biblioteca de vínculo dinâmico, o que não é nem um pouco útil para compreender o que ele faz. Conceituar uma caixa de ferramentas completa de ferramentas. A DLL em si é a caixa de ferramentas. O “material” na DLL são as ferramentas que o consultor especialista ou indicador utiliza para tomar decisões. O MQL simplesmente decide qual ferramenta para usar no momento em que.
MetaTrader permite Expert Advisors a capacidade de controlar ou não MQL pode usar uma DLL. Esta opção é o primeiro que aparece na imagem acima. A opção recuado para “confirmar chamadas de função DLL” é um subconjunto desta opção. Sempre MT4 quer usar uma DLL, ele solicitará que o usuário com um sim / não caixa de mensagem cada vez que a DLL é usado. É muito chato. MetaTrader seria melhor sem esta opção, uma vez que confunde a maioria dos usuários.
Quando programar uma DLL MetaTrader
Velocidade
Eu sempre encontro a necessidade de uma DLL sempre que eu pretendo fazer matematicamente intensiva programação. MQL funciona extraordinariamente lentamente para um programação língua. Sempre que um EA quer processar vários milhões calcualtions, ele tende a congelar. MetaTrader suspeita que ele caiu em um loop infinito e bobinas.
Mover esses cálculos em uma DLL que a responsabilidade passa para o cálculo dos números para uma linguagem mais poderosa. MetaTrader só gosta de C / C ou Delphi, que são referidos como nível mais elevado. O MQL programador pode controlar o hardware físico, a fim de otimizar o desempenho se for necessário. Isso usualmente ser um exagero. Um programa de dll genérico C escrita será executado muitos, muitas vezes mais rápido que o mesmo código em MQL. Nós, único programa de DLLs na OneStepRemoved em C ou C (lido como C plus plus).
Vender produtos em MetaTrader
MQL é um programação linguagem inteiramente concebido para negociação. Qualquer coisa que se estende para fora da esfera de negociação, como se conectar a um banco de dados ou ler informações de um servidor, não é suportada.
A empresa que quer vender um Expert Advisor absolutamente precisa de uma DLL. As linguagens de alto nível suporta facilmente operações na web que podem autenticar que é e não é permitido o uso de um arquivo.
Mais importante, linguagens de alto nível oferecer opções de criptografia dramaticamente mais fortes. Decompiling um arquivo MQL, o que significa que quebrá-lo aberto para roubar o conteúdo, só custa cerca de $10-15 se você fizer o suficiente pesquisas do Google. Cracking um arquivo DLL preciso muito mais trabalho. Mesmo um arquivo não criptografado pode levar um programas alguns trabalho trabalhos completos dias para abrir. Cracking uma DLL criptografada poderia levar meses, se o crack para a criptografia não é conhecido. Apesar de tudo o que pode ser criptografada, teoricamente, pode ser deencrypted, torna-se uma questão de escala e recursos. Será que rachaduras seu arquivo mandado de alguém emprego a tempo completo por vários meses? A resposta é não para todos, mas o mais sensível de material.
Ponte várias instâncias do MetaTrader
Ocasionalmente, comerciantes Design Expert Advisors que precisam receber informações de vários corretores, ao mesmo tempo. Broker arbitragem e copiadoras comerciais cair firmemente a esta categoria. No caso da copiadora comércio, a conta MT4 que quer copiar outra conta precisa saber o que está acontecendo. A DLL está no meio entre eles como um caminho para passar informações e para trás.
Muitos outros problemas são mais apropriadamente resolvidos com uma DLL. Se você não tem certeza se faz sentido para a sua situação, então, por favor contato me.