English Русский Deutsch 日本語
preview
Integración en MQL5: Python

Integración en MQL5: Python

MetaTrader 5Sistemas comerciales | 21 febrero 2025, 10:26
62 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introducción

En este nuevo artículo, te daré una introducción definitiva a una herramienta importante que agregará valor a tus habilidades de programación. Veremos la integración de Python en MQL5. En cuanto a cómo esto puede ser útil para nosotros como desarrolladores, dependerá de sus objetivos del software, ya que Python es un lenguaje de programación de alto nivel que es fácil de leer y también es simple. Python es un lenguaje de programación que proporciona amplias bibliotecas para áreas como el análisis de datos, el cálculo estadístico y el aprendizaje automático. Por lo tanto, la integración de Python y MQL5 puede proporcionar mejores conocimientos que pueden ser útiles para que los participantes del mercado financiero mejoren sus resultados a través del procesamiento de datos y el análisis predictivo.

En este artículo, explicaré cómo usar Python con MQL5 brindándote conceptos básicos de Python y algunos ejemplos simples después de configurar nuestro entorno. Abordaré este tema a través de los siguientes temas:

Profundicemos en este interesante tema para entender cómo podemos mejorar nuestros resultados comerciales mediante el uso de Python en MQL5.


Descripción general de Python

Python fue desarrollado por Guido van Rossum y lanzado en 1991. Es un lenguaje de programación de alto nivel conocido por su legibilidad y sencillez, lo que lo hace ideal tanto para principiantes como para desarrolladores experimentados. Es adecuado para una amplia gama de aplicaciones, desde scripts sencillos a sistemas complejos, y su sintaxis concisa permite un código limpio y fácil de mantener.

Las características principales de Python incluyen:

  • Legibilidad: al hacer que el código sea más fácil de leer y escribir, la sintaxis de Python es intuitiva y refleja el lenguaje natural.
  • Lenguaje interpretativo: Python ejecuta el código línea por línea, lo que facilita la depuración y el desarrollo.
  • Tipado dinámicamente: los tipos de variables se determinan en tiempo de ejecución, lo que proporciona flexibilidad en la codificación.
  • Amplia biblioteca estándar: la completa biblioteca de Python proporciona soporte para tareas comunes como E/S de archivos, llamadas al sistema y manipulación de datos.
  • Versatilidad: Python tiene soporte para una amplia gama de paradigmas de programación, incluida la programación orientada a objetos, procedimental y funcional.
  • Compatibilidad entre plataformas: Python se ejecuta en una variedad de sistemas operativos, incluidos Windows, MacOS y Linux, sin necesidad de realizar ningún cambio en el código.
  • Comunidad y ecosistema fuertes: La gran comunidad y ecosistema de Python ofrece numerosas bibliotecas y herramientas que amplían las posibilidades de Python.

Las áreas de aplicación de Python incluyen:

  • Ciencia de datos: Bibliotecas de análisis y visualización de datos como Pandas y Matplotlib.
  • Inteligencia artificial: herramientas de aprendizaje automático como Scikit-learn, TensorFlow y Keras.
  • Automatización: Selenium y Beautiful Soup para la automatización de tareas repetitivas.
  • Desarrollo web: Marcos de desarrollo de aplicaciones web como Django y Flask.
  • Investigación científica: ideal para simulación, análisis estadístico y construcción de modelos.

Pandas, NumPy, SciPy, Scikit-learn, TensorFlow, Matplotlib, Selenium, Django y Flask son algunas de las bibliotecas y marcos de Python más populares. En resumen, la continua popularidad y relevancia de Python en el mundo de la programación se deben a su combinación de legibilidad, simplicidad y potentes bibliotecas.


Beneficios de la integración con Python

Como se dijo anteriormente, la integración de Python con MQL5 ofrece una multitud de características ventajosas, lo que lo convierte en una valiosa adición al sistema. Esta sección es un intento de presentar las ventajas más significativas asociadas con la integración de Python en un sistema MQL5 determinado.

