Cree su propia extensión de MetaTrader (dll) - página 5

 

Veo que eres un gran empresario...

Este no es el foro donde puedes vender esa mierda que tienes.

Que es exactamente lo que has modificado en DGC OZFX EA

firedoji:
¡¡Fácil!! Sólo tienes que descargar todos los e-book de forex y mirar la instrucción en el interior. Tengo más de 200++ e-book de allí y algunos EA también ... Todos los EA allí son editados y modificados...

-----------------------------------------

Descarguetodos los EA Descargue todos los indicadores Descargue el libro electrónico
 
prasxz:
¿es posible hacer una dll de mt4 conectada a un servicio web y hacer un script php que muestre la posición abierta de MT4 a través de un sitio web, para que la gente que no tiene MT4 pueda verlo desde el sitio web en tiempo real?

Alguien publicó hace un tiempo un ejemplo de MQL / MySQL que funcionó muy bien, el único problema con él es que la mayoría de las empresas de alojamiento no permiten el acceso remoto a sus servidores de bases de datos. Sin embargo, si usted tiene acceso completo y el control de su servidor que podría escribir un EA que se conectaría a su base de datos e insertar los datos para cada nuevo orden. Luego, desde su sitio web, simplemente conectarse a la base de datos y leer los datos ... En mi opinión este sería el mejor enfoque.

Ahora un DLL MT4 puede conectarse a un script php pero nunca he tratado de pasar la información de la EA a la página web, yo era capaz de hacer con éxito la otra manera sin embargo ... Usted tendría que mirar en los sockets de Windows, y funciones como HTTP_GET / HTTP_POST.

Patrick

 
Mistigri:
No estoy seguro, esa librería me resulta familiar, ¿estás usando eso para conectarte a un sitio web? ¿Has probado a usar wininet.lib en su lugar?

No creo que el problema aquí sea el archivo def o tu dll ni siquiera se cargaría y funcionaría correctamente ... Si usted puede proporcionar más información ( es decir, alguna pieza del código que está utilizando en la dll ) entonces tal vez puedo tratar de ayudar.

Patrick

¡Hola Patrick!

He encontrado la librería y el código fuente aquí:

https://www.mql5.com/en/forum/178272

Puse allí mi post, pero el administrador lo movió a este hilo...

¡Gracias!

 

Lectura de un archivo localizado en Internet

Hola,

Quiero que un EA lea un archivo, que no se encuentra en la máquina local sino en Internet.

FileOpen sólo funciona cuando el archivo se encuentra en el directorio de metatrader.

Lo he cansado con una c#-dll pero me sale el mensaje de error "no se puede llamar a la función".

¿Tiene s.o. una solución fácil para este problema?

Gracias

 

Solución al error 127 - no se puede llamar a la función

Solución al error 127 - no se puede llamar a la función

Bien,

Finalmente volví a mirar esto anoche. El problema tiene que ver con la asociación del archivo def o nodef equivocado con la dll.

Así es como se arregla en Visual Studio 2008 Express -

1) Ir al proyecto, propiedades - o alt-F7

2) Ir a Linker - doble clic en él y se obtiene una lista desplegable

3) Seleccione Input

4) Cambie el archivo de definición del módulo para ser lo que usted llamó a su archivo def

Asegúrese de que tiene la ruta de acceso y el nombre completo del archivo - como .\ ~ MiDef.def

En la versión 2008 Express, esto no se genera automáticamente como en las versiones profesionales.

Este es el principal culpable. Puede haber otros problemas con el enlazador/compilador que todavía pueden causar un problema. Lo que tiene que hacer es cargar el proyecto de ejemplo ExportFunction que viene con Metatrader4. Este se encuentra en la carpeta experts/DllSample. Ahora vaya y mire sus propiedades página por página, elemento por elemento, y en todas las partes que dice ExportSample, o ExpertSample, (o lo que sea que utiliza en relación con sus convenciones de nomenclatura) cambiar sus propiedades para que coincida con sus propias convenciones de nomenclatura. He revisado y hecho esto ítem por ítem, y luego he comprobado si obtenía el error 127. Continué obteniendo ese error hasta que el archivo de definición del módulo correcto fue declarado explícitamente como una dependencia. No digo que no pueda haber otras cosas además de eso, porque cambié todo para que coincidiera con el ejemplo, pero una vez que el archivo def fue explícito, eso lo arregló.

