Terminal
pip install --upgrade MetaTrader5
Terminal web
Client Terminal




acceso

MQL5
int SymbolInfoCommissions( string name, // nombre del símbolo MqlCommission& commissions[] // array de reglas de comisión );
MetaEditor



Tester
Terminal web



En esta versión se ha mejorado el trabajo con servidores proxy. Hemos mejorado la compatibilidad con los protocolos HTTP y SOCKS5, lo cual reducirá la probabilidad de que se produzcan errores de conexión. El protocolo SOCKS4 está obsoleto, por lo que ya no es compatible.
También ha cambiado el orden de trabajo con la biblioteca de álgebra lineal OpenBLAS. Ahora su implementación se ha trasladado a un archivo independiente llamado openblas.dll.





uint ColorToPRGB( color clr, // color convertido en formato color uchar alpha=255 // canal alfa que gestiona la transparencia del color );El color PRGB se calcula mediante la fórmula
// Declaración previa de la función double CalcLot(double risk, double stop);Archivo expert.mq5:
#include "utils.mqh" double CalcLot(double risk, double stop) { return risk / stop; }Anteriormente, el compilador podía generar una advertencia de que faltaba la directiva #import para la función CalcLot en el archivo utils.mqh, a pesar de que la función es personalizada y está implementada en el código del proyecto. Ahora ese código se compilará sin advertencias. La directiva #import solo es necesaria para las funciones importadas de DLL externas.

La actualización estará disponible a través del sistema Live Update.






input int InpVar; /*visible name*/ // some commentDebe usarse:
input(name="visible name") int InpVar; // some commentEl nombre mostrado de la variable se especifica en el parámetro name. Solo se admite como valor una cadena literal.
Si existen menos datos, el simulador desplazará la fecha de inicio real a la fecha disponible más próxima en la que se cumplan las condiciones.
Debido a estos requisitos, a veces sucede que las pruebas no empiezan en la fecha especificada, sino en una fecha posterior. Y esto se ve acompañado de un mensaje en el diario del simulador:
start time changed to 2024.03.15 00:00 to provide data at beginning
class Base { public: void Print(int x) { ::Print("Base int: ", x); } void Print(double y){ ::Print("Base double: ", y); } }; class Derived : public Base { public: void Print(string s){ ::Print("Derived string: ", s); } }; void OnStart() { Derived d; d.Print("text"); // call of Derived::Print(string) d.Print(10); // ATTENTION! Calling Derived::Print(string) since Base::Print is hidden (inaccessible) d.Base::Print(10); // explicit call to hidden parent method }Durante algún tiempo, el compilador MQL5 generará una advertencia si un método ancestro oculto es más adecuado según los parámetros de llamada que un método descendiente disponible. El ejemplo para el código anterior es d.Print(10):
class Base { protected: void Print(int x) { ::Print("Base int: ", x); } void Print(double y){ ::Print("Base double: ", y); } }; class Derived : public Base { public: void Print(string s){ ::Print("Derived string: ", s); } using Base::Print; // return Print overloads from Base }; void OnStart() { Derived d; d.Print("text"); // Derived::Print(string) d.Print(42); // Base::Print(int) d.Print(3.14); // Base::Print(double) }Si eliminamos using Base::Print;, las llamadas d.Print(42) y d.Print(3.14) no estarán disponibles, solo quedará el método Derived::Print(string)
Clonación de proyectos ajenos
En forge.mql5.io, vaya al proyecto que desea clonar y ejecute el comando Fork. Rellene el nombre de la bifurcación que está creando con su correspondiente descripción, y guarde luego los cambios:

A continuación, vaya a MetaEditor con la misma cuenta MQL y ejecute el comando (Refresh) en el Navegador. El proyecto clonado aparecerá en la carpeta Shared projects. Ahora cárguelo desde el portal Algo Forge con el comando Git Clone. Descargará no solo todos los archivos del proyecto, sino también toda la historia de confirmaciones y todas las ramas de ese proyecto. Es decir, podrá seguir trabajando en la bifurcación con toda la historia del proyecto clonado.



struct A { int y; string func(double x) { return(__FUNCSIG__); } }; struct B : public A { string func(int x) // the method hides A::func { return(__FUNCSIG__); } }; void OnStart(void) { B b; b.func(M_PI); // according to new rules, it is a call to B::func b.A::func(M_PI); // call the hidden method A::func }Esto simplificará la lectura del código y eliminará la ambigüedad que antes solo iba acompañada de una advertencia del compilador.
input int somename=42; int somename(int x) { return(42); }
int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT); int somename(ENUM_TIMEFRAMES TF=0) // error, type mismatch for the default parameter value, despite having the same value { return(42); }
enum A { Value }; enum B { Value // error, name 'Value' is already used in enumeration A }; void OnStart(void) { enum C { Value // OK, 'Value' is not used within the OnStart scope }; }En ámbitos diferentes, sí se pueden utilizar los mismos nombres.
template<typename T> void Initializer(matrix<T>& mat,int method=0); matrix<double> A(10,10,Initializer,42); // error, Initializer must be explicitly typed matrix<double> A(10,10,Initializer<double>); // error, missing 'method' parameter (default values no longer supported) matrix<double> A(10,10,Initializer<double>,42); // OK
Las últimas versiones de la aplicación móvil MetaTrader 5 para iOS
incluyen una serie de nuevas funciones para ayudar a los tráders a
seguir el pulso de los mercados financieros estén donde estén.





Instale la última versión de la aplicación y amplíe sus posibilidades comerciales:
![]() |
|






matrix A(2, 3); matrix B(3, 2); matrix C = A @ B; // Resultado: matriz C con un tamaño [2,2]Multiplicación de matrices (matriz × vector)
matrix M(2, 3); vector V(3); vector R = M @ V; // Resultado: vector R de 2 elementosMultiplicación de matrices (vector × matriz)
matrix M(2, 3); vector V(1, 2); vector R = V @ M; // Resultado: vector R de 3 elementosProducto escalar (vector × vector)
vector V1(1, 3), V2(1, 3); double r = V1 @ V2; // Resultado: escalar
static vector vector::Random( const ulong size, // longitud del vector const double min=0.0, // valor mínimo const double max=1.0 // valor máximo ); static matrix matrix::Random( const ulong rows, // número de filas const ulong cols // número de columnas const float min=0.0, // valor mínimo const float max=1.0 // valor máximo );
En las últimas versiones de la aplicación móvil MetaTrader 5 para iOS, hemos añadido muchas características cómodas para los gráficos, y también hemos realizado varias correcciones importantes para que la aplicación funcione de forma más estable.





Instale la última versión de la aplicación y amplíe sus posibilidades comerciales:
![]() |


matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;El método retorna una nueva matriz conjugada-transpuesta en la que los elementos de la matriz original se transponen y reducen a sus valores conjugados complejos.
int matrix<T>::CompareEqual(const matrix<T>& mat) constValores de retorno:
pip install --upgrade MetaTrader5