La integración de estos dos sistemas ofrece las siguientes ventajas:

  • Facilite la manipulación y el análisis de datos sofisticados mediante el uso de técnicas avanzadas de análisis de datos utilizando las amplias bibliotecas disponibles en Python, incluidas Pandas y NumPy.
  • La incorporación de bibliotecas de aprendizaje automático, como Scikit-learn, TensorFlow y Keras, permite el desarrollo y la implementación de modelos de aprendizaje automático para análisis predictivos.
  • Automatice estrategias comerciales complejas y optimícelas utilizando el sólido ecosistema de Python, que ayuda a aplicar la automatización y la eficiencia.
  • Mejore sus algoritmos comerciales utilizando la amplia colección de bibliotecas y frameworks de Python.

Para más detalles:

Análisis de datos:

Es posible utilizar las bibliotecas de Python con gran eficacia. Python ofrece una multitud de bibliotecas diseñadas para el análisis de datos, incluidas Pandas y NumPy. Estas bibliotecas facilitan la manipulación sofisticada de datos y el análisis estadístico, mejorando así la calidad y la profundidad del análisis en las estrategias comerciales.

  • La biblioteca Pandas proporciona estructuras de datos y métodos de alto nivel que facilitan un análisis de datos rápido y sencillo. La biblioteca Pandas permite a los usuarios manejar eficientemente grandes conjuntos de datos y realizar operaciones como filtrar, agrupar y agregar datos con el mínimo esfuerzo.
  • NumPy es una biblioteca computacional que admite cálculos numéricos eficientes, lo que la hace ideal para manejar grandes matrices y conjuntos de datos numéricos. Ofrece una amplia gama de operaciones matemáticas y se utiliza con frecuencia como biblioteca fundamental sobre la que se construyen otras bibliotecas como Pandas y Scikit-learn.

Aprendizaje automático:

En el campo del aprendizaje automático, el lenguaje Python es la opción preferida debido a su simplicidad y la disponibilidad de bibliotecas sólidas, incluidas Scikit-learn, TensorFlow y Keras. Cuando se integran con MQL5, los comerciantes pueden utilizar estas bibliotecas para construir, desarrollar e implementar modelos predictivos que emplean datos históricos para predecir los movimientos del mercado.

  • Scikit-learn: esta biblioteca proporciona a los usuarios herramientas simples pero efectivas para el aprendizaje automático, permitiéndoles realizar análisis y minería de datos en profundidad. Cuenta con una amplia gama de algoritmos que satisfacen diversas necesidades, incluida la clasificación, la agrupación, la regresión y más.
  • TensorFlow y Keras: son herramientas muy populares y ampliamente utilizadas entre los desarrolladores para fines de aprendizaje profundo, y ofrecen un conjunto integral de herramientas para construir y entrenar redes neuronales para construir modelos sofisticados.

Automatización y eficiencia:

En el contexto de tareas repetitivas y estrategias comerciales sofisticadas, la automatización puede ser una solución eficaz. Al automatizar procesos, el comercio puede optimizar sus operaciones y reducir la posibilidad de errores humanos. Esto es particularmente beneficioso cuando se trabaja con estrategias complejas, ya que tener un código claro y preciso para la estrategia en cuestión puede ayudar a mitigar los riesgos.

  • Esta automatización se puede aplicar a una variedad de tareas relacionadas con datos, incluida la recopilación, el procesamiento y el análisis para liberar tiempo de los comerciantes y permitirles concentrarse en el desarrollo y la ejecución de estrategias.
  • Además, este enfoque se puede aplicar al backtesting y la optimización utilizando datos históricos para evaluar el desempeño de la estrategia e identificar áreas de mejora mediante la optimización de parámetros, lo que en última instancia conduce a mejores resultados.

Acceso a una amplia gama de bibliotecas y frameworks:

La funcionalidad de MQL5 se puede mejorar mediante el uso de un ecosistema integral de bibliotecas y frameworks. Estos incluyen herramientas estadísticas avanzadas, API para fuentes de datos externas y visualizaciones complejas, que pueden aprovecharse para ampliar las capacidades de sus aplicaciones MQL5.

  • Visualización de datos: bibliotecas como Matplotlib y Seaborn proporcionan las herramientas para crear gráficos informativos, desde simples hasta sofisticados, que pueden usarse para visualizar los datos disponibles, como el rendimiento comercial y otras métricas.
  • API y fuentes de datos: Las bibliotecas de Python ofrecen una solución práctica para recuperar datos financieros, realizar web scraping y acceder a fuentes de datos. Estas bibliotecas pueden interactuar con numerosas APIs, lo que resulta ventajoso para quienes desean mejorar sus estrategias de negociación.

