Erros, bugs, perguntas - página 1339

 
A100:
Porquê?
Para ver a lógica.
 
Karputov Vladimir:
A fim de ver a lógica.
Imprimi-o - descrevi o resultado acima
 
A100:
Imprimiu-o - o resultado é descrito acima
Onde o imprimiu? Onde está o resultado? Não o vejo - esqueceu-se de anexar a impressão antes e depois.
 
Karputov Vladimir:
Onde estava a impressão? Onde está o resultado? Não o vejo - esqueceu-se de anexar a impressão antes e depois.

Antes do reset Antes de

Após a reinicialização Depois de

 

Não aparece nenhum cabeçalho quando se adiciona uma imagem no fórum

Estou a preencher o campo do cabeçalho. A imagem é exibida, mas o cabeçalho não é

 
A100:

Ordem diferente dos gráficos de um perfil

Se adicionar um novo gráfico a múltiplos gráficos num perfil e o mover para o meio, digamos

depois na subsequente listagem de gráficos com o guião utilizando

será transferido para o último, apesar de estar no meio

E se recarregar o MT, ele estará no meio, como na figura, durante a nova enumeração

Acontece que o comportamento antes e depois da recarga é diferente. Onde está a lógica?

Acrescentámos "EURAUD", "EURCAD", "EURUSD" e "NZDUSD" e activámos o primeiro gráfico - "EURAUD".

Passo 1

"NZDUSD" é colocado depois de "EURAUD" e activa o primeiro gráfico - "EURAUD".

Passo 2

Após a recarga (o primeiro gráfico permanece activo - "EURAUD")

Etapa 3

Tudo faz todo o sentido. Apenas antes de o guião ser chamado:

//+------------------------------------------------------------------+
//|                                                    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++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+

deve escolher cuidadosamente o gráfico activo. O gráfico seguinte é contado a partir do gráfico activo.
 
Karputov Vladimir:

Tudo faz todo o sentido.

Qual é a lógica nisso? Se houvesse uma sequência 2-3-4-5 antes da reinicialização, e depois da reinicialização houvesse outra 2-5-3-4?
 
A100:
E qual é a lógica por detrás disto? Se antes do reinício houvesse uma sequência 2-3-4-5, e depois do reinício houvesse outra 2-5-3-4?

Antes da recarga, os gráficos são escritos no perfil pela ordem em que foram criados, ou seja, 1-2-3-4. Antes da recarga, o perfil é reescrito (a última revisão dos movimentos gráficos é-lhe escrita, ou seja, 1-4-2-3-3). Após a reinicialização, os gráficos são redesenhados (criados) de acordo com a última revisão dos movimentos dos gráficos, ou seja, 1-4-2-3-3.

E assim após a reinicialização, uma vez que os gráficos foram criados na ordem de 1-4-2-3, significa que ChartNext() devolverá exactamente essa ordem.

 
Karputov Vladimir:

Antes da recarga, os gráficos são escritos no perfil pela ordem em que foram criados, ou seja, 1-2-3-4. Antes da recarga, o perfil é reescrito (a última revisão dos movimentos gráficos é-lhe escrita, ou seja, 1-4-2-3-3). Após a recarga, os gráficos são redesenhados (criados) de acordo com a última revisão dos movimentos dos gráficos, ou seja, 1-4-2-3-3.

A questão não é como é implementado actualmente (pode ser implementado de forma diferente), mas que antes e depois da recarga (sendo todas as outras coisas iguais) o resultado é diferente, e portanto a lógica é quebrada.
 
A100:
A questão não é como é implementado actualmente (poderia ser implementado de forma diferente), mas que antes e depois da recarga (sendo todas as outras coisas iguais) o resultado é diferente, o que significa que a lógica é quebrada.
Creio que a lógica não é violada porque depois do terminal ser recarregado, os gráficos são recriados e, portanto, ChartNext() funciona correctamente. Mas pode criar um pedido de servicedesk - por favor partilhe a resposta depois.