O "problema" pode ser que os indicadores utilizem um limite, ou seja, a função IndicatorCounted() a fim de não repintar barras.
A mudança do cronograma é reajustada que, WindowRedraw() não pode. Sua função é redesenhar os objetos, não os índices indicadores.
WindowRedraw(
)
Redireciona a carta atual forçadamente. É normalmente usado após as propriedades dos objetos terem sido alteradas.
Eu sei que normalmente vou em frente e recalculo cerca de 1000 barras na maioria das coisas que escrevo, e isso é iniciado com um clique no botão direito do mouse Refresh.
Se você não limitar severamente o loop para o indicador, você recebe uma atualização do indicador a cada tick.
logo após quase dois meses, recebi sua última resposta. Só não sei como pulei isso. Ainda estou tendo problemas em "redesenhar meu indicador". agora vou tentar resolver o problema com as informações que você me deu. muito obrigado,,..,
logo após quase dois meses recebi sua última resposta. Só não sei como pulei isso. Ainda estou tendo problemas em "redesenhar meu indicador". agora vou tentar resolver o problema com as informações que você me deu. muito obrigado,
Eu li este tópico e acho que há um problema em seu código => a função WindowRefresh() não o ajudará.
Acho que estou tentando redefinir o indicador para forçá-lo a redesenhar tudo novamente desde o início!? minha questão é que estou usando uma função que muda os dados passados em função dos novos dados, e o resultado é que meu gráfico se torna uma massa ao longo do tempo. Preciso redesenhar todo o meu indicador periodicamente. ultimamente, tenho mudado o período de tempo, de modo que quando volto ao período de tempo em que estava, tenho as janelas do meu gráfico limpas (redesenhadas) . aqui está o esquema do meu código:
intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- check for possible errorsif(counted_bars<0)return(-1);
//---- last counted bar will be recountedif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
if(limit>GV)limit = GV;
//---- main loopfor(inti=limit; i>=1; i--){{calculatesthevariableandfeedthebuffers}return(0);}
intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- check for possible errorsif(counted_bars<0)return(-1);
//---- last counted bar will be recountedif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
doublestartTime=GetTickCount();
if(limit>GV)limit = GV;
//---- main loopfor(inti=limit; i>=1; i--){{calculatesthevariableandfeedthebuffers}doublefinishTime=GetTickCount();
Print("Calculation time is ",(finishTime-startTime)/1000.0," seconds");
return(0);}
O "problema" pode ser que os indicadores utilizem um limite, ou seja, a função IndicatorCounted()
a fim de não repintar barras.
A mudança do cronograma é reajustada que, WindowRedraw() não pode. Sua função é redesenhar os objetos, não os índices indicadores.
Eu sei que normalmente vou em frente e recalculo cerca de 1000 barras na maioria das coisas que escrevo, e isso é
iniciado com um clique no botão direito do mouse Refresh.
Se você não limitar severamente o loop para o indicador, você recebe uma atualização do indicador a cada tick.
Muito obrigado,
Você é "difícil de ler" ?
logo após quase dois meses, recebi sua última resposta. Só não sei como pulei isso. Ainda estou tendo problemas em "redesenhar meu indicador". agora vou tentar resolver o problema com as informações que você me deu. muito obrigado,,..,
Mostre seu código...
oi fisi,
logo após quase dois meses recebi sua última resposta. Só não sei como pulei isso. Ainda estou tendo problemas em "redesenhar meu indicador". agora vou tentar resolver o problema com as informações que você me deu. muito obrigado,
Acho que estou tentando redefinir o indicador para forçá-lo a redesenhar tudo novamente desde o início!? minha questão é que estou usando uma função que muda os dados passados em função dos novos dados, e o resultado é que meu gráfico se torna uma massa ao longo do tempo. Preciso redesenhar todo o meu indicador periodicamente. ultimamente, tenho mudado o período de tempo, de modo que quando volto ao período de tempo em que estava, tenho as janelas do meu gráfico limpas (redesenhadas) . aqui está o esquema do meu código:
muito obrigado,,..,
O que é GV?
O que tenho feito recentemente, é algo assim:
for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
Ele remonta a parte visível do indicador em cada tic tac, mas não as barras que estão fora de vista.
O que é GV?
O que tenho feito recentemente, é algo assim:
for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
Ele remonta a parte visível do indicador em cada tic tac, mas não as barras que estão fora de vista.
vocês são fantásticos!! Vou implementar este código esta tarde.
obrigado por sua generosidade,..,