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. It’s very annoying. 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 can control the physical hardware in order to optimize performance if it’s required. 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. Would cracking your file warrant someone’s full time employment for several months? 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. If you aren’t sure if it makes sense for your situation, então, por favor contato me.
Paolo GUI diz
"Ciao"
i’m interested in your dll programming capabilities
Eu absolutamente preciso multi-thread na otimização de backtest mt4, com a possibilidade de utilizar todos os núcleos de cpu de um pc, e todos os núcleos de cpu na minha lan. Sei que deve ser possível usando a dll de programação na mt4. Você pode me ajudar?
Obrigado
Shaun Overton diz
Oi, Paolo.,
MT4 é limitada a um único núcleo – there’s no way to multithread the DLL to speed up your backtests. Quem me dera que poder ajudar, but it’s a design flaw in MetaTrader 4.
Reynard diz
Oi Shaun,
I have got an indicator that i want to sell online.
How do i use DLL or anything else that prevents people from redistributing my indicator once they purchase my indicator online?
Obrigado,
Reynard
Shaun Overton diz
Hi Reynard,
Please contact me directly. I have a solution named Trader Lockdown that does exactly that.
–Shaun
Florin diz
Obrigado por este artigo profissional.
Evans Njuguna diz
Oi Shaun,,,
Great article and your expertise on metatrader-dll is highly appreciated. I need your help in converting some of the code in my EA into dll,,,,for speed/efficiency purposes and also for security. Kindly assist.
Obrigado.
Njuguna.
Shaun Overton diz
Hi Njuguna,
Please email your EA to info@onestepremoved.com para receber uma estimativa.
–Shaun
Johnson diz
So is there a way to have a backtest on a ea you want to test on strategy test That you say “alllow DLL imports “I’m really want to test on my ea on strategy test and is there a way to enable it to run on strategy test?
Shaun Overton diz
The EA can refuse to run all backtests regardless of whether a DLL is involved or not.
wakup309 diz
Oi Shaun,
How to Receive mt4 data from proxy server between client and server, can you guide me to general steps , Obrigado .
Shaun Overton diz
That’s not something that I expect to cover soon.
Dennis Lai diz
Oi Shaun,
thank you for your great sharing above
I have a question, if I’m going to build a EA that wish to check equity or balance if down to certain level, em seguida :
1) close all running and pending orders (even open by other EAs)
2) stop new others from any other EAs
believe (1) no need DLL, while is that needs DLL coding?
thx.
Dennis
Shaun Overton diz
DLL is completely unnecessary for those tasks.
Kosta diz
Oi. I am on the first time on your site. My English is not very well. Sinto muito.
I have one question How does any program Expert Advisor reads the price of EURUSD (or GBPUSD ,..) from editor of MT4?
Obrigado. Kosta.
Shaun Overton diz
Use the function MarketInfo()
Khaled diz
Need tour help
I have an EA that i want to sell
But its need to call an indicator ans a dll file
Aldo i have problèmes of checking trade volume before sends orders
Help me please
Shaun Overton diz
Hi Khaled,
Por favor e-mail info@onestepremoved.com and ask about Trader Lockdown.
–Shaun
Dee diz
Can someone access all the files on my system through enabling DLL. Or the programmer only have access to my platform
Shaun Overton diz
Theoretically they could, but your antivirus would likely detect that kind of attempt.