Hay muchos otros beneficios que se pueden considerar al hablar de este tema pero creo que hemos mencionado los beneficios más importantes de integrar Python en nuestros sistemas.

Proporcionaremos aplicaciones sencillas para áreas relacionadas con el comercio que pueden aplicarse en la práctica. Esto ayudará a ilustrar cómo usamos los conceptos comerciales al integrar Python a MQL5. Analizaremos cómo estos conceptos y técnicas pueden utilizarse en diferentes campos y demostraremos cómo pueden integrarse en los procesos comerciales.


Configuración del entorno

En esta sección, vamos a configurar el software necesario para poder utilizar Python con MQL5, y los siguientes son los pasos a seguir.

  • Instale MetaTrader 5 descargando el archivo instalador visitando https://www.metatrader5.com/es luego puede instalarlo en su dispositivo.
  • Descarga la última versión de Python desde https://www.python.org/downloads/windows/.
  • Cuando instale Python, marque "Add Python to PATH%" para poder ejecutar scripts de Python desde la línea de comandos.
  • Es muy importante crear un entorno distinto para cada proyecto a fin de mantener una configuración limpia, aislada y reproducible. Los siguientes pasos ilustran cómo se puede lograr esto mediante el uso de la línea de comandos:
    • Navegue por el directorio del proyecto.
cd /ruta_a_tu_proyecto
    • Utilice 'venv' para crear el entorno 'mytestenv' (la herramienta de entorno virtual incorporada).
python -m venv mytestenv
    • Ahora es necesario activar el entorno que se ha creado..
mytestenv\Scripts\activate
pip install MetaTrader5
    • Mostrar los detalles de instalación de MetaTrader.
pip show MetaTrader5
    • Para facilitar la utilización de las funciones mencionadas, es necesario añadir los paquetes matplotlib y pandas.
pip install matplotlib
pip install pandas
    • En caso de desactivación, podemos utilizar el siguiente comando en la línea de comandos.
deactivate

En este punto del proceso, se ha instalado en el dispositivo el software necesario, es decir, MetaTrader 5, Python y las bibliotecas necesarias, lo que permite comenzar a trabajar.


Aplicaciones sencillas

Como ya se ha dicho, Python y MQL5 son herramientas de incalculable valor que pueden utilizarse en multitud de tareas y dominios, como el análisis de datos, el aprendizaje automático y la automatización. Esta sección se esfuerza por presentar sencillas aplicaciones relacionadas con el comercio que dilucidar la utilización de secuencias de comandos de Python con MetaTrader 5 para obtener una visión general de algunas de las tareas fundamentales que se pueden lograr.

Aplicación uno: Abrir MT5 usando un script de Python:

En esta aplicación, el objetivo es crear un script en Python que abra el terminal MetaTrader 5 e imprima un mensaje indicando si el terminal ha sido inicializado o no. El siguiente código representa el script completo. Es necesario sustituir 'xxxxx' por los datos pertinentes de su cuenta, incluidos el número de cuenta, el nombre de usuario, la contraseña y el servidor del corredor.

import MetaTrader5 as mt5
print ("MetaTrader5 PKG version: ",mt5.__version__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")  
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
 

Después de ejecutar este código, encontrará que el terminal MetaTrader 5 se inicializa de la misma manera que al hacer clic en el archivo ejecutable, a continuación, puede utilizarlo para su comercio con normalidad. Además, encontrará el siguiente resultado en su consola:

  • MetaTrader5 PKG version:  5.0.4424
  • MetaTrader5 PKG author:  MetaQuotes Ltd.
  • MT5 initialized Successfully

Aplicación dos: Abrir posiciones utilizando un script de Python:

En esta aplicación, el objetivo es crear un script en Python que permita la apertura de una posición de compra en el terminal MetaTrader 5. Para ello, se seguirán los siguientes pasos: se creará un script para abrir una posición de compra de 0.01 en el XAUUSD al precio Ask, con un nivel de Stop Loss y Take Profit.

El modelo 'MetaTrader5' debe importarse como 'mt5'.

import MetaTrader5 as mt5

Impresión de la versión de MetaTrader5 como información del paquete.

print ("MetaTrader5 PKG version: ",mt5.__version__)

Imprimir el autor de MetaTrader5 como información del paquete.

print ("MetaTrader5 PKG author: ",mt5.__author__)

La conexión MetaTrader5 se inicializa con un mensaje que indica si la inicialización fue exitosa o no. Si no tiene éxito, el mensaje proporciona el código de error. Los detalles de la cuenta, incluido el nombre de usuario, el servidor del broker y la contraseña, deben reemplazarse con los detalles reales de la cuenta.

if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())