Recuerda que la dll tiene que estar en la carpeta lib. Tienes que tener un archivo mqh en el directorio include que importe explícitamente la dll, y liste los nombres de las funciones con parámetros, tipos de retorno, etc. Y luego en tu indicador o experto debes incluir el archivo de cabecera. Con eso debería bastar.

CodersGuru y Mistigri tienen buenos ejemplos de cómo hacer esto, pero las versiones Express no profesionales no añaden explícitamente el archivo def como una dependencia, y esa es la raíz del problema que tenemos todos los que usamos las versiones Express. (Al menos no lo añade explícitamente al seleccionar el proyecto concreto para que los que tenemos el problema, lo seleccionemos).

Ver imagen adjunta. Recuerda que probablemente aún quieras asegurarte de que los valores de tu compilador y enlazador coinciden con los de la muestra de exportfunction que viene con Metatrader.

Saludos,

MG

Archivos adjuntos:
properties.jpg  75 kb
 
fedecosta:
¡Hola Patrick!

Encontré la biblioteca y el código fuente aquí:

https://www.mql5.com/en/forum/178272

Puse allí mi post, pero el administrador lo movió a este hilo...

¡Gracias!

Lo siento no he tenido la oportunidad de mirarlo todavía, he estado ocupado, pero no me olvidé y voy a tratar de volver a usted en eso.

Peco07:

Quiero un EA para leer un archivo, que no se encuentra en la máquina local, pero en el Internet.

Tienes 2 opciones, escribir una aplicación en C# que se conecte al sitio web, escribir un archivo de datos en tu ordenador y leerlo desde MT4 o escribir una dll en C++ que se conecte al sitio web y lea los datos ....

Si usted va la ruta C #, hasta ahora parece mucho más rápido que la ruta DLL ... Si quieres escribir una DLL en c++ aquí hay algo de código para ayudarte a empezar.

MT4 DLL Web Connect | Mistigri

MG_1:

El problema tiene que ver con la asociación del archivo def incorrecto o ningún archivo def con la dll.

Así es como se arregla en Visual Studio 2008 Express -

Gracias por la información. Si no te importa voy a reproducir algunas partes de tus mensajes en mi sitio...

 
Mistigri:
Gracias por la información. Si no te importa voy a reproducir algunas partes de tus posts en mi sitio...

No hay problema, sé que mucha gente va allí a aprender, así que espero que ayude a los usuarios de Express y gnu, etc.

-MG

 
fedecosta:
¡Hola chicos!

Tengo un problema al intentar utilizar esta biblioteca.

Los pongo en metatrader\experts\library

Defino correctamente la ruta para el archivo .def

... pero mi EA imprime en el registro este error: -65495

¿Cuál puede ser el problema?

Y, sobre todo, ¿cómo resolverlo?

¿Es posible que el archivo .def esté dañado?

Gracias de antemano...

Hola Fedecosta,

Intenta copiar el archivo def directamente bajo tu unidad c:\Nde... A mi me parece que eso funciona.

Ten en cuenta que esto no tiene nada que ver con la programación de DLL, es específico de este EA...

Patrick

 
Mistigri:
Hola Tim,

Cuando se utiliza dev-c++ el archivo def se genera para usted automáticamente el problema es que usted termina con los nombres de las funciones que se parecen a esto :

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

Adjunto los archivos de ejemplo que hice para VS2008 pero esta vez usando dev-c++ ...

Espero que esto ayude

¿quieres decir que al escribir el archivo dll,

la función en el archivo def debe añadir _z12 al principio?

eso significa que en el archivo .mq4

llamar a la función: get_max_deviation

luego en el archivo .def

la función transferida: _z12get_max_deviation??

¿Qué significa el número @ después del nombre de la función?

gracias

 
Mistigri:

Adjunto los archivos de ejemplo que hice para VS2008 pero esta vez usando dev-c++ ...

Espero que esto ayude

Archivos adjuntos

MistigriFX Sample Debug.mq4 (2.1 KB, 15 views)

MSFXDEV.zip (8.6 KB, 17 vistas )

He dl sus archivos , y compilar el .cpp por la imagen muestran

pero se produce un error

¿mi método de compilación es incorrecto, cómo puedo compilarlo a dll? (soy un principiante en c++ ^^)

Archivos adjuntos:
dev_dll.jpg  298 kb