Erros, bugs, perguntas - página 2624

 
Михаил:

Não procuro frequentemente códigos de seta, mas são incrivelmente difíceis de encontrar na ajuda!

É uma mesa com asteriscos, círculos, etc.

E a pesquisa devolve tudo menos a pesquisa certa!

Reinos
 

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Bibliotecas: HistoryTicks

fxsaber, 2020.01.09 14:43

Não reparei que a versão KB é antiga. Infelizmente, não há forma de actualizar. A máquina KB dá isto
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
Tudo se compila em ME sem erros.
 
Stanislav Korotky:

Porquê na linha 3:

aviso de "desajuste de sinal"?

A data é suposta ser um número sem assinatura (8 bytes como ulong). Dê-me um exemplo de uma data negativa.

provavelmente porque não existe um tipo de carimbo de hora e data separados também é utilizado para armazenar a diferença horária
 
Pode dizer-me que evento (se houver) é gerado no testador quando o botão Stop é premido?
 
Mais uma vez, ajuda! Não sei como obter uma melhor ligação de volta, mudar de conta não ajuda
Arquivos anexados:
Mc3FTItT2F8.jpg  18 kb
 

Ao aplicarChartSetSymbolPeriod noindicadorOnInit durante a depuração dos dados actuais, há uma coisa estranha - em OnTick() rates_total do antigo TF, e matrizes de séries de tempos do novo TF:

datetime shift,arr[],arr2[];
void OnInit()
  {
 if (ChartPeriod()!=PERIOD_D1)
 {
     ChartSetSymbolPeriod(0,Symbol(),PERIOD_D1);
     CopyTime(Symbol(),PERIOD_D1,0,iBars(Symbol(),PERIOD_D1),arr);     
     ChartRedraw();
     Sleep(100);
  }  
 CopyTime(Symbol(),PERIOD_H1,0,iBars(Symbol(),PERIOD_H1),arr2); 
  }

Aqui vemos a hora[x] do dia, eas taxas_total de H1, com o TF do gráfico mudado para Daytime na janela do depurador.


 
Aleksey Mavrin:

Ao aplicarChartSetSymbolPeriod noindicadorOnInit durante a depuração dos dados actuais, há uma coisa estranha - em OnTick() rates_total do antigo TF, e matrizes de séries de tempos do novo TF:

Aqui vemos a hora[x] do dia, eas taxas_total de H1, enquanto na janela de depuração a TF do gráfico mudou para Daytime.


Quando se muda o período de tempo, o indicador é completamente recriado. Isto é, o manípulo do indicador anterior é eliminado e o novo é criado.
Mas há um "mas". O indicador anterior ainda está presente há algum tempo.

Não é essa a razão...

 
Aleksey Mavrin:

Ao aplicarChartSetSymbolPeriod noindicadorOnInit durante a depuração dos dados actuais, há uma coisa estranha - em OnTick() rates_total do antigo TF, e matrizes de séries de tempos do novo TF:

Aqui vemos a hora[x] do dia, eas taxas_total de H1, com o TF do gráfico mudado para Daytime na janela do depurador.

IndicatorRelease

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Artyom Trishkin:

Quando o prazo muda, o indicador é completamente recriado. Isto significa que o manípulo indicador anterior é removido e o novo é criado.
Mas há um "mas". O indicador anterior ainda está presente há algum tempo.

Não é essa a razão...

Sim, como entendi das minhas experiências, depois deChartSetSymbolPeriodOnInit estar concluído e uma vez (em modo de depuração pelo menos) OnCalculate ser executado (neste momento é apanhado). Isto é, não interfere com o funcionamento em linha.

O facto de dados de diferentes prazos poderem chegar ao OnCalculate é apenas um bug, penso eu.

 
Será isto uma falha no ArraySwap?
void OnStart()
{
  int ArrayStatic[1];
  int ArrayDynamic[];
  
  ArrayResize(ArrayDynamic, ArraySize(ArrayStatic));
  
  Print(ArraySwap(ArrayStatic, ArrayDynamic)); // false
}