Erros, bugs, perguntas - página 2584

 
Georgiy Merts:

Aqui vai uma pergunta.

Por vezes, recebo um erro de overrun array durante a optimização, com um certo conjunto de parâmetros. O erro ocorre muito raramente e eu não o posso reproduzir. Preciso de conhecer o conjunto de parâmetros em que este erro ocorre. Como determinar este conjunto de parâmetros? Existe um número de passe no registo do testador, mas este conjunto de parâmetros não está presente no relatório. Onde posso ver que parâmetros foram utilizados nesta corrida?

Modificar esta bíblia para escrever as impressões para o ficheiro comum.

 
E outro bug - se um dos parâmetros é o período ENUM_TIMEFRAMES, então num gráfico 1D ou 2D por este parâmetro - não tenho nenhuma visualização por alguma razão. É impressão minha?
 
fxsaber:

Modificar este bíblio para escrever as impressões para o ficheiro comum.

Sim, se não houver outras opções, essa é uma boa solução. Obrigado.

E vamos mantê-lo com base no primeiro nome, já nos conhecemos praticamente há muito tempo.

 
Compreendo correctamente que as indicações para uma variável não funcionam em mql?
void OnStart()
{ 
   int *ptr;
}

O compilador diz que o ponteiro não pode ser utilizado.

 
Roman:
Compreendo correctamente que as indicações para uma variável não funcionam em mql?

O compilador diz que o ponteiro não pode ser utilizado.

Parece que os apontadores só podem ser para objectos, e são obtidos chamando GetPointer()

 
Georgiy Merts:

Parece que os apontadores só podem ser para objectos, e são obtidos chamando GetPointer()

Obrigado. Sim, não há problemas com objectos de classe, por isso fiquei surpreendido por não funcionar com variáveis, mas é triste.

 

Não tenho onde colocar as contas de corretagem no meu computador pessoal.

Quando abro "Favoritos", há apenas uma página branca.

O que é que se passa?

Não consigo ver contas em mql5 ou subscrever a ninguém.

 

O indicador não chama OnDeinit ao apagar o indicador, se tiver a funçãoChartIndicatorGet, que simplesmente lê um cabo de si mesmo sem o adicionar a uma variável.

#property indicator_chart_window

int OnInit() {
   for (int i=0; i<ChartIndicatorsTotal(0,0); i++)  
       ChartIndicatorGet(0,0,ChartIndicatorName(0,0,i));
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+

void OnDeinit(const int reason) {
   Print("Deinit");
}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
   return(rates_total);
}

E se recompilar o indicador após a sua eliminação, a chamada atrasada de OnDeinit ocorre (Print("Deinit");).

Está tudo bem?


Construir 2168

Arquivos anexados:
 
Nikolai Semko:

Um indicador não chama OnDeinit ao apagar um indicador se tiver a função ChartIndicatorGet, que simplesmente lê a sua própria pega mesmo sem colocar a pega numa variável.

O IndicatorRelease é obrigatório se tiver recebido a sua própria pega.

 
fxsaber:

O IndicatorRelease é obrigatório se tiver o seu próprio punho.

Hm...
E onde e em que altura é que apago um manípulo indicador?

Seria lógico utilizar o OnDeinit, mas não funciona.

ZS É uma imagem estranha.
Eu tentei: se eu apagar a pega logo depois de a obter, ela é apagada, mas o próprio indicador não o faz, o nome permanece, e já tem uma nova pega e continua a funcionar. E, de facto, quando se apaga o indicador OnDeinit corre.

No entanto, tentei com um indicador sem tampão. Não sei como se comportará o buffer de dados quando o cabo for apagado.
Não percebo...


Razão: