Discusión sobre el artículo "Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF" - página 2

 
Gracias Muy útil introducción tanto a wcf y mql5
 

yo tambien tengo un fallo en el probador de estrategias. en modo normal, va bien.

¿alguien tiene solución todavía?

 
Gracias por su gran trabajo.
 

Impresionante trabajo Alexander. Nunca había codificado en C # antes y yo estaba buscando en conseguir MT5 cotizaciones a fluir a través de Excel sin necesidad de utilizar DDE-Server.

Finalmente lo hice funcionar ajustando tu código con MT5 32 bits. Próximo paso x64.

SM

 
recientemente vi otra forma gratuita de programar C# para MetaTrader
TradePlatform.NET
 
Actualmente estoy tratando de impliment mi propia envoltura c ++ para mi c # dll para mql5 interop. Tengo un problema con la adición de c # dll referencia a mi biblioteca de c ++. ¿Podría aclarar la siguiente frase "... añadir el soporte CLR, System.dll, QExport.dll, Qexport.Service.dll a la referencia de compilación". He podido registrar mi dll con la utilidad regasm, añadirla al gac y obtener un fichero de definición de tipo .tlb. Mi problema es que no puedo encontrar ningún #import o #include declaraciones en el código fuente que ha proporcionado. Tu proyecto parece hacer referencia a tus librerías dll de alguna manera misteriosa. ¿Podría alguien explicarme la forma correcta de añadir una referencia a una dll .NET a una librería c++? Aunque no es una pregunta puramente mql5 se relaciona directamente con el artículo. He estado investigando el tema durante bastante tiempo y todavía no puedo entender cómo una biblioteca c++ puede tener dlls .NET en sus "Dependencias Externas" sin ninguna declaración #import. Este es mi primer encuentro con c++ y hasta ahora no ha sido agradable, incluso pensé en convertir la .dll a .lib y agregarle una referencia, pero antes de hacer nada decidí pedir consejo a un especialista en COM. Estoy corriendo Windows 8 Ultimate x64 y compilo mis dlls de c# con VS2012 Ultimate. Por favor ayuda al novato.
How to Exchange Data: A DLL for MQL5 in 10 Minutes
  • 2010.01.27
  • MetaQuotes Software Corp.
  • www.mql5.com
Now not so many developers remember how to write a simple DLL, and what are special features of different system binding. Using several examples, I will try to show the entire process of the simple DLL's creation in 10 minutes, as well as to discuss some technical details of our binding implementation. I will show the step-by-step process of DLL creation in Visual Studio with examples of exchanging different types of variables (numbers, arrays, strings, etc.). Besides I will explain how to protect your client terminal from crashes in custom DLLs.
 
Burton:

Actualmente estoy tratando de impliment mi propia envoltura c ++ para mi c # dll para mql5 interop. Tengo un problema con la adición de c # dll referencia a mi biblioteca de c ++. ¿Podría aclarar la siguiente frase "... añadir el soporte CLR, System.dll, QExport.dll, Qexport.Service.dll a la referencia de compilación". He podido registrar mi dll con la utilidad regasm, añadirla al gac y obtener un fichero de definición de tipo .tlb. Mi problema es que no puedo encontrar ningún #import o #include declaraciones en el código fuente que ha proporcionado. Tu proyecto parece hacer referencia a tus librerías dll de alguna manera misteriosa. ¿Podría alguien explicarme la forma correcta de añadir una referencia a una dll .NET a una librería c++? Aunque no es una pregunta puramente mql5 se relaciona directamente con el artículo. He estado investigando el tema durante bastante tiempo y todavía no puedo entender cómo una biblioteca c++ puede tener dlls .NET en sus "Dependencias Externas" sin ninguna declaración #import. Este es mi primer encuentro con c++ y hasta ahora no ha sido agradable, incluso pensé en convertir la .dll a .lib y agregarle una referencia, pero antes de hacer nada decidí pedir consejo a un especialista en COM. Estoy corriendo Windows 8 Ultimate x64 y compilo mis dlls de c# con VS2012 Ultimate. Por favor, ayudar a los novatos.
Bastante estúpidamente me encontré con que puedo hacer referencia c # dlls de c ++ proyecto haciendo clic derecho y elegir Referencias... en el cuadro de diálogo. Hay tanta basura por ahí en la web.
 
Es muy interesante. Gracias. Pero quizá hoy haya opciones más sencillas.
 
shelandr1:
Muy interesante...Gracias...Pero quizás hoy en día hay maneras más fáciles*????

El artículo es bueno para hablar de WCF a los que no están familiarizados con la tecnología. Por cierto, he comprobado el rendimiento de WCF a través de Internet en la distancia Peter - Odessa, obtuve una velocidad decente de alrededor de 14000 transacciones bilaterales / seg con paquetes de 1kB. Personalmente me gusta la tecnología por su orientación a objetos, que no es un flujo de bytes se transmite (aunque se puede hacer), pero las instancias de clases, que es en el extremo receptor no es necesario decodificar este flujo.

Y sobre el tema de las citas - es más fácil utilizar el mapeo de memoria. Empezamos una tarea separada con un mutex en una aplicación .NET, MQL4 carga los datos en la memoria y restablece el mutex, después de lo cual la aplicación lee los datos. Es más fácil y rápido, y no necesitas una DLL. Solo es necesario agregar DLLs de sistema en MQL4 para soportar mapeo y mutexes, hubo un articulo reciente sobre este tema.

 
joeykruger:

Me las arreglé para conseguir que esto funcione tanto con 32 bits MT5 y, después de recompling para x64, logró conseguir que funcione con 64 bits MT5....sin embargo, cuando trato de ejecutar la EA en el probador de estrategia que tanto accidente espectacular.

Me gustaría utilizar esto para exportar algunos datos de precios e indicadores en una tabla de base de datos para hacer algunos análisis con software externo.....alguna idea de lo que podría estar causando este accidente? Esto es lo más cerca que he llegado a una solución de trabajo hasta el momento.


Joe

Hola Joe,

¿Hubo algún truco especial para hacerlo funcionar en x64? Acabo de compilarlo para x64, pero la dll se bloquea con errores extraños en el arranque.