MetaTrader 4 Build 529 beta lançado com novo compilador - página 104

 
artmedia70:

É engraçado. O nome do Expert Advisor inclui os nomes de suas subpastas.

Isto aumenta desnecessariamente o tamanho do nome do especialista.

Por exemplo: Se o nome do Expert Advisor for Expert e estiver armazenado no Terminal_directory\MQL4\experts\Orders\Nickname,

então o nome do Consultor Especialista não seria Expert, mas sim Order Order_customer_name (Nome do Cliente)Expert. Se os nomes dos objetos incluem Expert_name e object_name_time, ele já está ultrapassado pelo número de caracteres, e o objeto será produzido a preço zero e tempo zero.

Se os nomes dos objetos incluírem um nome EA a ser limpo quando da desinicialização, isto deixa muito pouco espaço para o próprio nome do objeto.

Isto será alterado ou continuará a ser assim?


A ser mudado.
 
Renat:

Veja no diário de bordo - ele diz o que está sendo baixado e o que foi baixado?


Não baixar a atualização da ajuda

Agora é assim

 

Pessoal, até onde me lembro nas primeiras versões dos terminais, tal coisa funcionou

extern double sig[3]= {12,0.548,0.21,0.413};

Mas agora ele gera um erro, o que está errado?

Segunda pergunta

Ao instalar um terminal com a bandeira portátil em um pen drive, ele funciona corretamente? Lembro-me anteriormente que havia problemas com a exibição de nomes de contas e com valores astronômicos nas contas...

 
VOLDEMAR:

Pessoal, até onde me lembro nas primeiras versões dos terminais, tal coisa funcionou

Mas agora ele gera um erro, o que está errado?

Segunda pergunta

Ao instalar um terminal com a bandeira portátil em uma unidade flash, ele funciona corretamente? Lembro-me que antes havia problemas com a exibição de nomes de contas e valores astronômicos em contas...


Um conjunto de três elementos é declarado, mas quatro elementos são escritos a ele. Definitivamente um erro. Quando a lista de inicialização for grande, é melhor fazer desta maneira:

double sig[]= {12,0.548,0.21,0.413};

O compilador o calculará por si só.

E declarar um array como parâmetro de ajuste - como?

 
Scriptong:


Um conjunto de três elementos é declarado, mas quatro elementos são escritos a ele. Definitivamente um erro. Quando a lista de inicialização for grande, é melhor fazer desta maneira:

O compilador fará as próprias contas.


Não, não está funcionando.

 
VOLDEMAR:


Não, não está funcionando


Bem, ele diz em inglês simples: não é permitido nos ambientes. Um valor constante é esperado :)
 
Scriptong:

Bem, está escrito em inglês simples: não é permitido nas configurações. Um valor constante é esperado :)

Eu não sei inglês (((, mas vi códigos onde muitos parâmetros foram inseridos nas configurações via ( ; ) ...
 
VOLDEMAR:

Pessoal, até onde me lembro nas primeiras versões dos terminais, tal coisa funcionou

Mas agora está recebendo um erro, o que está errado?



Também não funcionava antes. Remover o modificador externo
 

Diga-me, eu não entendo as razões pelas quais isto está acontecendo. Referência:

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

- antes dedescarregar um programa de mql4.

A descarga de um Expert Advisor anexado a um gráfico é realizada nos seguintes casos

-fechar o terminal (se um Expert Advisor tiver sido anexado a um gráfico);

1) no OnInit o Expert Advisor cria 400 objetos gráficos (usando classes através de novo objeto)

2) Deleta no OnDeinit (o operador de exclusão apaga o objeto criado pelo novo operador)

Ao apagar um EA, tudo corre bem (os objetos criados são apagados)

Ao trocar o TF, se o histórico for carregado - tudo vai bem (objetos criados são apagados, novos objetos são criados)

Ao trocar o TF, se o histórico não for carregado para este TF - isso acontece cerca de 3 vezes OnDeinit e OnInit , e rapidamente

(às vezes os objetos não são criados e o terminal não dá nenhum erro)

Ofechamento e reinício do terminal causa 400 erros 4200 - o objeto já existe.

O fechamento do terminal não causa OnDeinit?

Como posso apagar 400 objetos manualmente? Adicionar o botão "apagar todos os objetos" da tabela atual certamente sugerido?

(p.s. Caros desenvolvedores, a ordem de criação dos objetos será corrigida em breve (mês)?

para fazer a ordem depender não do nome, mas de como os objetos são criados no código)

// alexey_pak obrigado, não sabia que Ctrl + A funciona na "lista de objetos

 

Colegas, uma mensagem de aviso aparece na compilação:

possível uso da variável não-inicializada 'PipStep'.

para um pedaço como este:

      PipStep = NormalizeDouble(InitPipStep * MathPow(PipStepExp, BuyOrders - StartDynStep + 1),0);
      LastBuyPrice = FindLastBuyPrice();
      if(Ask < LastBuyPrice - (PipStep * Point))//для ЭТОЙ строки выдало possible use of uninitialized variable 'PipStep' 

Todas as variáveis são inicializadas como duplas, o que há de errado com isso?