![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Brevemente.
Las funciones de las bibliotecas del sistema para procesos x86 (32 bits) tienen una envoltura especial a través de la cual se pasan a x64, se ejecutan y se devuelven a x86.
Para ser breve, el tema de los 32/64 bits se ha agudizado en MT5.
este es un tema muy importante y ya es hora de que se aborde.
o añadir una carpeta libraries64 para que el terminal sepa de dónde obtener las bibliotecas
o añadir alguna forma de dispersar las DLL en las carpetas system32/SysWow64
o utilizar #ifdef
https://www.mql5.com/ru/forum/6729#comment_199764
ZS.
solicitud a SD #381730
Array de cualquier dimensionalidad (para mayor claridad, digamos que se limita a ^16).
La dimensionalidad se establece en el momento de la creación por el número de parámetros, como en el caso de las matrices normales.
XXArray xx2(5,7), xx5(12,12,16,16,8);
Los indexadores deben funcionar para todas las dimensiones ( A[i][j][k][n][m]....)
Bueno, ya que la comunidad está en silencio, continuaré...
Un esquema de una clase de array N-dimensional (doble) y un test para probarlo.
La dimensionalidad se describe mediante un array (int) en el constructor.
La segunda variante es una matriz N-dimensional (doble). La estructura del array también se especifica en el constructor mediante otro array (int).
Esta variante es un poco más rápida que la anterior. Y en esta variante es más fácil crear operaciones con subarreglos.
La segunda variante es una matriz N-dimensional (doble). La estructura del array también se especifica en el constructor mediante otro array (int).
Esta variante es un poco más rápida que la anterior. Y en esta variante, es más fácil crear operaciones con subarreglos.
Yurich, eres un tío genial, he estado distraído del foro un par de días y ya has hecho un par de variantes.
Primera impresión - la primera variante está plagada de fallos en la llamada incorrecta con menos número de índices: por ejemplo double x=A[i][j][k]; la "llamada tridimensional" para un array de cuatro dimensiones devolverá double como si no fuera gran cosa, pero desde cualquier otra posición del array que el usuario quisiera.Pero la ventaja indiscutible de la primera implementación es la economía de memoria. La segunda forma es mucho más dispendiosa. Pero, como has notado correctamente, puedes intentar pasar a subarreglos en ella y todas las dificultades son bastante manejables en este caso.
Tengo algunas ideas, pero no tendré tiempo libre hasta la noche anterior, si es que llego. Pero lo conseguiremos, lo prometo. :)
--
Idea básica: utilizar una clase más, algo así como "controlador de índices de la izquierda", y el índice de la derecha para procesar por la clase principal (si va a funcionar. Si no, entonces una clase más para el índice de la derecha). Al hacerlo, el array base double (unidimensional y único) debe hacerse miembro de la clase principal CNArray. Algo así.
Tx. Primera impresión - la primera variante está plagada de fallos en la llamada incorrecta con menos número de índices: es decir, por ejemplo, double x=A[i][j][k]; la "llamada tridimensional" para un array de cuatro dimensiones devolverá double como si no hubiera pasado nada, pero en la posición del array que el usuario quería. Y no es visible qué manera de rastrear y manejar este tipo de errores.
He estado jugando con el primer método de Yurich, y parece que es posible controlar el rango del array de esta manera:
Tarea:
- Para pasar una matriz de números del Asesor Experto al indicador.
Requisitos.
No utilice
- eventos de la carta,
- archivos,
- variables globales (también conocidas como archivos),
- dll
Tarea:
- Para pasar una matriz de números del Asesor Experto al indicador.
Requisitos.
- No utilice eventos de gráficos, archivos, dll para la transferencia de datos
Entonces, los canales con nombre permanecen.
Tarea:
- Para pasar una matriz de números del Asesor Experto al indicador.
Condiciones.
No utilice
- eventos de la carta,
- archivos,
- variables globales (también conocidas como archivos),
- dll
No hay nadie que lo haga :)
Entonces propongo otra variante - utilizar el subgráfico y las funcionesChartSetString()yChartGetString().