Erros, bugs, perguntas - página 2542

 
Porque é que quando desligo o computador e entro no MT4 no dia seguinte, os níveis não são guardados?
 

Desenvolvedores, olá.

A CArrayList da capacidade jinerik é utilizada incorrectamente. Se for um tamanho de reserva, deve ser chamado no construtor desta forma:

ArrayResize(m_items,0,m_default_capacity);

Neste momento, é assim:

ArrayResize(m_items,m_default_capacity);

Se quiser atribuir e prestar contas por si próprio, então comece a posicionar e a utilizar em todo o lado, incluindo a pesquisa e outras coisas, embora não seja uma boa ideia.


PS. Enquanto estudava o código, descobri que, afinal de contas, passou o tamanho m_size. Quando a matriz está vazia, BinarySearch retorna 0, e não -1.

E porque devemos nós próprios organizar a capacidade quando a temos ao nível do ArrayResize?

PPS. Existem planos para criar um LowerBound?
 

Há três pontos principais sobre aCArrayList:

1. Pensar em remover a implementação adicional de capacidade, uma vez que já existe no ArrayResize

2) Fixar BinarySearch para matriz vazia. Por defeito, existem 4 elementos na matriz e o índice 0 é passado primeiro e é devolvido quando o tamanho da matriz é zero.

3. é desejável acrescentar LowerBound. É estranho que ninguém tenha perguntado antes

 
Yevhenii8370:
Porquê quando desligo o computador e entro no MT4 no dia seguinte, os níveis não são guardados?

Há aqui duas opções - ou há um indicador/conselheiro que limpa todos os níveis durante a inicialização, ou o conjunto não tem tempo para poupar. Encontrei ambos os problemas, o primeiro pode ser resolvido editando o código, e o segundo, guardando o conjunto duas vezes e carregando a versão guardada quandoo terminal inicia.

 
Sergey Dzyublik:

MT5 (build 2118), Quanto tempo mais podemos esperar para corrigir bugs na funcionalidade dotypedef?
Algum disparate - um passo à esquerda de um exemplo primitivo sobre a utilização do typedef e ponto final - um monte de insectos a bloquear o desenvolvimento futuro.

Obrigado pelo código.

Bug corrigido.

Foi lançada hoje a versão demo do MT4 1192, tente usar o MetaEditor 2121 que vem com o MT4 para compilar ficheiros MQ5

 

tirou o indicador, deixado aqui no gráfico (em anexo).

Como remover?

Procurei na lista de objectos - não a encontrei. retirei todos os indicadores e a EA - não ajudou.

Arquivos anexados:
 
barashka:

tirou o indicador, deixado aqui no gráfico (em anexo).

Como remover?

procurei na lista de objectos - não encontrei. retirei todos os indicadores e a EA - não ajudou.

A lista de objectos tem um botão para mostrar os objectos escondidos, apagá-los ali...

 
Vladimir Pastushak:

Na lista de objectos, há um botão para mostrar objectos escondidos, por isso apague-os lá...

: )
 
Sergey Dzyublik:

https://www.mql5.com/ru/docs/basis/types/classes

No início fiquei surpreendido, porque não sabia que existia um offsetof.
Mas a realidade coloca tudo no seu lugar:

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- объявим переменную типа Children 
   Children child;   
//--- узнаем смещения от начала структуры  
   Print("offsetof(child.c)=",offsetof(child.c)); 
   Print("offsetof(child.s)=",offsetof(child.s));
}   



offsetof' - função não definida

Obrigado pela mensagem.

Existem erros de copiar-colar na ajuda, vamos corrigi-los:

em vez do nome variável criança deve ser do tipo de classe Crianças e em vez de ''. (acesso ao campo) deve ser uma vírgula ( offsetof é uma macro (condicional) incorporada)

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- узнаем смещения от начала структуры  
   Print("offsetof(Children,c)=",offsetof(Children,c); 
   Print("offsetof(Children,s)=",offsetof(Children,s));
}   

 

Problema com .NET. O programa trava quando a biblioteca acede a outros módulos personalizados, dizendo que o ficheiro não é encontrado:

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeInitializationException: Инициализатор типа "MDD.IQFeedAPI" выдал исключение. ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c" либо одну из их зависимостей. Не удается найти указанный файл.

Todas as dlls usadas (incluindo as mencionadas NLog.dll) estão na mesma pasta, mas por alguma razão o sistema não as vê quando corre a partir do MT. Funciona bem apenas com uma estrutura regular. Será o mesmo para todos, ou está a escapar-me alguma coisa? Se alguém souber como resolver este problema, agradecia que o fizesse.