Se declaran las siguientes variables: symbol, lot, point, order_type, price, sl, tp, deviation, magic, comment, type_time, and type_filling.

symbol="XAUUSD"
lot=0.01
point=mt5.symbol_info(symbol).point
order_type=mt5.ORDER_TYPE_BUY
price=mt5.symbol_info_tick(symbol).ask
sl=mt5.symbol_info_tick(symbol).ask-100
tp=mt5.symbol_info_tick(symbol).ask+150
deviation=10
magic=2222222
comment="python order"
type_time=mt5.ORDER_TIME_GTC
type_filling=mt5.ORDER_FILLING_IOC

Enviar el pedido declarando que la solicitud es equivalente a los detalles del pedido según lo que declaramos anteriormente.

request={
    "action":mt5.TRADE_ACTION_DEAL,
    "symbol":symbol,
    "volume":lot,
    "type":order_type,
    "price":price,
    "sl":sl,
    "tp":tp,
    "deviation":deviation,
    "magic":magic,
    "comment":comment,
    "type_time":type_time,
    "type_filling":type_filling,
    } 

Verifique que haya fondos suficientes para realizar una operación comercial solicitada utilizando (order_check) como equivalente al valor del resultado. El resultado de la verificación se devuelve como una estructura MqlTradeCheckResult.

result=mt5.order_check(request)

La ejecución de las operaciones comerciales se realiza mediante la transmisión de una solicitud a través de la función "order_send", que sirve como equivalente al valor del resultado como actualización.

result=mt5.order_send(request)

Ahora es necesario finalizar la conexión con el terminal MetaTrader 5 que se estableció previamente mediante la función shutdown().

mt5.shutdown()

En consecuencia, el código completo se puede localizar de la misma manera como lo demuestra el siguiente bloque de código.

import MetaTrader5 as mt5
print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
symbol="XAUUSD"
lot=0.01
point=mt5.symbol_info(symbol).point
order_type=mt5.ORDER_TYPE_BUY
price=mt5.symbol_info_tick(symbol).ask
sl=mt5.symbol_info_tick(symbol).ask-100
tp=mt5.symbol_info_tick(symbol).ask+150
deviation=10
magic=2222222
comment="python order"
type_time=mt5.ORDER_TIME_GTC
type_filling=mt5.ORDER_FILLING_IOC
request={
    "action":mt5.TRADE_ACTION_DEAL,
    "symbol":symbol,
    "volume":lot,
    "type":order_type,
    "price":price,
    "sl":sl,
    "tp":tp,
    "deviation":deviation,
    "magic":magic,
    "comment":comment,
    "type_time":type_time,
    "type_filling":type_filling,
    }    
result=mt5.order_check(request)
result=mt5.order_send(request)
mt5.shutdown()

El resultado obtenido al ejecutar el código será idéntico al siguiente:

  • MetaTrader5 PKG version:  5.0.4424
  • MetaTrader5 PKG author:  MetaQuotes Ltd.
  • MT5 initialized Successfully
  • Se inició una operación de compra de oro (XAUUSD) al precio de venta con un tamaño de lote de 0.01, con Stop Loss al precio de venta menos 100 y un Take Profit al precio de venta más 150.

buyTrade

Aplicación tres: uso de la API Python de MT5 para obtener datos:

