Erros, bugs, perguntas - página 1680

 

No livro de bordo.

2016.09.12 22:20:37.728 Books   invalid book item[RTS-9.16,buy,99040.00000,-4]
BCS-MetaTrader5, real, 1415. Aconteceu quando se mudou de uma conta demo para uma conta real. Não foram executados quaisquer conselheiros especializados ou indicadores. A janela do Dummy estava aberta.
 
fxsaber:

Na revista.

BCS-MetaTrader5, real, 1415. Aconteceu quando mudei de conta demo para conta real. Não havia Conselheiros Peritos ou indicadores em funcionamento. A janela do Cockpit estava aberta.

Eu escrevi sobre este bug

https://www.mql5.com/ru/forum/95131

invalid book transaction
invalid book transaction
  • comentários: 2
  • www.mql5.com
Раньше не было, появилось сегодня (реал). Что это...
 
prostotrader:
O que são esses asteriscos sob o título do assunto? E o número de revisões também.
 
fxsaber:
O que são esses asteriscos sob o título do assunto? E o número de revisões.
A propósito, há muito tempo que me pergunto onde é que estas estrelas por temas devem ser colocadas.
 

No modo de depuração, como sei de onde foi chamada a função em que me encontro actualmente?

Grosso modo, gostaria de ter acesso a uma árvore de funções/métodos aninhados de chamada. Será isto possível?

 
fxsaber:
No modo de depuração, como é que descubro de onde foi chamada a função em que estou actualmente?

No modo "Passo a Passo", visualizar o separador "Depuração" um de cada vez:

passos

 
Karputov Vladimir:

No modo "Passo a Passo", visualizar o separador "Depuração" um de cada vez:

Obrigado. Não consigo perceber porque é que o indicador chama a OnCalculate duas vezes no início. Gostaria de saber a que evento é que reage. Infelizmente, não consigo ver nenhum evento na tabulação de depuração.
 
fxsaber:
Obrigado. Não consigo compreender porque é que no início o indicador chama a OnCalculate duas vezes. Gostaria de saber para que evento é esta resposta. Infelizmente, nenhum evento é visível na depuração.

Às vezes acontece duas vezes, às vezes uma, talvez até três vezes: coloca-se este código em Oncalculate() -

//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   Print(__FUNCTION__,", rates_total ",rates_total,", prev_calculated ",prev_calculated);

será claro quando a história for trocada (quando a história for trocada pré_calculada==0).

 
Karputov Vladimir:

Às vezes acontece duas vezes, às vezes uma, talvez até três vezes: coloca-se este código em Oncalculate() -

será claro quando a troca de história acontecer (quando a troca de história for pré-calculada==0).

Nah, estou agora a correr na RTS, quando os kotirs estão de pé. Descobriu-se que é chamado uma vez, e o depurador mente, mostrando como se fossem dois. Código para jogar (correr numa personagem onde não há carraças)

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

int Func(){ return(0); }

int OnCalculate( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
//  return(0); // если расскоментировать и здесь поставить точку останова, то отладчик отработает, как надо
  return(Func()); // здесь поставить точку останова (F9)
}

Depois de pressionar F5 atingirá um ponto de ruptura. E depois de uma segunda imprensa em F5 - de forma semelhante. Embora isto não deva ser - como confirmação, pode encurtar a linha que está no código e tentar com ele.

 
fxsaber:

Nah, estou agora a correr na RTS, quando os kotirs estão de pé. Descobriu-se que se chama uma vez, e o depurador está a mentir, mostrando como se fossem dois. Código para jogar (correr numa personagem onde não há carraças)

Depois de pressionar F5 atingirá um ponto de ruptura. E depois de uma segunda imprensa em F5 - de forma semelhante. Mas este não deve ser o caso - como confirmação, pode raspar a linha que está no código e tentar com ela.

Não faz qualquer diferença se as citações vão ou ficam. Deve controlar a condição prev_calculate==0 no indicador - este é o modo de troca de histórico e o segundo ponto - modo de recalculo de barras alteradas, ou seja, de facto, taxas_total -prev_calculate+1.
Razão: