Perguntas de um "boneco" - página 268

 
DC2008:

Não tenho a certeza, mas provavelmente é por causa disto:

Não tenho ArrayResize, para INDICATOR_DATA e INDICATOR_CALCULATIONS o tamanho é definido pelo terminal, e desenha a partir da barra 0


Então acontece que todo o ArrayInitialize(array,EMPTY_VALUE); não funciona mesmo para barra zero?



 
Silent:

Não tenho ArrayResize, o terminal define o tamanho para INDICADOR_DATA e INDICATOR_CALCULATIONS e retira-o da barra 0

Talvez não, mas as matrizes são dinâmicas e cada período de tempo tem um número diferente de barras! Mudar de uma para outra muda o tamanho das matrizes (isto é feito sem a sua participação) e vê o lixo.

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
Silent:

Então acontece que todo o ArrayInitialize(array,EMPTY_VALUE); não funciona mesmo para barra zero?

No seu caso, é o último elemento da matriz (mesmo que esteja na barra 0), porque a indexação padrão é da esquerda para a direita.

 
DC2008:

Não pode, mas as matrizes são dinâmicas e cada período de tempo tem um número diferente de barras! Mudar de uma para a outra muda o tamanho das matrizes (isto é feito sem a sua participação) e vê lixo.

Parece ser lógico. Então a inicialização de amortecedores indicadores no inite não faz qualquer sentido, tudo deve ser feito em OnCalculate

DC2008:

No seu caso, é o último elemento da matriz (apesar de estar na barra 0), porque por defeito é indexado da esquerda para a direita.

Certo, ainda não o virei ao contrário.

 
Obrigado a todos!
 

Corrigido um erro, arrays virados, mexido com o ArrayInitialize (deixou-o por agora)...

Parece ser impossível livrar-se do lixo em Inite. Mesmo PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); não irá pará-lo; pode aparecer no início do gráfico ou no final.

Vou deixá-lo num reboque, talvez os programadores o vejam.

PS mas o aparecimento de lixo no mesmo local no gráfico após a remoção do indicador e/ou recompilação - é uma lata.

uma tal beleza...


Arquivos anexados:
 
Silent:

Corrigido um erro, arrays virados, mexido com o ArrayInitialize (deixou-o por agora)...

Parece ser impossível livrar-se do lixo em Inite. Mesmo PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); não irá pará-lo; pode aparecer no início do gráfico ou no final.

Vou deixá-lo num reboque, talvez os programadores o vejam.

PS mas o aparecimento de lixo no mesmo local no gráfico após a remoção do indicador e/ou recompilação - é uma lata.

Tanta beleza...

Aí está, parece funcionar como é necessário:

void OnDeinit(const int reason)
  {
   ArrayResize(USDBuffer,1);
   ArrayResize(EURBuffer,1);
   ArrayResize(GBPBuffer,1);
   return;
  }
 
DC2008:

Aí está, parece estar a funcionar da maneira que se quer:

Não, também é lixo, pode ver-se pelos números no canto superior esquerdo.

Só funciona depois de carregar estas células na OnCalculate

   ArrayInitialize(USDBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(EURBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(GBPBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,countBars);

A sua versão parece estar correcta. O lixo é devido ao redimensionamento automático das matrizes. E parece mesmo claro porque é que se repete.

Se o terminal alterar o tamanho, digamos, de 1 000 para 10 000, atribui uma e a mesma peça de memória não apagada, e não importa quantas vezes se recarrega o indicador - de 1 001ª para 9 999ª célula permanece com valores à esquerda.

upd Ainda tenho uma pergunta: porquê alterar algo na função f_comment (mudança de cor) e as subsequentes alterações de compilação não são aplicadas para reiniciar o indicador no terminal.

Arquivos anexados:
 
É possível construir uma tabela de velas de alguns parâmetros do instrumento numa janela separada? Por exemplo, o corretor "Otkritie" tem o instrumento RTS-9.13 e para ele construir um gráfico de ordens de compra, cujos valores são exibidos na janela "visão geral do mercado".
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
vicleo:
É possível construir uma tabela de velas de alguns parâmetros do instrumento numa janela separada? Por exemplo, o corretor "Otkritie" tem o instrumento RTS-9.13 e para ele construir um gráfico de ordens de compra, cujos valores são exibidos na janela "visão geral do mercado".
Corretor e perguntar).