Se pueden realizar multitud de tareas mediante el uso de MQL5 y Python en el contexto de la gestión de datos. En esta sección se presentará un ejemplo sencillo relacionado con el trading, en el que se obtienen datos financieros utilizando la API Python de MT5. Además de trazar los datos en un gráfico para fines de visualización, se obtendrá, imprimirá y visualizará el precio del oro (XAUUSD) desde el 1 de agosto de 2023 hasta ahora (el momento de redactar el artículo fue el 12 de agosto de 2024) como un gráfico lineal. A continuación se presentarán los pasos para este proceso.

Se deben importar las bibliotecas necesarias:

El módulo MetaTrader5, denominado "mt5", se importará para su uso futuro como objeto de interacción con el terminal de operaciones MetaTrader 5, como se determinó previamente.

import MetaTrader5 as mt5

La biblioteca de Pandas se importa como 'pd' con el propósito de manipular y analizar datos.

import pandas as pd

Importar 'plotly.express' como 'px' para usar en la visualización de datos para presentar los datos XAUUSD.

import plotly.express as px

Importación de gráficos desde 'plotly.offline' para facilitar la generación de gráficos sin necesidad de conexión a Internet.

from plotly.offline import plot

Para facilitar la manipulación de fechas y horas, es necesario importar el módulo datetime de datetime.

from datetime import datetime

Impresión de la información del paquete MetaTrader5 (versión y autor).

print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)

Se inicializa el terminal MetaTrader 5 y se imprime un mensaje en la consola para indicar si la inicialización fue exitosa. Si la inicialización es exitosa, se muestra el mensaje "MT5 initialized successfully". Por el contrario, si la inicialización no es exitosa, se muestra el mensaje "MT5 initialization failed, error code", junto con el código de error y el último mensaje de error.

if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())

Los datos históricos (apertura, máximo, mínimo, cierre, volumen, spread y volumen real) del XAUUSD se obtuvieron de la plataforma MetaTrader 5. Para este propósito se utilizó el siguiente comando:

  • pd.DataFrame: se puede crear un 'pd.dataFrame' con criterios específicos, lo que da como resultado una estructura de datos etiquetada y bidimensional.
  • mt5.copy_rates_range: se utiliza para determinar el tipo de datos en términos de símbolo (XAUUSD), marco temporal (mt5.TIMEFRAME_D1), fecha inicial (datetime(2023,8,1)) y fecha final (datetime.now()).
xauusd_data=pd.DataFrame(mt5.copy_rates_range("XAUUSD", mt5.TIMEFRAME_D1, datetime(2023,8,1), datetime.now()))

La columna de tiempo se convierte de marcas de tiempo Unix a un formato legible de fecha y hora utilizando la función pandas.to_datetime.

xauusd_data['time'] = pd.to_datetime(xauusd_data['time'],unit='s')

Los datos recuperados para el XAUUSD deben imprimirse según la siguiente línea de código.

print(xauusd_data)

Los datos recuperados se trazaron utilizando la función 'px.line', que permite crear un trazado lineal utilizando Plotly Express. Este gráfico representa el precio de XAUUSD a lo largo del tiempo, desde el 1 de agosto de 2023 hasta ahora.

fig = px.line(xauusd_data, x=xauusd_data['time'], y=xauusd_data['close'])
plot(fig)

El código completo es el mismo que este bloque de código.

import MetaTrader5 as mt5
import pandas as pd
import plotly.express as px
from plotly.offline import plot
from datetime import datetime
print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
xauusd_data=pd.DataFrame(mt5.copy_rates_range("XAUUSD", mt5.TIMEFRAME_D1, datetime(2023,8,1), datetime.now()))
xauusd_data['time'] = pd.to_datetime(xauusd_data['time'],unit='s')
print(xauusd_data)
fig = px.line(xauusd_data, x=xauusd_data['time'], y=xauusd_data['close'])
plot(fig)

Al ejecutar el código se obtienen los siguientes resultados.

  • El mensaje "MetaTrader5 PKG version: 5.0.4424" se imprimió en la consola.
  • El mensaje "MetaTrader5 PKG author: MetaQuotes Ltd." se imprimió en la consola.
  • El mensaje "MT5 initialized Successfully" se imprimió en la consola.
  • Los datos XAUUSD impresos en la consola son los mismos que en la siguiente figura.

