Carteras Blog        Login      Registrarse        

Síguenos en:   RSS   Facebook  Twitter   Linkedin   

Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 50 de 77
  1. #1
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Experiencia haciendo DLL para MT4 en C++

    Supongo que en España no habrá mucha gente que sepa programar DLLs para MT4 en C++

    De todas formas voy a ir poniendo todo el material que vaya encontrando, por si se une alguien para compartir ideas.

    Un link para empezar: http://www.forexfactory.com/showthread.php?p=4737984

    Un Saludo.

  2. #2
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    How to Exchange Data: A DLL for MQL5 in 10 Minutes

    As a matter of fact, there are not many developers who remember exactly how to write a simple DLL library and what are features of binding different systems.

    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. We will use Visual Studio 2005/2008; its Express versions are free and can be downloaded from the Microsoft website.

    1. Creating a DLL project in C++ in Visual Studio 2005/2008


    Run the Win32 Application Wizard using the 'File -> New' menu, select the project type as 'Visual C++', choose 'Win32 Console Application' template and define the project name (for example, 'MQL5DLLSamples'). Select a root directory for storing project 'Location', instead of the default offered one, disable the checkbox of 'Create directory for solution' and click 'OK':

    Link interesante: http://www.mql5.com/en/articles/18

  3. #3
    Becario Trader Avatar de Burbujajaja
    Fecha de ingreso
    08 oct, 12
    Ubicación
    Madrid
    Mensajes
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Poder de reputación
    0

    Re: Experiencia haciendo DLL para MT4 en C++

    MQL5 es un lenguaje muy interesante, pero esas 4000 páginas de manual me echan para atrás, aunque no descarto que sea algo con lo que me ponga en cuanto tenga algo de tiempo libre

    De todas formas yo durante la carrera he visto C++ y también algo de DLL, y estos dos links a mi me sirvieron bastante:

    http://www.cplusplus.com/doc/tutorial/
    http://msdn.microsoft.com/en-us/libr.../1ez7dh12.aspx

    Por cierto, hace tiempo que no me meto a bolsia por la falta de tiempo, y me alegro de ver tantas mejoras.

  4. #4
    Especulador Avatar de pepe
    Fecha de ingreso
    28 jun, 12
    Mensajes
    68
    Thanks
    8
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Es complicado.

  5. #5
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Gracias, pues estoy haciendo una DLL (más empezando con el tema) que permitirá replicar los mejores Robots de Forex de Bolsia. Al principio será todo Gratis, pero si funciona será de pago.

    Será una forma de recuperar algo de dinero y que los mejores robots ganen más dinero...

  6. #6
    Becario Trader Avatar de Burbujajaja
    Fecha de ingreso
    08 oct, 12
    Ubicación
    Madrid
    Mensajes
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Poder de reputación
    0

    Re: Experiencia haciendo DLL para MT4 en C++

    Yo sinceramente todavía estoy muy verde en cuanto a forex y no te digo ya respecto a los Robots de Forex...

    Es algo que todavía no entiendo, no sé como maneja los robots la información macroeconómica, o se basa en puro y duro en análsis técnico. Es obvio que no podemos ignorar algunos importantes datos como cuando se publican los datos de: tipos de interés, desempleo, producción industrial, balance comercial... de los diferentes países y esto tiene una repercusión directa sobre la cotización de las divisas...

    ¿Los Robots de forex acceden a alguna base de datos con dicha información en tiempo real o algo?

  7. #7
    Becario Trader Avatar de Burbujajaja
    Fecha de ingreso
    08 oct, 12
    Ubicación
    Madrid
    Mensajes
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Poder de reputación
    0

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por pepe Ver mensaje
    Es complicado.
    Depende de la persona, en mi carrera todos decían que era difícil, pero a mi personalmente me resultaron las más fáciles.
    Sin embargo, la que todos consideraban fácil, a mi me resultó un infierno que fue la única que tuve que matricularme en dos cursos: Derecho mercantil. Y es porque era un coñazo tener que memorizar cosas para repetirlas como un loro en un exámen. Yo prefiero entender las cosas, entonces nunca se olvidan. (fíjate que aun a día de hoy pienso que memorizar fórmulas es una tontería, y eso que trabajo con VBA en excel y manejo decenas a diario).

    Educación en España: Nada práctico. Deberían de poner más énfasis en la interpretación de los resultados, que en como llegar a esos resultados. Lo último ya lo hace el software informático mejor y más rápido.


    Lo bonito de la programación es que puedes resolver un mismo problema de muchas maneras distintas. Y algunos en clase memorizandose los pasos para cada ejercicio, y en el éxamen te cambian un poco una cosa y ya no sabes qué hacer...

    Moraleja: inténtalo por ti mismo y no escuches lo que digan los demás xD

  8. #8
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por Burbujajaja Ver mensaje
    Yo sinceramente todavía estoy muy verde en cuanto a forex y no te digo ya respecto a los Robots de Forex...

    Es algo que todavía no entiendo, no sé como maneja los robots la información macroeconómica, o se basa en puro y duro en análsis técnico. Es obvio que no podemos ignorar algunos importantes datos como cuando se publican los datos de: tipos de interés, desempleo, producción industrial, balance comercial... de los diferentes países y esto tiene una repercusión directa sobre la cotización de las divisas...

    ¿Los Robots de forex acceden a alguna base de datos con dicha información en tiempo real o algo?
    En principio un robot es simplemente un algoritmo que compra y vende ( si se cruzan por arriba se compran y si es por abajo se vende).

    Si quieres hacer cosas más complicadas, al final el MT4 es como una caja negra, necesitas una DLL que haga de puente entre programas externos (C#, VBA, Bases de datos) y el MT4..

    Por eso estoy haciendo una DLL que permite comunicar ordenes desde fuera del MT4...

    Lo más complicado no es hacer una DLL sino tener ordenes fiables, y eso si es complicado. Al final lo más complicado es hacer el algoritmo de compra y venta.

  9. The Following User Says Thank You to mbolsia For This Useful Post:

    Bufalagamba (15/09/2013)

  10. #9
    Futuro Trader Avatar de Bufalagamba
    Fecha de ingreso
    18 ago, 13
    Mensajes
    19
    Thanks
    1
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Que tal, amigos?Me parece interesantísimo!
    No soy informático y tengo poca idea. Entonces los .dll en que idioma están escritos o se pueden abrir? es en C++?

  11. #10
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Las DLL se escriben en C++ o Delphi,

    El C++ es bastante complicado. Mi idea es hacer una DLL en c++ que haga de puente entre MT4 y otro lenguaje más fácil (por lo menos para mi) como es el C# o Java.

    De todas formas, voy a iniciar un tema en el foro, para enseñar Mql4... espero que me ayudes en el tema.. Bufalagamba!!!

    Un Saludo.

  12. #11
    Futuro Trader Avatar de Bufalagamba
    Fecha de ingreso
    18 ago, 13
    Mensajes
    19
    Thanks
    1
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    No tengo ni idea de c++, pero mt4 no es tan complicado. Solo tiene if, switch, while, for y los comandos especificos para manejar las órdenes de compra y venta y manejar la información del terminal, como son los indicadores del precio (RSI, Bolinguer, medias etc...) Yo he hecho un programa general, que estudia el mercado y para poder meterle la estrategia que quieras. Es decir, p.ejemplo: compra cuando RSI>70 y vende <30. Pues solo añades una condición dentro de la función que envia la señal de compra y venta. Luego lo pruebas en datos del backtest, por ejemplo desde el 2008 hasta hoy. Desgraciadamente así descubres que tus estrategias maravillosas, lo son sólo hasta que pasan unos años y te arruinas jejeje...
    Por supuesto contar conmigo en lo que os pueda ayudar.

    Mbolsia o alguno de vosotros¿Si os paso un dll, podríais ayudarme a descifrarlo?
    Última edición por Bufalagamba; 16/09/2013 a las 18:17

  13. #12
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Después abro un tema para enseñar mql4... Y hacemos un curso básico con ejemplos. Lo ideal es hacer pequeños robots muy simples

  14. #13
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Subo este tema que estoy utilizando en la actualidad

  15. #14
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mbolsia Ver mensaje
    Supongo que en España no habrá mucha gente que sepa programar DLLs para MT4 en C++

    De todas formas voy a ir poniendo todo el material que vaya encontrando, por si se une alguien para compartir ideas.

    Un link para empezar: DLL c++ any examples ? - Page 2 @ Forex Factory

    Un Saludo.
    El tema tiene pinta de ser muy interesante. No parece muy complicado crear una DLL que enlace con MT4... El problema es que hay que saber previamente MQL4 para poder sacarle partido.

  16. #15
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por LeoCV Ver mensaje
    El tema tiene pinta de ser muy interesante. No parece muy complicado crear una DLL que enlace con MT4... El problema es que hay que saber previamente MQL4 para poder sacarle partido.
    MQL4 no es difícil, lo complicado es el c++ y la dll

  17. #16
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mbolsia Ver mensaje
    MQL4 no es difícil, lo complicado es el c++ y la dll
    Lo decía por pura vagancia por mi parte, para no tener que aprender más lenguajes...

    Y ahora que lo pienso: ¿Se podría hacer una plantilla genérica en MQL4 para no tener que "jugar" con dos lenguajes, MQL4 y C++?

    Por ejemplo: Crear una rutina MQL4 que cargue la DLL llamada Algoritmos.DLL, llame a la rutina NuevoDato(Dato) para pasarle los datos de mercado, HayQueComprar() para saber si hay que comprar, HayQueVender() para saber si hay que vender, ...

    Si se elije bien la lista de funciones que debe tener la DLL no haría falta tocar MQL4. Y para diseñar nuevos robots solo habría que programar el nuevo código de las rutinas NuevoDato, HayQueComprar, HayQueVender...

    ¿Alguien se anima a hacer la plantilla en MLQ4?

  18. #17
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Le he estado echando un vistazo al tema del MetaTrader y veo que se puede descargar de forma gratuita de la página MetaTrader 4 Platform for Forex Trading

    Tras instalarlo, supongo que el siguiente paso será abrir una cuenta DEMO en algún sitio para probar la aplicación. El caso es que, como no voy a utilizarlo en REAL (al menos por ahora), no tengo ganas de andar dando mis datos en el primer sitio que pille...

    ¿Conoceis alguna página que permita abrir una cuenta DEMO sin dar datos personales?

  19. #18
    Especulador Avatar de pepe
    Fecha de ingreso
    28 jun, 12
    Mensajes
    68
    Thanks
    8
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Yo me animo

  20. The Following User Says Thank You to pepe For This Useful Post:

    LeoCV (02/05/2015)

  21. #19
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por pepe Ver mensaje
    Yo me animo
    Fantástico... A ver que te parece mi idea:

    Podemos empezar por el caso más simple posible, un robot que trabaje con una sola posición: o está a la espera de señal de compra, o ya ha comprado y está a la espera de la señal de venta. Todo estaría programado en MQL4, que se encargaría de todo, salvo el "calcular" cuando hay que comprar o vender (eso es lo que haría la DLL).

    Para ello, la DLL sólo necesitaría dos funciones: HayQueComprar o HayQueVender, a las que se pasaría el nuevo dato recibido. Con esta información la DLL debería decidir que hacer, y devolver la cantidad a comprar o vender...

    La rutina principal MQL4 sería parecida a (por lo que he visto, la pinta es como la del C):

    Código:
    int Lotes; // Lotes comprados actualmente. Inicialmente 0.
    
    void OnTick() {
        double UltimoValor;
        double Cantidad;    // Cantidad a comprar o vender
    
        UltimoValor = ????;  // Obtengo la última cotización del par EURUSD
    
        if(Lotes==0) {
            // Estabamos a la espera de señal de compra
            Cantidad = HayQueComprar(UltimoValor);
            if(Cantidad != 0) {
                ComprarLotes Cantidad;
                Lotes = Cantidad;
            }
        } else {
            // Habíamos comprado. Veamos si hay que vender
           Cantidad = HayQueVender(UltimoValor);
           if(Cantidad != 0) {
                VenderLotes Cantidad;
                Lotes = Lotes - Cantidad;
            }
        };
    
    }
    ¿Como lo ves, pepe?

  22. #20
    Especulador Avatar de pepe
    Fecha de ingreso
    28 jun, 12
    Mensajes
    68
    Thanks
    8
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Estoy interesado lo que veo es que programar en c++ es complicado. Se algo de java.

    pero creo que se tendría que hacer un ejemplo simple y complicarlo.

    por ejemplo pasamos los ticks a c++ los cargamos en un vector o lista, realizamos los cálculos y enviamos la compra y venta a metatrader.

    Ejemplo:

    1 Enviamos los ticks a c++ y los guardamos en una lista
    2 calculamos la media movil de 1000 ticks y la de 200 ticks
    3 si la media de 1000 es superior a la de 200 ticks vendemos, y si es el reves compramos
    4 enviamos las ordenes a metatrader cuando se produce

    Este creo que podria ser el ejemplo más simple.

    Vamos a programarlo

  23. #21
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por pepe Ver mensaje
    Estoy interesado lo que veo es que programar en c++ es complicado. Se algo de java...
    La gracia de la plantilla MQL4 es que se pueda generar una DLL en el lenguaje que más le guste a cada uno sin necesidad de aprender MQL. A mí el C++ o Java siempre me han parecido demasiado enrevesados, y por eso no programo con ellos...

    Cita Iniciado por pepe Ver mensaje
    ... pero creo que se tendría que hacer un ejemplo simple y complicarlo.

    por ejemplo pasamos los ticks a c++ los cargamos en un vector o lista, realizamos los cálculos y enviamos la compra y venta a metatrader...
    Esa es exactamente mi idea... La DLL necesitaría sólo 3 funciones o rutinas:

    1. Función para enviar el nuevo Tick.
    2. Función que, tras recibir el nuevo tick nos indica si hay que comprar.
    3. Función que, tras recibir el nuevo tick nos indica si hay que vender.

    Vamos a por ello...

  24. #22
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Sería ideal hacer alguna demo, pero me parece que Meta Trader solo permite DLLs en C++ y Pascal...

  25. #23
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mitainvest Ver mensaje
    Sería ideal hacer alguna demo, pero me parece que Meta Trader solo permite DLLs en C++ y Pascal...
    Por lo que he estado viendo ayer, Meta Trader te admite DLLs hechas en cualquier lenguaje que sea capaz de crear una DLL normal.

    Creo que incluso admite la convención de llamada cdecl de C++ sin necesidad de indicárselo explicitamente (bastante impresionante a mi juicio)...

    Los lenguajes basados en .NET, como el C# no generan DLLs directamente, por lo que necesitan un wrapper (un intermediario, en otras palabras) hecho en otro lenguaje. Creo que es lo que tienes tú planteado con tus robots...

  26. #24
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Yo utilizo MT4 API se la compré hace un año al programador. Este api me permite programar directamente desde .net con c# y con ello consigo tener mayor potencia.

    El problema que no es gratis y lo segundo es que es complejo si quieres distribuir robots tu mismo...

    Creo que sería interesante a programar cosas simples con una DLL de C++ para ir complicandolo, de hecho a mi no me da miedo C++ es ponerse un tiempo. Pero la ventaja que veo es que se puede hacer es conectar los robots de Bolsia con el metatrader, y mejorar esa sección:

    Bolsia Forex

    Hay robots que lo hacen bien porque no se les permite saltarse las reglas, es decir tienen una divisa y un apalancamiento máximo de 0.05 lotes por cada 1000 dólares ahora lo interesante sería hacer una dll en C++ que sea capaz de hacer peticiones http, y leer información vía xml, y json.

    Con ello habría una forma de empezar a hacer un servicio que permita a los mejores gestores de Forex ganar dinero, y con ello tambien Bolsia, y reinvertirlo en el proyecto para pagar premios...

    Pero creo que tendríamos que empezar por algo simple, y después complicarlo.

    Un Saludo.

  27. #25
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    La idea que tengo es que puedas enviar señales desde bolsia a metatrader gracias a la dll...

  28. #26
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mitainvest Ver mensaje
    La idea que tengo es que puedas enviar señales desde bolsia a metatrader gracias a la dll...
    Si mi idea es correcta, la DLL necesitaría sólo 3 funciones o rutinas:

    1. Función para enviar el nuevo Tick.
    2. Función que, tras recibir el nuevo tick nos indica si hay que comprar.
    3. Función que, tras recibir el nuevo tick nos indica si hay que vender.

    Para enlazar la DLL con Bolsia lo único que tendría que hacer cada función es lllamar a la página en PHP del API de Bolsia que se encarga de cada una de esas tareas, ¿no?.

    Es más, es el que maneja el robot el que da la orden de compra o venta en función de sus criterios, por lo que la función que envíe el nuevo tick ni siquiera haría falta.

    La verdad, no le veo mucha complicación...

  29. #27
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Pues mucho mejor, a ver si puedes ayudarme en el tema

  30. #28
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Podriamos hacer una DLL que fuera lo más simple posible, es decir que recoja los ticks y que haga una media movil sencilla y a Meta Trader.

    después hacemos la que se conecta a Bolsia.

    Gracias

  31. #29
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mitainvest Ver mensaje
    Podriamos hacer una DLL que fuera lo más simple posible, es decir que recoja los ticks y que haga una media movil sencilla y a Meta Trader.

    después hacemos la que se conecta a Bolsia.

    Gracias
    Como si quieres empezar por la de Bolsia. Para mí no es problema...

    Ayer he instalado Metatrader para trastear un poco con él. Ya he preparado una DLL de ejemplo (muy simplona eso sí), con únicamente dos funciones, una que devuelve el doble de número pasado como parámetro, y otra que devuelve la mitad.

    El "Expert Advisor" de pruebas es:

    Código:
    // Importo la DLL de pruebas
    #import "EA.dll"
    	double Doble(double Valor);
    	double Mitad(double Valor);
    #import
    
    // Expert initialization function
    int OnInit() {
    	Print("Doble de 4=", Doble(4));
    	Print("Mitad de 4=", Mitad(4));
    
    	return(INIT_SUCCEEDED);
    }
    Si arrastro el EA sobre el gráfico de muestra del programa, la ventana "Expertos" muestra:

    Experiencia haciendo DLL para MT4 en C++-demoea-cargado-prueba-1.png

    Asi que parece que la cosa va bien...

    Pero para pruebas mas serias supongo que tendría que abrir una cuenta Demo con algún proveedor de FOREX. Como no tengo ganas de andar dando datos personales sólo para pruebas: ¿Conoceis algún sitio que te permita hacer pruebas sin dar datos reales (o, por lo menos, el mínimo número posible de ellos)?
    Última edición por LeoCV; 03/05/2015 a las 18:16

  32. #30
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Jo'er con el MT4 API. Acabo de mirar su precio, por curiosidad. No sabía que una librería de este tipo podía ser un negocio tan rentable...

  33. #31
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    No creo que haya vendido muchas... lo que pasa que me hacia falta y me ha dado buen resultado, al final siempre son un cumulo de problemas, que si me los puedo evitar pago algo, a estas alturas necesito empezar a desarrollar mis propias DLLs porque tengo un posible negocio, al final mi idea es más suministrar señales.

    Supongo que sera más complicado hacer una DLL que haga de puente entre .Net y meta trader...

  34. #32
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mitainvest Ver mensaje
    ... Supongo que sera más complicado hacer una DLL que haga de puente entre .Net y meta trader...
    He estado pensando en ello, y es posible que se pueda hacer, pero quiero asegurarme de tener claro el proceso:

    1. Abrimos Metatrader 4, iniciamos sesión en nuestro proveedor de datos (para empezar a recibir datos del par EURUSD, por ejemplo), y "arrancamos" el asesor experto (EA), programado en MQL4. Metatrader empieza a enviar cotizaciones al EA (en el evento OnTick, si no me equivoco).
    2. El EA carga la DLL de enlace y le envía cada nuevo dato recibido.
    3. La DLL de enlace carga una DLL de trabajo (hecha en .NET) y le comunica el nuevo dato. Esta DLL sería la encargada de analizar y procesar el dato para decidir si comprar, vender, o no hacer nada.
    4. Si procede, la DLL de trabajo ejecutaría la orden de compra o venta utilizando la DLL de enlace (que a su vez pasaría esta orden al EA, y de ahí a Metatrader y el mercado).
    5. Fin del proceso. Se descargan las DLLs de trabajo y de enlace y sólo queda trabajando Metatrader y el EA.

    ¿Es eso exactamente lo que se pretende?

  35. #33
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Lo que se, y tengo bastante código... es algo así... he conseguido desecriptar algunas... lo busco y lo subo al foro...

    Gracias.

  36. #34
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por LeoCV Ver mensaje
    He estado pensando en ello, y es posible que se pueda hacer, pero quiero asegurarme de tener claro el proceso:

    1. Abrimos Metatrader 4, iniciamos sesión en nuestro proveedor de datos (para empezar a recibir datos del par EURUSD, por ejemplo), y "arrancamos" el asesor experto (EA), programado en MQL4. Metatrader empieza a enviar cotizaciones al EA (en el evento OnTick, si no me equivoco).
    2. El EA carga la DLL de enlace y le envía cada nuevo dato recibido.
    3. La DLL de enlace carga una DLL de trabajo (hecha en .NET) y le comunica el nuevo dato. Esta DLL sería la encargada de analizar y procesar el dato para decidir si comprar, vender, o no hacer nada.
    4. Si procede, la DLL de trabajo ejecutaría la orden de compra o venta utilizando la DLL de enlace (que a su vez pasaría esta orden al EA, y de ahí a Metatrader y el mercado).
    5. Fin del proceso. Se descargan las DLLs de trabajo y de enlace y sólo queda trabajando Metatrader y el EA.

    ¿Es eso exactamente lo que se pretende?
    En la ayuda del editor de Metatrader se da la lista completa de funciones MQL4 disponibles. Para no mezclar lenguajes creo que es más simple "saltarme" la parte de Metatrader.

    Voy a intentar crear en la DLL de enlace una función equivalente a cada una de las funciones de interés de Metatrader. De este modo el EA lo único que hará será traducir directamente las llamadas de la DLL de enlace a funciones MQL4. Así evito tener que ir adaptando el EA a los cambios que se hagan en la DLL...

    Después veremos como enlazar la DLL con .NET...

    Un saludo

  37. #35
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Tras simplificarlo al máximo, creo que la DLL de enlace más simple posible debe tener cuatro funciones, que se utilizarían en el evento OnTick:

    1. Primero se llama a EAOnTick, pasando a la DLL como parámetros los valores de Bid y Ask. Devuelve 1 si hay que dar orden de compra, -1 si hay que dar orden de venta, o 0 si no hay que hacer nada. La DLL debe llevar cuenta si se había comprado ya o no...
    2. EABuyData: Si hay que dar orden de compra esta función permite obtener de la DLL la cantidad a comprar y el Slippage.
    3. EASellData: Si hay que dar orden de venta esta función permite obtener la cantidad que la DLL dice que hay que vender (en principio, todo lo que se había comprado), y el Slippage.
    4. EAOrderTicket: Le indica a la DLL el ticket asignado en la operación. La utilidad real de esta función es que permite a la DLL saber si se ha hecho la compra o venta con éxito (Ticket>0) o no (Ticket<=0).

    El código MQL podría ser similar a:

    Código:
    #import "EA.dll"
    	int EAOnTick(double BidValue, double AskValue);
    	void EABuyData(double &VolumeValue, int &SlippageValue);
    	void EASellData(double &VolumeValue, int &SlippageValue);
    	void EAOrderTicket(int Ticket);
    #import
    
    void OnTick() {
    	int Op;
    	double Lotes;
    	int Slippage;
    	int Ticket =-1;
    
    	Op = EAOnTick(Bid, Ask);
    	if (Op==0) return;
    
    	if (Op==1) {
    		// Dar orden de compra
    		EABuyData(Lotes, Slippage);
    		Ticket = OrderSend(Symbol(), OP_BUY, Lotes, Ask, Slippage, 0.0, 0.0);
    	} else {
    		// Dar orden de venta
    		EASellData(Lotes, Slippage);
    		Ticket = OrderSend(Symbol(), OP_SELL, Lotes, Bid, Slippage, 0.0, 0.0);
    	}
    
    	EAOrderTicket(Ticket);
    }
    Este es el punto en que me llego... Ahora iré preparando un ejemplo completo muy simple utilizando esta DLL...

  38. The Following User Says Thank You to LeoCV For This Useful Post:

    BolsiaSicav (12/05/2015)

  39. #36
    Master del Universo Avatar de BolsiaSicav
    Fecha de ingreso
    26 abr, 15
    Mensajes
    818
    Thanks
    103
    Thanked 157 Times in 136 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Si eso sera de gran ayuda, por ejemplo sacar las cotizaciones en un windows form o console. Esto va a permitir hacer una aplicación que el que quiera pueda copiar los robots de Bolsia...

    Muchas Gracias !!!!!!

  40. #37
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++


    Cita Iniciado por BolsiaSicav Ver mensaje
    Si eso sera de gran ayuda, por ejemplo sacar las cotizaciones en un windows form o console. Esto va a permitir hacer una aplicación que el que quiera pueda copiar los robots de Bolsia...

    Muchas Gracias !!!!!!
    Queda pendiente como enlazar mi lenguaje de desarrollo con el tuyo (C#, con Visual Studio 2012, ¿no?). Pensando en ello tengo tres dudas:

    1. En las propiedades del proyecto del VS2012, ¿sigue apareciendo una opción similar a "Crear ensamblado visible a través de COM"?
    2. ¿Puedes utilizar referencias a objetos COM en tus proyectos de C#?
    3. Vete pensando en que este esquema habrá que enlazarlo con la API de Bolsia... Necesitaré saber como se puede coordinar la DLL con esta Web...
    Última edición por LeoCV; 12/05/2015 a las 17:42 Razón: Añadir tercera duda

  41. #38
    Especulador Avatar de pepe
    Fecha de ingreso
    28 jun, 12
    Mensajes
    68
    Thanks
    8
    Thanked 5 Times in 4 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    LeoCV te puedes bajar una versión de pruebas de 90 dias del visual 2013

    https://www.visualstudio.com/en-us/d...studio-vs.aspx

  42. #39
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por pepe Ver mensaje
    LeoCV te puedes bajar una versión de pruebas de 90 dias del visual 2013

    https://www.visualstudio.com/en-us/d...studio-vs.aspx
    Requisitos: Windows 7 SP1 o posterior. Y yo sigo con el Windows XP...

    En Windows XP puedo utilizar Visual Studio 2010; En esta versión, en propiedades del proyecto, Información de ensamblado sí esta la opción "Crear ensamblado visible a través de COM", y en la lista de referencias se pueden añadir las de tipo "COM".

    Pregunto por estos dos aspectos porque no sé si en versiones posteriores siguen estando disponibles. ¿Alguien me lo confirma?...

  43. #40
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    El Visual 2010 es correcto es perfecto

    Aqui tienes el Visual 2010: https://www.visualstudio.com/downloa...d-2010-express

  44. #41
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mitainvest Ver mensaje
    El Visual 2010 es correcto es perfecto

    Aqui tienes el Visual 2010: https://www.visualstudio.com/downloa...d-2010-express
    Si, gracias, ya le tengo instalado. Lo que no quería era arriesgarme a utilizar algo que hayan quitado en versiones posteriores...

    Si el VS2010 te vale, trabajaré con esa versión para probar el enlace con .NET.

    Un saludo

  45. #42
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Si es perfecto, de hecho la librería del Ruso que compre es para Visual 2010

  46. #43
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Bueno, ya tengo ejemplo simplón: En cada tick la DLL de enlace manda sucesivamente no hacer nada, comprar y vender...

    Experiencia haciendo DLL para MT4 en C++-metatrader-ejemplo-simplon.png

    Ahora el asunto es trasladar esta tarea a una DLL de trabajo, de modo que la DLL de enlace únicamente tenga como labor comunicar la DLL de trabajo con el EA de Metatrader.

    Como no tengo cuenta con ningún proveedor de FOREX el ejemplo lo he hecho con un temporizador (en el evento OnTimer). Repito algo que dije anteriormente:

    ... para pruebas mas serias supongo que tendría que abrir una cuenta Demo con algún proveedor de FOREX. Como no tengo ganas de andar dando datos personales sólo para pruebas: ¿Conoceis algún sitio que te permita hacer pruebas sin dar datos reales (o, por lo menos, el mínimo número posible de ellos)?

  47. #44
    Master del Universo Avatar de mitainvest
    Fecha de ingreso
    09 feb, 13
    Mensajes
    403
    Thanks
    56
    Thanked 83 Times in 71 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Puedes abrir una cuenta demo, y funciona todo igual.

    Mira yo utilizo en Miguelito Foreign exchange brokers online | Forex ecn Brokers | IC Markets

    Mira a ver como funciona.

    Un Saludo.

  48. The Following User Says Thank You to mitainvest For This Useful Post:

    LeoCV (16/05/2015)

  49. #45
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Situación actual:

    Se podría decir que ya tengo todo resuelto, salvo por un puñetero problema técnico con la DLL de enlace. Este problema está asociado al lenguaje de programación que utilizo pues, al igual que el C#, no está pensado para generar DLLs "normales" (del tipo de las que admite MetaTrader...).

    El caso es que, después de llevar todo el mes (como pasa el tiempo!) repasando temas técnicos sobre el funcionamiento y construcción de estas DLLs, se me ha ocurrido intentar aplicar estos conceptos a .NET. Este es el resultado, que he conseguido hace unos minutos:

    Experiencia haciendo DLL para MT4 en C++-demoea-cargado-prueba-2.png

    Mi primera intención era haberlo hecho en VB.NET pero, en deferencia a nuestro anfitrión, este resultado lo genera una DLL hecha en C# que enlaza directamente con el Expert Advisor de MetaTrader...

  50. #46
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Yo se programar bastante en c# porque lo llevo utilizando en el trabajo los últimos 4 años. El VBA no me justa.

    Lo que se de las DLLs para metatrader se tienene que hacer en c++ y en pascal.

    Bueno a ver cuando tienes un ejemplo operativo para probar.

    Muchas Gracias.

  51. #47
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mbolsia Ver mensaje
    Yo se programar bastante en c# porque lo llevo utilizando en el trabajo los últimos 4 años. El VBA no me justa.

    Lo que se de las DLLs para metatrader se tienene que hacer en c++ y en pascal.

    Bueno a ver cuando tienes un ejemplo operativo para probar.

    Muchas Gracias.
    Pues yo soy al revés: No me gusta nada el .NET, y me encanta el VBA...

    Ya estoy preparando el ejemplo que proponía pepe: Calculamos la media movil de 1000 ticks y la de 200 ticks. Si la media de 1000 es superior a la de 200 ticks vendemos, y si es el reves compramos.

    Lo único que me he pasado al VB.NET, pues no estoy acostumbrado al C#.

    Por cierto, el Domingo Metatrader no se conectaba al servidor. ¿Puede ser porque estaba cerrado el mercado FOREX?

  52. #48
    Administrator Avatar de mbolsia
    Fecha de ingreso
    16 nov, 11
    Mensajes
    3,762
    Thanks
    573
    Thanked 615 Times in 505 Posts
    Poder de reputación
    10

    Re: Experiencia haciendo DLL para MT4 en C++

    Si el mercado FOREX cierra el viernes a las 11 de la noche y abre el domingo a las 11 de la noche.

    No tengo problema con el VBA entenderlo lo entiendo pero no me gusta para nada programar con el.

  53. #49
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Cita Iniciado por mbolsia Ver mensaje
    Si el mercado FOREX cierra el viernes a las 11 de la noche y abre el domingo a las 11 de la noche.
    El horario es una faena, porque cuando me puedo poner en ello es sobre todo el Sábado. Intentaré irlo haciendo entre semana...

    Cita Iniciado por mbolsia Ver mensaje
    No tengo problema con el VBA entenderlo lo entiendo pero no me gusta para nada programar con el.
    Veo que somos opuestos... Te diría lo mismo del .NET.

    Un saludo

  54. #50
    Trader Senior Avatar de LeoCV
    Fecha de ingreso
    19 sep, 14
    Mensajes
    148
    Thanks
    116
    Thanked 32 Times in 25 Posts
    Poder de reputación
    5

    Re: Experiencia haciendo DLL para MT4 en C++

    Otra duda: En la ventana con el gráfico de velas del par EURUSD me pone el nombre del EA arriba a la derecha, y justo a continuación una cara triste. ¿Sabes porqué?

Página 1 de 2 12 ÚltimoÚltimo

Información de tema

Usuarios viendo este tema

Actualmente hay 4 usuarios viendo este tema. (0 miembros y 4 visitantes)

Temas similares

  1. Oanda FOREX, experiencia
    Por mbolsia en el foro FOREX
    Respuestas: 13
    Último mensaje: 10/12/2013, 21:51

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •