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".
"NZDUSD" é colocado depois de "EURAUD" e activa o primeiro gráfico - "EURAUD".
Após a recarga (o primeiro gráfico permanece activo - "EURAUD")
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 |//+------------------------------------------------------------------+voidOnStart()
{
//--- переменные для идентификаторов графиков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.
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.
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.
Porquê?
A fim de ver a lógica.
Imprimiu-o - o resultado é descrito acima
Onde estava a impressão? Onde está o resultado? Não o vejo - esqueceu-se de anexar a impressão antes e depois.
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 é
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".
"NZDUSD" é colocado depois de "EURAUD" e activa o primeiro gráfico - "EURAUD".
Após a recarga (o primeiro gráfico permanece activo - "EURAUD")
Tudo faz todo o sentido. Apenas antes de o guião ser chamado:
deve escolher cuidadosamente o gráfico activo. O gráfico seguinte é contado a partir do gráfico activo.Tudo faz todo o sentido.
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.
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 (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.