Usando los punteros de objeto en MQL5
Usando los punteros de objeto en MQL5
Por defecto, todos los objetos en MQL5 se pasan por referencia, pero hay una posibilidad de usar los punteros de objeto. Sin embargo, es necesario realizar una comprobación del puntero ya que el objeto puede no ser inicializado. En este caso, el programa MQL5 terminará con un error crítico y descargado. Los objetos, creados automáticamente, no causan este error, por lo que, en esencia, son muy seguros. En este artículo intentaremos comprender la diferencia entre la referencia del objeto y el puntero del mismo y veremos cómo escribir código seguro con el uso de punteros.
Introducción a MQL5: Cómo escribir un Expert Advisor y un Indicador Personalizado
Introducción a MQL5: Cómo escribir un Expert Advisor y un Indicador Personalizado
MetaQuotes Programming Language 5 (MQL5), incluido en el terminal del cliente de MetaTrader 5, tiene muchas nuevas posibilidades y un mayor rendimiento, en comparación con MQL4. Este artículo le ayudará a familiarizarse con este nuevo lenguaje de programación. En este artículo se encuentran los sencillos ejemplos de cómo escribir un Expert Advisor y un Indicador Personalizado. También tendremos en cuenta algunos detalles del lenguaje MQL5, que son necesarios para entender estos ejemplos.
Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF
Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF
¿Quiere organizar la exportación de cotización desde MetaTrader 5 a su propia aplicación? ¡La compatibilidad entre MQL5 y DLL permite crear este tipo de soluciones! Este artículo le mostrará una de las formas de exportar cotizaciones desde MetaTrader 5 a aplicaciones escritas en .NET. Para mí, la exportación de cotizaciones usando esta plataforma fue más interesante, racional y fácil de implementar. Por desgracia, la versión 5 todavía no soporta .NET, por lo que, como en los viejos tiempos, usaremos win32 dell con .NET como capa intermedia.
La Orden de Creación y Destrucción de Objetos en MQL5
La Orden de Creación y Destrucción de Objetos en MQL5
Cada objeto, ya sea un objeto personalizado, un array dinámico o un array de objetos, se crea y elimina en el programa MQL5 de una forma particular. A menudo, algunos objetos son parte de otros objetos, y el orden de eliminación de objetos durante la desinicialización se vuelve especialmente importante. Este artículo facilita algunos ejemplos que muestran los mecanismos para trabajar con objetos.
Aplicar un Indicador a Otro
Aplicar un Indicador a Otro
Al escribir un indicador que usa la forma corta de la llamada de función OnCalculate(), puede que no se dé cuenta del hecho de que un indicador se puede calcular no solo por datos de precio, sino también por datos de otro indicador (independientemente de si viene incorporado o es personalizado). ¿Desea mejorar un indicador para su correcta aplicación a los datos del otro indicador? En este artículo, revisaremos todos los pasos para realizar tal modificación.
Gestión de Riesgo (Parte 4): Finalizando los Métodos Clave de la Clase
Gestión de Riesgo (Parte 4): Finalizando los Métodos Clave de la Clase
Este artículo constituye la cuarta entrega de nuestra serie sobre gestión de riesgo en MQL5, donde continuamos explorando técnicas avanzadas para proteger y optimizar nuestras estrategias de trading. Luego de haber sentado bases importantes en artículos anteriores, ahora nos centraremos en finalizar todos aquellos métodos pendientes que dejamos en la tercera parte, incluyendo funciones para verificar si se han alcanzado ciertos límites de pérdidas o ganancias. Además, presentaremos nuevos eventos clave que permiten una gestión más precisa y ágil.
Analizamos el código binario de los precios en bolsa (Parte II): Convirtiendo a BIP39 y escribiendo un modelo GPT
Analizamos el código binario de los precios en bolsa (Parte II): Convirtiendo a BIP39 y escribiendo un modelo GPT
Seguimos intentando descifrar los movimientos de los precios.... ¿Qué tal un análisis lingüístico del "diccionario de mercado" que obtendríamos convirtiendo el código binario de precios en BIP39? En el presente artículo, nos adentramos en un enfoque innovador del análisis de los datos bursátiles y exploramos cómo pueden aplicarse las modernas técnicas de procesamiento del lenguaje natural al lenguaje del mercado.
Desarrollo de Sistemas Avanzados de Trading ICT: Implementación de señales en un indicador de Order Blocks
Desarrollo de Sistemas Avanzados de Trading ICT: Implementación de señales en un indicador de Order Blocks
En este artículo, aprenderás a desarrollar un indicador de Order Blocks basado en el volumen de la profundidad de mercado y a optimizarlo mediante buffers para mejorar su precisión. Concluimos esta fase del proyecto y nos preparamos para las siguientes, en las que implementaremos una clase de gestión de riesgos y un bot de trading que aprovechará las señales generadas por el indicador.
Simulación de mercado (Parte 11): Sockets (V)
Simulación de mercado (Parte 11): Sockets (V)
Vamos a empezar a implementar la comunicación entre Excel y MetaTrader 5, pero antes es necesario entender algunas cosas importantes. Así no te quedarás rascándote la cabeza tratando de comprender por qué las cosas funcionan o no. Y antes de que frunzas el ceño ante la integración entre Python y Excel, veamos cómo podemos usar xlwings para controlar, en cierta medida, MetaTrader 5 a través de Excel. Lo que voy a mostrar aquí se centrará principalmente en la didáctica. No pienses que solo podemos hacer lo que mostraré.
Simulación de mercado (Parte 14): Sockets (VIII)
Simulación de mercado (Parte 14): Sockets (VIII)
Muchos podrían sugerir que deberíamos dejar de usar Excel y pasar a Python directamente, haciendo uso de algunos paquetes que permitirían a Python crear un archivo de Excel para poder analizar los resultados después. Pero, como se mencionó en el artículo anterior, aunque esta solución sea la más sencilla para muchos programadores, no será bien recibida por algunos usuarios. Y, en este asunto, el usuario siempre tiene la razón. Tú, como programador, debes encontrar la forma de hacer que las cosas funcionen.
Simulación de mercado (Parte 08): Sockets (II)
Simulación de mercado (Parte 08): Sockets (II)
¿Qué te parece si creamos algo práctico con sockets? Bien, en este artículo empezaremos a crear un minichat. Acompáñanos y descubre cómo se hace, porque será algo bastante interesante. Recuerda que el código que se mostrará aquí tiene un objetivo puramente didáctico. En realidad, no deberías utilizar este código con fines comerciales ni en una aplicación finalizada, ya que no cuenta con ningún tipo de seguridad en la transmisión de datos y es posible ver el contenido que se está transportando a través del socket.
Implementación de breakeven en MQL5 (Parte 1): Clase base y breakeven por puntos fijos
Implementación de breakeven en MQL5 (Parte 1): Clase base y breakeven por puntos fijos
En este artículo se estudia el uso del breakeven aplicado a estrategias automáticas en MQL5. Se parte de una explicación sencilla sobre qué es, cómo se implementa y cuáles son sus posibles variantes. Luego, se integra la funcionalidad dentro de un bot de Order Blocks, creado en el último artículo sobre gestión de riesgo. Para evaluar su comportamiento, se ejecutaron dos backtest bajo condiciones específicas: uno sin breakeven y otro con esta función activa.
Gestión de Riesgo (parte 3): Construyendo la Clase Principal para la Gestión de Riesgo
Gestión de Riesgo (parte 3): Construyendo la Clase Principal para la Gestión de Riesgo
En este artículo daremos inicio a la creación de la clase principal de gestión de riesgo, la cual será fundamental para administrar el riesgo en el sistema. Nos enfocaremos en construir las bases, definiendo estructuras, variables y funciones esenciales. Además, implementaremos los métodos necesarios para asignar valores a las pérdidas y ganancias máximas, estableciendo así los cimientos de esta gestión.
Implementación de un modelo de tabla en MQL5: Aplicación del concepto MVC (Modelo-Vista-Controlador)
Implementación de un modelo de tabla en MQL5: Aplicación del concepto MVC (Modelo-Vista-Controlador)
En este artículo, analizamos el proceso de desarrollo de un modelo de tabla en MQL5 utilizando el patrón arquitectónico MVC (Modelo-Vista-Controlador) para separar la lógica de datos, la presentación y el control, lo que permite obtener un código estructurado, flexible y escalable. Consideramos la implementación de clases para construir un modelo de tabla, incluyendo el uso de listas enlazadas para almacenar datos.
MetaQuotes ID en el terminal móvil MetaTrader
MetaQuotes ID en el terminal móvil MetaTrader
Los teléfonos con base Android e iOS nos proponen un sinfín de posibilidades, muchas de las cuales ni siquiera imaginamos o no usamos en todo su potencial. Una de esas novedades es la tecnología de notificaciones Push, que permite recibir mensajes personales a través de internet, independientemente del número de teléfono móvil o el operador de telefonía móvil. En el terminal móvil MetaTrader ya ha fructificado la posibilidad de recibir este tipo de mensajes directamente desde su robot comercial. Para ello, basta con conocer el identificador MetaQuotes ID de su aparato, más de 9 000 000 terminales móviles lo han recibido ya.
Clases de tabla y encabezado basadas en el modelo de tabla de MQL5: Aplicación del concepto MVC
Clases de tabla y encabezado basadas en el modelo de tabla de MQL5: Aplicación del concepto MVC
Esta es la segunda parte del artículo dedicado a la implementación del modelo de tabla en MQL5 utilizando el paradigma constructivo MVC (Model-View-Controller). Este artículo trata sobre el desarrollo de clases de tabla y su encabezado a partir de un modelo de tabla previamente creado. Las clases desarrolladas serán la base para la posterior implementación de los componentes Vista (View) y Controlador (Controller), que se tratarán en los siguientes artículos.
Simulación de mercado (Parte 07): Sockets (I)
Simulación de mercado (Parte 07): Sockets (I)
Sockets. ¿Sabes para qué sirven o cómo usarlos en MetaTrader 5? Si la respuesta es no, comencemos aprendiendo un poco sobre ellos. Este artículo trata de lo más básico. Pero, como existen diversas maneras de hacer lo mismo, y lo que realmente nos interesa es siempre el resultado, quiero mostrar que sí, existe una forma sencilla de pasar datos desde MetaTrader 5 hacia otros programas, como, por ejemplo, Excel. Sin embargo, la idea principal no es transferir datos de MetaTrader 5 a Excel, sino hacer lo contrario. Es decir, transferir datos desde Excel, o desde cualquier otro programa, hacia MetaTrader 5.
Cómo publicar un producto en el Mercado
Cómo publicar un producto en el Mercado
Ofrezca sus desarrollos a millones de usuarios de MetaTrader en todo el mundo: publíquelos en el Mercado. El servicio ofrece una infraestructura preparada para realizar ventas: acceso al público, mecanismos de licencia, provisión de versiones de prueba, entrega de actualizaciones y aceptación de pagos. Todo lo que debe hacer es pasar un rápido proceso de registro y superar el proceso de publicación del producto. Comience a ganar dinero con sus desarrollos: el servicio se encargará de todos los detalles técnicos.
¿Cómo presentar correctamente un Producto a la venta en el Mercado?
¿Cómo presentar correctamente un Producto a la venta en el Mercado?
Para vender sus programas a los traders, no basta con simplemente crear un programa cómodo y útil y publicarlo en el Mercado, es imprescindible dotar a su Producto de una estupenda descripción y buenas ilustraciones. Un logotipo de calidad y unas capturas de pantalla bien hechas no son menos importantes que el "true coding". Recuerde: no hay descargas == no hay ventas.
Del básico al intermedio: Objetos (I)
Del básico al intermedio: Objetos (I)
En este artículo, empezaremos a ver cómo podremos trabajar con objetos directamente en el gráfico. Esto usando un código construido especialmente para mostrarnos algo. Trabajar con objetos es algo muy interesante y bastante divertido. Como este será el primer contacto, empezaremos con algo muy simple.
Algoritmo de optimización caótica — Chaos optimization algorithm (COA)
Algoritmo de optimización caótica — Chaos optimization algorithm (COA)
Hoy hablaremos de un algoritmo de optimización caótica (COA) mejorado, que combina los efectos del caos con mecanismos de búsqueda adaptativos. El algoritmo usa un conjunto de mapeos caóticos y componentes inerciales para explorar el espacio de búsqueda. El artículo revela los fundamentos teóricos de los métodos caóticos de optimización financiera.
Programación gráfica para principiantes (Parte I): Aprendiendo CCanvas con Crazy Scalper
Programación gráfica para principiantes (Parte I): Aprendiendo CCanvas con Crazy Scalper
Este artículo introduce la librería CCanvas en MQL5 mediante el desarrollo paso a paso de un minijuego que se ejecuta sobre el gráfico de MetaTrader 5. Se explican el sistema de coordenadas, el renderizado vectorial de formas, el canal alfa para transparencias, el bucle con temporizador, la máquina de estados, la física básica y la detección de colisiones AABB, además de la captura de teclado. Al finalizar, podrá crear superficies graficas interactivas y sentar las bases de paneles y minijuegos propios.
Teoría de grafos: Aplicación del algoritmo de Dijkstra al trading
Teoría de grafos: Aplicación del algoritmo de Dijkstra al trading
El algoritmo de Dijkstra, una solución clásica para hallar el camino más corto en la teoría de grafos, puede optimizar las estrategias de trading mediante la modelización de las redes de mercado. Los traders pueden utilizarlo para encontrar las rutas más eficientes en los datos del gráfico de velas.
De novato a experto: Sistema de análisis autogeométrico
De novato a experto: Sistema de análisis autogeométrico
Los patrones geométricos ofrecen a los operadores una forma concisa de interpretar la acción del precio. Muchos analistas dibujan líneas de tendencia, rectángulos y otras formas a mano y luego basan sus decisiones comerciales en las formaciones que ven. En este artículo exploramos una alternativa automatizada: aprovechar MQL5 para detectar y analizar los patrones geométricos más populares. Desglosaremos la metodología, discutiremos los detalles de implementación y destacaremos cómo el reconocimiento de patrones automatizado puede agudizar el conocimiento del mercado de un comerciante.
De novato a experto: Programando velas japonesas
De novato a experto: Programando velas japonesas
En este artículo damos el primer paso en la programación MQL5, incluso para principiantes. Le mostraremos cómo transformar patrones de velas familiares en un indicador personalizado completamente funcional. Los patrones de velas son valiosos porque reflejan la acción real del precio y señalan cambios en el mercado. En lugar de escanear gráficos manualmente (un enfoque propenso a errores e ineficiencias), analizaremos cómo automatizar el proceso con un indicador que identifica y etiqueta patrones para usted. A lo largo del camino, exploraremos conceptos clave como indexación, series de tiempo, rango verdadero promedio (para mayor precisión en la volatilidad variable del mercado) y el desarrollo de una biblioteca de patrones de velas reutilizables personalizada para usar en proyectos futuros.
De novato a experto: Indicador de fuerza de soporte y resistencia (SRSI)
De novato a experto: Indicador de fuerza de soporte y resistencia (SRSI)
En este artículo compartiremos información sobre cómo aprovechar la programación MQL5 para identificar los niveles del mercado, diferenciando entre los niveles de precios más débiles y los más fuertes. Desarrollaremos completamente un indicador de fuerza de soporte y resistencia (Support and Resistance Strength Indicator, SRSI) funcional.
De novato a experto: Depuración colaborativa en MQL5
De novato a experto: Depuración colaborativa en MQL5
La resolución de problemas puede establecer una rutina concisa para dominar habilidades complejas, como la programación en MQL5. Este enfoque le permite concentrarse en la resolución de problemas al tiempo que desarrolla sus capacidades. Cuantos más problemas abordes, más conocimientos avanzados se transferirán a tu cerebro. Personalmente, creo que la depuración es la forma más efectiva de dominar la programación. Hoy repasaremos el proceso de limpieza de código y analizaremos las mejores técnicas para transformar un programa desordenado en uno limpio y funcional. Lea este artículo y descubra información valiosa.