Discusión sobre "Cómo escribir una DLL para MQL5 e intercambiar datos en 10 minutos". - página 7
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
pisara:
...En mi opinión, el desarrollo del lenguaje de escritura de la MT debe servir para las tareas específicas del comercio, es decir, la recopilación de información, el análisis, las pruebas, la gestión del comercio y la integración con otros sistemas; todo esto puede y, en mi opinión, debe hacerse con un alto nivel de herramientas de desarrollo modernas, es decir, integrando y ampliando el marco estándar seleccionado utilizando métodos generalmente aceptados en él (OOP, etc.). La tarea no consiste en escribir una plataforma cerrada y autosuficiente en una mezcla de C/C++ u otra cosa, sino, en primer lugar, en escribir los fundamentos de la plataforma comercial, sus servicios, la API y la interfaz de usuario...
El IMHO de Moe está completamente de acuerdo con tu IMHO. Es agradable exponer a personas con ideas afines. Asocio la MT con el proverbio "el diablo acecha en las cosas pequeñas" y sospecho de serios defectos arquitectónicos, si no, por qué hay tantos "ladrillos" - "¡Oye ciudadano! No vayas allí, ve aquí. Si no, la nieve caerá sobre tu cabeza: ¡estarás completamente muerto!".
Al mismo tiempo, hay que admitir que MT no es en absoluto el peor producto con el que he tenido que tratar.
Renat писал(а) # :
Tal vez me haya perdido algo, o tal vez tú te hayas perdido algo. No encuentro ningún artículo sobre la interacción entre Matkad y MT4. Sí, tengo Matlab. No tengo Matcad ((.
En su día pedí el enlace MT4B<-> Matcad a los programadores. El único sitio aceptable (estable) era la comunicación mediante operaciones de archivo. MT4-escribe las cotizaciones en un archivo-Matkad lee-procesa-pone los resultados en un archivo (compra/venta de divisas)-MT4 lee y ejecuta. Pero a veces se cuelga por razones desconocidas... pasaron más de 3 meses pero aún no se pudo resolver el problema.
Por un lado su deseo de hacer todo en un solo paquete, sí bien y bueno. Es la estabilidad y la fiabilidad del sistema.
Pero, por otro lado, existen lenguajes de programación de alto nivel (Matlab, Matcad) para los que ya se ha escrito mucho, gastando miles de millones de años-hombre. Y conectar esta potencia a la MT5 sería genial. No tienes suficiente fuerza o habilidad para alcanzar el nivel de estas lenguas...
P.D. Quiero llamar tu atención, que ambos lenguajes están especializados para trabajar con arrays (álgebra matricial), exactamente lo que necesitas...
Tal vez me haya perdido algo, o tal vez se haya expresado mal. No encuentro en ningún sitio un artículo sobre la conexión entre Matcad y MT4. Matlab está ahí. Pero Matcab no está disponible ((.
En su día pedí el enlace MT4B<-> Matcad a los programadores. La única conexión aceptable (estable) era a través de operaciones de archivo. MT4-escribe las cotizaciones en un archivo-Matkad lee-procesa-pone los resultados en un archivo (compra/venta de divisas)-MT4 lee y ejecuta. Pero a veces se bloquea por razones desconocidas... hemos pasado más de 3 meses, pero todavía no hemos podido resolver el problema.
Intenta hacer un paquete con MQL5 - es un lenguaje más potente, eficiente y seguro.
Puede iniciar un trabajo público abierto sobre la integración de Matkad con MT5 para obtener un buen resultado. De este modo, ambos errores pueden solucionarse rápidamente y el resultado puede ser bueno.
Sí, he confundido Matkad y Matlab. Lo siento.
Intenta hacer un paquete con MQL5 - es un lenguaje más potente, eficiente y seguro.
Para obtener un buen resultado, podemos iniciar un trabajo público abierto sobre la integración de Matkad con MT5. De este modo, podrá corregir rápidamente los errores y obtener un buen resultado.
Puedes hacer muchas cosas, pero en primer lugar creo que eres tú quien debe interesarse por este tipo de proyectos (imagina cómo aumentará tu audiencia y forex y exchange + escribir programas en matlab estándar ).
Y el trabajo público, abierto, etc. no me interesa desde hace mucho tiempo. Yo también valoro mi tiempo. Cansado de cometer errores como estos.
¿Cómo puede producir esto este procedimiento?
2010.05.06 02:28:14 Setka_Final_1 (EURUSD,M5) SetVLine error de creación VLine_838524 4202 t1= 2010.05.06 00:00
Esto es una mierda.
ERR_OBJECT_NOT_FOUND
4202
Objeto gráfico no encontrado
Si no se encuentra ningún objeto. El programa debería haberlo creado. Pero el objeto está ahí si(...) así que por qué obtiene 4202.
Tal vez sólo estoy cansado y es hora de ir a la cama.
A Prival.
Si se formula un problema de MatCad lo suficientemente interesante (no muy complicado para empezar), estoy seguro de que habrá gente dispuesta a unirse a la tarea.
2010.05.06 02:28:14 Setka_Final_1 (EURUSD,M5) Error al crear SetVLine VLine_838524 4202 t1= 2010
Si no se encuentra ningún objeto. El programa debería haberlo creado. Pero el objeto existe si(...) por qué se devuelve 4202.
Buenos días! Hablando de pasar cadenas a funciones desde la DLL
Tengo el siguiente código:
#include <WinUser32.mqh>.
#importar "mt4excel.dll"
bool ExcelOpen();//abre Excel y crea una página en blanco
bool ExcelSetTextCell(int X,int Y,char Value[]);//Escribir texto en la celda
/*
otros cortados
*/
#importar
void OnTick()
{
Tarifas MqlRates [];
int copied=CopyRates("EURUSD",PERIOD_M1,0,1,rates);
ExcelSetTextCell(1,1, "Tool");
ExcelSetTextCell(2,1, "EURUSD");
ExcelSetValueCell(2,2,rates[0];
}
Como se ha dicho, Excel muestra sólo la primera letra de la que se ha pasado allí usando ExcelSetTextCell. Después de leer este hilo, he descubierto cuál es el motivo, pero no sé muy bien cómo conseguir lo que necesito. La cuestión es que yo no he escrito la DLL, es una biblioteca de funciones para trabajar con Excel a través de MT4. Por razones obvias, MT5 toma un puntero a una cadena con sólo el primer carácter. La pregunta es, ¿cómo puedo hacer que MT5 pase allí lo que necesito, si no puedo editar el código fuente de la DLL? Según tengo entendido, hay que añadir algo como
_DLLAPI void __stdcall demo(char *stream, char*buf){ buf=stream;}
Agradecería los comentarios de los desarrolladores de MT5
Gracias.
ns_k, no olvides que las cadenas en MQL5 son unicode.
Hay dos soluciones posibles.
1. Rehacer (modificar) la dll para que acepte cadenas unicode
2. Convierta usted mismo una cadena en una matriz
ns_k, no olvides que las cadenas en MQL5 son unicode.
Hay dos soluciones posibles.
1. Rehacer (modificar) la dll para que acepte cadenas unicode
2. Convierte la cadena en un array por ti mismo
La segunda solución me funciona. Dime, ¿tengo que cambiar también la declaración de la función? Es decir, en lugar de
bool ExcelSetTextCell(int X,int Y, string Value);//Escribir texto en la celda
¿Tengo que escribir una declaración donde el tercer parámetro sea un array? Si es así, no entiendo cómo hacerlo. Gracias.
Sin embargo, me lo imaginé, sólo tuve que pensar un poco. ¡¡¡Gracias por la ayuda!!!
Declaración de una función DLL
Llamada a una función DLL