Errores, fallos, preguntas - página 2647

 

Ahora en el MetaEditor cuando se trabaja en un proyecto para mover los archivos del proyecto en la pestaña "Proyecto", por ejemplo a una subcarpeta recién creada, hay que realizar todo un "ritual":

- asegúrese de que se han guardado todos los cambios realizados en los archivos que se van a trasladar, ya que de lo contrario se puede perder el trabajo realizado;
- arrastre y suelte los archivos en la pestaña "Proyecto" a la nueva ubicación;
- cerrar las pestañas de los archivos que se están migrando, ya que están utilizando una ruta no válida;
- volver a abrir las pestañas cerradas, sólo que ahora utilizando la nueva ruta.
- reordenar las pestañas abiertas en el mismo orden que antes de cerrarlas.

Sugerencia:
Al mover los archivos del proyecto en la pestaña Proyecto, por ejemplo, a una subcarpeta recién creada:
- para los archivos abiertos pero no modificados, actualiza automáticamente su ruta de ubicación.
- para los archivos modificados, pide adicionalmente una confirmación: "Transferir con guardar", "Transferir con pérdida de los cambios" o "Cancelar la operación de transferencia".


 
Igor Makanu :

Tengo 12GB de memoria, Windows 10, memoria libre de unos 8GB


Necesitaba esta prueba para averiguar las longitudes de línea máximas permitidas en los terminales MT4/MT5

Ahora quiero intercambiar entre terminales a través de la base de datos Redis

Redis es una base de datos muy simple y sólo funciona con cadenas (clave - valor --> cadena - cadena)

Ayer he serializado estructuras POD en Base64 y aumenta el tamaño de los datos en aproximadamente 1/3

Creo que incluso en este caso tengo la posibilidad de intercambiar estructuras con un tamaño de 400 Mb por transacción - ¡eso es más que suficiente para cualquier propósito! ;)

Me pregunto si voy a comprobar este "Redis", no lo conozco.

He comprobado tu código en mi lado, lo he parado después de 1 minuto, demasiado lento. Así que lo he cambiado un poco ;-)

#define  STEP      1000000     // 1 million
#define  MILLION   1000000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  printf("m_physical = %i MB, m_total = %i MB, m_available = %i MB, m_used = %i MB, limit = %i MB, used = %i MB",
         TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL), TerminalInfoInteger(TERMINAL_MEMORY_TOTAL),
         TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE), TerminalInfoInteger(TERMINAL_MEMORY_USED),
         MQLInfoInteger(MQL_MEMORY_LIMIT),MQLInfoInteger(MQL_MEMORY_USED));

  string s = "";
  int size=INT_MAX;

  do
    {
    size-=STEP;
    }
  while(!StringInit(s,size,USHORT_MAX));

  long length = StringLen(s);
  printf("StringLen = %lli millions characters, m_used = %i MB, used = %i MB", length/MILLION, TerminalInfoInteger(TERMINAL_MEMORY_USED),MQLInfoInteger(MQL_MEMORY_USED));
  }

2020.02.13 15: 50: 51.199 1111R-2646 (EURUSD, M1) m_physical = 16230 MB, m_total = 32460 MB, m_available = 31786 MB, m_used = 674 MB, limit = 8388608 MB, used = 0 MB
2020.02.13 15: 50: 51.763 1111R-2646 (EURUSD, M1) StringLen = 1073 millones de caracteres, m_used = 2722 MB, used = 2048 MB

Menos de 1 segundo. Por último, está el límite de mql5, que es de 2 GB o unos 1.073 millones de caracteres.

 

Explique por qué los archivos ico no pueden cargarse en el código base. Son una parte estándar del programa, conectada por herramientas MQL. El hecho de que estén prohibidos es obviamente erróneo. Pero va más allá.

Un ico correctamente preparado puede ser renombrado a png sin que ello afecte al funcionamiento: sigue estando correctamente enlazado en el programa (usando el icono #property "mql5pack.png") y se muestra en el diálogo de propiedades. Pero todo esto sólo funciona a nivel local. He subido dicho png a codebase y me ha dado error al comprobar el código fuente:

mql5pack.mq5(27,11) : error 341: cannot open icon file 'mql5pack.png'
main file not found

Por favor, la administración de mql5 debe arreglar la carga o/y al menos comprobar los iconos.

PS. Corrección, parece que el sitio se come silenciosamente el archivo png, es decir, le da a subir, pero luego no está en la lista de archivos compilados. He probado con MQL5\Images, MQL5\Files - nada se sube al servidor, pero en silencio, sin ningún error. Da un error durante la comprobación.

 
¿Puede decirme cómo evitar un error de compilación?
struct STRUCT
{
  static const int Array[];
  int Array2[sizeof(STRUCT::Array)]; // unresolved static variable 'STRUCT::Array'
};

static const int STRUCT::Array[] = {1, 2};

void OnStart()
{
  static const int Array[] = {1, 2};
  
  int Array2[sizeof(Array)]; // OK
}
 

Amigos, ¿cómo hago para que en mt5 las órdenes abiertas no se intercambien?

 
Сергей Проценко:

Amigos, ¿cómo se aseguran de que los pedidos abiertos no se intercambian?

Lo siento, ¿cómo se intercambian los lugares?

 
Сергей Таболин:

Lo siento, ¿cómo se intercambian los lugares?

Dependiendo del beneficio, si el beneficio es mayor, se mueve hacia abajo, la otra orden tiene mayor beneficio, intercambia lugares. Si el beneficio del euro es mayor que el del oro, la orden del euro será menor y la del oro mayor.
 
Сергей Проценко:
Dependiendo del beneficio, si el beneficio es mayor, baja, la otra orden tiene un beneficio mayor, intercambia lugares.

Haga clic en una de las cabeceras de columna: Símbolo, Billete, Hora

 
Vladimir Karputov:

Haga clic en la cabecera de una de las columnas: Símbolo, Billete, Hora

Este es el único resultado.
 
Сергей Проценко:
Este es el único resultado.

Haga clic en la cabecera de una de las columnas: Símbolo, Billete, Hora.

Haga clic en la TECLA IZQUIERDA. Haga clic en el TÍTULO.