Erros, bugs, perguntas - página 2242

 
darkangel8733:

Olá, comprei-te uma EA, "tartaruga". e não está a funcionar em modo autónomo, ????

Só estou a dizer. Se um Consultor Especialista utiliza indicadores, mesmo normais, deve ter acesso aos mesmos. Já introduzi esta regra de ouro.

 
A100:
A exigência era apenas uma - para ajudar, não para dificultar. Se acha que a discussão é desnecessária - não entre nela... Não lhe cabe a si decidir (necessário/desnecessário) - é para isso que servem a Administração e os moderadores

Concordo, mas se não gosta de conselhos então não deve responder, então não haverá perguntas... todos escrevem aqui o que acham apropriado, eu considerei adequado dar conselhos, ou seja, prestar ajuda gratuita, em vez de gratidão eu li reclamações... boa sorte

 
Konstantin:

Concordo, mas se não gostar do conselho, não precisa de lhe responder

Isso é um bom conselho... obrigado por isso... Eu fico com ela
 

Como assim?

ArrayFree(SummArr);
ArrayResize(SummArr,57);
Print("SummArr_1=",SummArr[1]);
2018.07.26 02:09:04.566 Pred_Ocenka_02 (Si Splice,M1)   SummArr_1=1190264832

Porque é que o valor da matriz não está vazio (zero)?

 
Aleksey Vyazmikin:

Como assim?

Porque é que o valor da matriz não está vazio (zero)?

E se for primeiro dimensionada e depois limpa?

 
Vitaly Muzichenko:

E se for primeiro dimensionada e depois limpa?

Depois

2018.07.26 02:20:08.482 Pred_Ocenka_02 (Si Splice,M1)   array out of range in 'Pred_Ocenka_02.mq5' (76,27)
Não tem informação de tamanho após a limpeza.
 
Se
ArrayFree(SummArr);

Retirar, então o valor também não está vazio. A matriz não foi utilizada antes.

 

Algum disparate, aqui está o código cortado em geral

int SummArr[];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ArrayFree(SummArr);
   ArrayResize(SummArr,57);
   Print("SummArr_1=",SummArr[1]);
   Print("SummArr_30=",SummArr[30]);   
   Print("SummArr_57=",SummArr[56]);   
  }
//+------------------------------------------------------------------+

Sobre a produção.

2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_1=1190264832
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_30=2097181
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_57=154252694

Por favor, verifique, talvez o meu terminal tenha enlouquecido.

Ou é normal e tudo deve ser lixo?

 

O código no indicador mql4 deixou de funcionar. como posso corrigi-lo?

else{// Иначе стрелка создана. Задаём её свойства
 ObjectSetInteger(Open_name,OBJPROP_ARROWCODE,OpenArrowCode);//код стрелки 232 
 ObjectSet(Open_name,OBJPROP_COLOR,ObjColor);//цвет стрелки
}

O editor diz 'ObjectSetInteger' - nenhuma das sobrecargas pode ser aplicada à chamada de função

Tem estado a funcionar há anos e depois parou subitamente. É uma pena, no entanto.


 
Aleksey Vyazmikin:

Algum disparate, aqui está o código cortado em geral

Sobre a produção.

Por favor, verifique, talvez o meu terminal tenha enlouquecido.

Ou talvez seja normal e tudo deva ser lixo?

Liberta um buffer de qualquer matriz dinâmica e fixa o tamanho de dimensão zero a 0.

Ao escrever scripts e indicadores, pode ser necessário utilizar a função ArrayFree() com pouca frequência, uma vez que toda a memória utilizada é imediatamente libertada após o script parar de funcionar, e nos indicadores personalizados, o trabalho principal com arrays é realizado através do acesso a buffers indicadores, cujas dimensões são automaticamente geridas pelo subsistema executivo do terminal.

Se precisar de gerir a memória por si próprio em condições dinâmicas complexas, a função ArrayFree() permitir-lhe-á libertar explícita e imediatamente a memória ocupada por uma matriz dinâmica que não necessita.

Está a ver? Desnecessário.

Claro que, uma vez que a memória se liberta dela, e depois volta a atribuí-la através do dimensionamento da matriz, ninguém garante o seu conteúdo.

Inicialização da matriz de uso: ArrayInitialize()