XAUUSD_data

  • Al abrir el gráfico de XAUUSD en un navegador como resultado de trazar el mismo como se muestra a continuación

XAUUSD_plot

Como se ilustra en la figura anterior, un gráfico lineal representa los precios de cierre del oro (XAUUSD) a lo largo del tiempo, desde agosto de 2023 hasta el presente. Las sencillas aplicaciones mencionadas anteriormente demuestran el potencial de utilizar Python con MQL5 en varios aspectos del comercio automatizado, el análisis de datos y otras tareas relacionadas.


Conclusión

Python es un lenguaje de programación muy versátil y potente que puede utilizarse en distintos campos, incluidos el comercio y los mercados financieros. El uso de Python permite la automatización, el análisis de datos y la ejecución de estrategias, lo que a su vez facilita decisiones comerciales más informadas. La combinación de Python y MQL5 permite la creación de sistemas comerciales sofisticados que utilizan datos y aprendizaje automático. Representa un avance significativo en el campo del trading algorítmico. Permite la creación de sistemas comerciales más adaptables y basados en datos. Esta combinación tiene el potencial de mejorar los resultados comerciales en los mercados financieros.

Este artículo demostró el uso de Python junto con MQL5. Además, el artículo describe los pasos necesarios para configurar un entorno Python para MetaTrader 5. Al establecer un flujo de trabajo eficaz, los desarrolladores pueden gestionar las dependencias de forma más eficiente y mejorar la escalabilidad de sus sistemas comerciales. Python es capaz de automatizar tareas y analizar tendencias del mercado. Esto se demuestra mediante aplicaciones prácticas, que incluyen la apertura de MetaTrader 5, la ejecución de operaciones, la recuperación de datos de activos y su visualización.

Espero que este artículo le ayude a comenzar a utilizar Python con MQL5. Experimentar con diversas aplicaciones puede resultar muy beneficioso tanto para los comerciantes como para los desarrolladores. Para obtener más información, consulte recursos como:

  • Python for Dummies de Stef Maruch.
  • Python Crash Course de Eric Matthes.
  • Python All-In-One de John Shovic y Alan Simpson.

Además, puede acceder a más documentación en la página web de MQL5 a través del enlace https://www.mql5.com/es/docs/python_metatrader5.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/14135

Archivos adjuntos |
openMT5.py (0.39 KB)
openPosition.py (1.22 KB)
getData.py (0.84 KB)
Redes neuronales en el trading: Modelos "ligeros" de pronóstico de series temporales Redes neuronales en el trading: Modelos "ligeros" de pronóstico de series temporales
Los modelos ligeros de pronóstico de series temporales logran un alto rendimiento utilizando un número mínimo de parámetros, lo que, a su vez, reduce el consumo de recursos computacionales y agiliza la toma de decisiones. De este modo consiguen una calidad de previsión comparable a la de modelos más complejos.
Monitoreo de transacciones usando notificaciones push: ejemplo de un servicio en MetaTrader 5 Monitoreo de transacciones usando notificaciones push: ejemplo de un servicio en MetaTrader 5
En este artículo veremos cómo crear un programa de servicio para enviar notificaciones a un smartphone sobre los resultados comerciales. Asimismo, aprenderemos cómo trabajar con listas de objetos de la biblioteca estándar para organizar una muestra de objetos según las propiedades requeridas.
Particularidades del trabajo con números del tipo double en MQL4 Particularidades del trabajo con números del tipo double en MQL4
En estos apuntes hemos reunido consejos para resolver los errores más frecuentes al trabajar con números del tipo double en los programas en MQL4.
Creación de un modelo de restricción de tendencia de velas (Parte 8): Desarrollo de un asesor experto (I) Creación de un modelo de restricción de tendencia de velas (Parte 8): Desarrollo de un asesor experto (I)
En esta discusión, crearemos nuestro primer Asesor Experto en MQL5 basado en el indicador que creamos en el artículo anterior. Cubriremos todas las características necesarias para automatizar el proceso, incluida la gestión de riesgos. Esto beneficiará ampliamente a los usuarios para pasar de la ejecución manual de operaciones a sistemas automatizados.