Errores, fallos, preguntas - página 1339

 
A100:
¿Por qué?
Para ver la lógica.
 
Karputov Vladimir:
Para ver la lógica.
Lo imprimí - describí el resultado arriba
 
A100:
Lo imprimí - el resultado es el descrito arriba
¿Dónde lo imprimiste? ¿Dónde está el resultado? No lo veo, te has olvidado de adjuntar la impresión del antes y el después.
 
Karputov Vladimir:
¿Dónde estaba la impresión? ¿Dónde está el resultado? No lo veo, te has olvidado de adjuntar la impresión del antes y el después.

Antes del reinicio Antes de

Después de reiniciar Después de

 

No se muestra el encabezado al añadir una imagen en el foro

Estoy rellenando el campo de la cabecera. La imagen se muestra pero el encabezado no

 
A100:

Diferente orden de los gráficos en un perfil

Si añade un nuevo gráfico a varios gráficos de un perfil y lo mueve al centro, digamos

entonces en el listado posterior de gráficos con el script usando

se trasladará al último a pesar de estar en el centro

Y si se recarga la MT, estará en el centro, como en la figura, durante la nueva enumeración

Resulta un comportamiento diferente antes y después de la recarga. ¿Dónde está la lógica?

Hemos añadido "EURAUD", "EURCAD", "EURUSD" y "NZDUSD" y activado el primer gráfico - "EURAUD"

Paso 1

"NZDUSD" se coloca después de "EURAUD" y activa el primer gráfico - "EURAUD"

Paso 2

Después de la recarga (el primer gráfico sigue activo - "EURAUD")

Paso 3

Todo tiene mucho sentido. Sólo antes de llamar al script:

//+------------------------------------------------------------------+
//|                                                    ChartNext.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- переменные для идентификаторов графиков
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);
   while(i<limit)// у нас наверняка не больше 100 открытых графиков
     {
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график
      if(currChart<0) break;          // достигли конца списка графиков
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+

hay que elegir con cuidado el gráfico activo. El siguiente gráfico se cuenta a partir del activo.
 
Karputov Vladimir:

Todo tiene mucho sentido.

¿Qué lógica tiene eso? ¿Si había una secuencia 2-3-4-5 antes del reinicio, y después del reinicio hay otra 2-5-3-4?
 
A100:
¿Y cuál es la lógica de esto? ¿Si antes de reiniciar había una secuencia 2-3-4-5, y después de reiniciar había otra 2-5-3-4?

Antes de la recarga, los gráficos se escriben en el perfil en el orden en que fueron creados, es decir, 1-2-3-4. Antes de la recarga, se reescribe el perfil (se escribe en él la última revisión de los movimientos del gráfico, es decir, 1-4-2-3-3). Tras el reinicio, los gráficos se vuelven a dibujar (crear) según la última revisión de los movimientos del gráfico, es decir, 1-4-2-3-3.

Y así, después del reinicio, como los gráficos fueron creados en el orden de 1-4-2-3, significa que ChartNext() devolverá exactamente ese orden.

 
Karputov Vladimir:

Antes de la recarga, los gráficos se escriben en el perfil en el orden en que fueron creados, es decir, 1-2-3-4. Antes de la recarga, el perfil se reescribe (la última revisión de los movimientos del gráfico, es decir, 1-4-2-3-3, se escribe en el perfil). Tras la recarga, los gráficos se vuelven a dibujar (crear) según la última revisión de los movimientos del gráfico, es decir, 1-4-2-3-3.

La cuestión no es cómo se implementa actualmente (se puede implementar de otra manera), sino que antes y después de la recarga (en igualdad de condiciones) el resultado es diferente, y por lo tanto la lógica está rota.
 
A100:
La cuestión no es cómo se implementa actualmente (podría implementarse de otra manera), sino que antes y después de la recarga (en igualdad de condiciones) el resultado es diferente, lo que significa que la lógica está rota.
Creo que no se viola la lógica porque después de recargar el terminal se vuelven a crear los gráficos y por lo tanto ChartNext() funciona correctamente. Pero puedes hacer una petición a servicedesk - por favor, comparte la respuesta después.