Eso no es un interior.Iniciado por ;
Publi |
¡Feliz Año Nuevo a todos!
He escrito un montón de código para automatizar elementos de mi comercio. Quiero que este código permanezca independiente de la plataforma comercial con la que interactúa; en particular, me gustaría evitar tener que escribir envoltorios para MQL4 u otros lenguajes de programación patentados a medias que los proveedores de plataformas comerciales insisten en producir. Mi cuenta no es lo suficientemente grande para tener acceso a la API FIX (que es bastante fea en sí misma). También estoy mirando las API JAVA de FXCM y Dukascopy, pero me gustaría seguir trabajando con mis corredores actuales (por ahora) que actualmente solo ofrecen MT4 para cuentas pequeñas como la mía.
Mi objetivo es tener una interfaz C/C para ejecutar comandos de terminal MT4. Tal interfaz podría llamarse fácilmente desde R, Python, etc.
Esencialmente, busco las mismas características que se ofrecen a las aplicaciones MAM/PAMM para los administradores de dinero, pero a nivel de API, no a través de una GUI bonita.
¿Alguien ya lo ha hecho o ha encontrado razones para que no funcione?
Saludos,
noventa47
1 Anexo(s) Hola, ¿podría intentar convertir este código C en un script o un indicador?
https://www.forosforex.com/attachmen...1546712634.txt
Aquí está la solución en Java:
https://github.com/jseparovic/MQL4JavaGracias a jseparovic.
aquí hay una solución de código abierto en C#:
https://github.com//MQL4CSharpUtiliza subprocesos y getters/setters simples para comunicarse. El código C# se inicia en su propio subproceso y puede ejecutar un comando mql y esperar el resultado, mientras que el experto en mql busca un comando, lo analiza, lo ejecuta y establece el resultado. el analizador de comandos mql se ejecuta en el método onTimer que está configurado para ejecutarse cada milisegundo.
https://github.com/rmawatson/PyMT4Este código permite llamar desde C y proporciona enlaces para python. Podría envolverse trivialmente para cualquier otro idioma.
¿Cómo te va con esto? Me integré en jfx api (que en realidad es bastante barato y bastante bueno), pero me interesaría ver una solución agnóstica del idioma para posiblemente mover mi código a nodejs, ¿quizás? mmm interesante. Todavía estarías buscando abrir un terminal.exe para cada cuenta a la que quieras conectarte, ¿verdad? Esto es lo que hace jfx. Controla los terminales en segundo plano, por lo que puede ejecutar una solución de múltiples cuentas
Seguro. Un ejemplo de un experto en copia de información básica (las copias pasan a una ventana remota): Código insertado #propiedad estricta #define WM_COPYDATA 0x004A #define INFO 0x01 #define FindWindow FindWindowW #define SendMessage SendMessageW struct Copydatastruct { int dwData; int cbData; int lpData; }; estructura Infostruct { MqlTick marca;* cualquier otra información aquí */}; #importar user32.dll int FindWindow(cadena, int); int SendMessage(int, int, int, Copydatastruct); #importar msvcrt.dll int memcpy(Copydatastruct, Copydatastruct, int); int memcpy(Infostruct, Infostruct, int); #importar información de Infostruct; Copia de la estructura de datos de copia; string sDispatch = miventana; int hwDispatch = 0; void OnTick() { hwDispatch = FindWindow(sDispatch, NULL); if(hwDispatch) { copy.dwData = INFO;/es decir, función copy.cbData = sizeof(info);/bytes a copiar copy.lpData = memcpy(info, info, 0);/puntero a los datos a copiar SymbolInfoTick(Symbol(), info.tick); SendMessage(hwDispatch, WM_COPYDATA, NULL, copiar); } } En el lado del receptor (ventana remota) en el procedimiento de ventana tiene que leer los datos: Interruptor de código insertado (mensaje de ventana) { case WM_COPYDATA: { COPYDATASTRUCT *copy = (COPYDATASTRUCT*) lParam; switch(copydwData) { case INFO: { Infostruct info; memcpy(info, copylpData, copycbData);/copiar los datos para su posterior procesamiento/es decir, hacer algo con interrupción de datos; }/otros casos... } break; } /otros casos }Iniciado por ;
Hola, ¿cómo usas exactamente WM_COPYDATA? ¿Puedo echar un vistazo a tu código? GraciasIniciado por ;
Los objetos de evento se refieren a los objetos de evento de la API de Windows, consulte aquí:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspxPor cierto: Smalltalk es genial...
Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español.
Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.