La mayoría de los asesores expertos no necesitan un archivo DLL. Aunque la programación en MQL es bastante limitante, basta para 99% de asesores expertos. Programación DLL para MetaTrader sólo es apropiada siempre MQL no ofrece una capacidad que las necesidades de EA.
¿Qué es un archivo DLL?
DLL significa librería de enlace dinámico, que no es ni un poco de ayuda para entender lo que hace. Conceptualizar una caja de herramientas completa de herramientas. La DLL propio es la caja de herramientas. La “cosas” en la DLL es las herramientas que el asesor de expertos o indicador utiliza para tomar decisiones. El MQL simplemente decide qué herramienta utilizar en ese momento.
MetaTrader permite Expert Advisors la capacidad de controlar o no MQL puede utilizar un archivo DLL. Esta opción es la primera que aparece en la imagen de arriba. La opción de sangría para “confirmar las llamadas a funciones DLL” es un subconjunto de esta opción. Siempre que MT4 quiere utilizar una DLL, se le pedirá al usuario un cuadro de mensaje no sí / cada vez que se utiliza la DLL. It’s very annoying. MetaTrader estaría mejor sin esta opción, ya que confunde a la mayoría de los usuarios.
Al programar una DLL MetaTrader
Velocidad
A menudo me encuentro con la necesidad de una DLL cada vez que pienso hacer matemáticamente intensivo programación. MQL funciona extraordinariamente lentamente para una programación el idioma. Siempre que un EA quiere procesar varios millones de calcualtions, tiende a congelar. MetaTrader sospecha que cayó en un bucle infinito y estrangulaciones.
Mover esos cálculos en una DLL pasa que la responsabilidad para el cálculo de los números a un lenguaje más poderoso. MetaTrader sólo le gusta C / C o Delphi, que se conoce como nivel más alto. La MQL programador can control the physical hardware in order to optimize performance if it’s required. Eso ususally ser excesiva. Un programa dll genérico C escrito se ejecutará muchos, muchas veces más rápido que el mismo código en MQL. Nosotros sólo DLL del programa en OneStepRemoved en C o C (leer como C plus plus).
Vender productos en MetaTrader
MQL es una programación lenguaje diseñado íntegramente para el comercio. Cualquier cosa que se extiende fuera de la esfera de la negociación, tales como conectarse con una base de datos o leer información de un servidor, No se admite.
Una empresa que quiere vender un Asesor Experto absolutamente necesita una DLL. Los lenguajes de alto nivel soportan fácilmente las operaciones web que pueden verificar quién es y no está permitido el uso de un archivo.
Más importante, lenguajes de alto nivel ofrecen opciones de cifrado dramáticamente más fuertes. Descompilación un archivo MQL, lo que significa romper abierta para robar el contenido, sólo cuesta alrededor $10-15 si haces suficientes búsquedas de Google. Cracking un archivo DLL necesita mucho más trabajo. Incluso un archivo sin cifrar puede tardar un programas algunos trabajos en obras llenas días para abrir. Cracking una DLL cifrado podría tomar meses si la grieta para el cifrado no es conocida. Aunque todo lo que puede ser cifrado teóricamente pueden deencrypted, se convierte en una cuestión de escala y recursos. Would cracking your file warrant someone’s full time employment for several months? La respuesta es no para todos pero el más sensible de material.
Puente varias instancias de MetaTrader
De vez en cuando, comerciantes diseñar asesores expertos que necesitan para recibir la información de múltiples corredores al mismo tiempo. Arbitraje Broker y copiadoras comerciales caen con fuerza en esta categoría. En el caso de la copiadora comercio, la cuenta MT4 que quiere copiar otra cuenta tiene que saber lo que está pasando. La DLL está en el medio entre ellos como un camino para pasar información de ida y vuelta.
Muchos otros problemas se resuelven más apropiadamente con una DLL. If you aren’t sure if it makes sense for your situation, entonces por favor contacto Me.
Paolo sioli dice
Ciao
i’m interested in your dll programming capabilities
Necesito multiproceso en optimización de backtest mt4, con la posibilidad de utilizar todos los núcleos de cpu de un pc, y todos los núcleos de cpu en mi lan. Sé que debe ser posible usando dll programación en mt4. Me puedes ayudar?
Gracias
Shaun Overton dice
Hola Paolo,
MT4 está limitada a un solo núcleo – there’s no way to multithread the DLL to speed up your backtests. Me gustaría que poder ayudar, but it’s a design flaw in MetaTrader 4.
Reynard dice
Hola 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?
Gracias,
Reynard
Shaun Overton dice
Hi Reynard,
Please contact me directly. I have a solution named Trader Lockdown that does exactly that.
–Shaun
Florin dice
Gracias por este artículo profesional.
Evans Njuguna dice
Hola 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.
Gracias.
Njuguna.
Shaun Overton dice
Hi Njuguna,
Please email your EA to info@onestepremoved.com para recibir un presupuesto.
–Shaun
Johnson dice
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 dice
The EA can refuse to run all backtests regardless of whether a DLL is involved or not.
wakup309 dice
Hola Shaun,
How to Receive mt4 data from proxy server between client and server, can you guide me to general steps , Gracias .
Shaun Overton dice
That’s not something that I expect to cover soon.
Dennis Lai dice
Hola 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, entonces :
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 dice
DLL is completely unnecessary for those tasks.
Kosta dice
Hay. I am on the first time on your site. My English is not very well. Lo siento.
I have one question How does any program Expert Advisor reads the price of EURUSD (or GBPUSD ,..) from editor of MT4?
Gracias. Kosta.
Shaun Overton dice
Use the function MarketInfo()
Khaled dice
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 dice
Hi Khaled,
Por favor correo electrónico info@onestepremoved.com and ask about Trader Lockdown.
–Shaun
Dee dice
Can someone access all the files on my system through enabling DLL. Or the programmer only have access to my platform
Shaun Overton dice
Theoretically they could, but your antivirus would likely detect that kind of attempt.