[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 315

 
chief2000 >> :

A questão é como funciona (otimização de indicadores):

Entendo corretamente que com cada novo tick o mesmo retângulo

(o mesmo tamanho com igual número de barras) será apagado e redesenhado?

Vale a pena acrescentar um cheque para o número de barras (se houver mais barras, só então redesenhar)?

Para descarregar a CPU do computador ou o ganho será mínimo e não valerá a pena brincar com ela?

Sim, e ao invés de excluir, o ObjectCreate pode ser definido verificando se(ObjectFind(RectangleSell)==-1){ ObjectCreate()}

e o resto sem verificação, para que você não tenha que apagar e recolocar um objeto em cada carrapato.

if( MA_Fast[ i+1]> MA_Slow[ i+1]) {
   string RectangleSell = StringConcatenate("RECTANGLE_", StartBoxTime);   
   if(ObjectFind( RectangleSell)==-1){
      ObjectCreate( RectangleSell, OBJ_RECTANGLE, 0,  StartBoxTime, BoxLow,  EndBoxTime, BoxHigh);
     }
   ObjectSet( RectangleSell, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet( RectangleSell, OBJPROP_RAY, False);
   ObjectSet( RectangleSell, OBJPROP_WIDTH, 1);
   ObjectSet( RectangleSell, OBJPROP_BACK , True);
   ObjectSet( RectangleSell, OBJPROP_COLOR, ColorSell);
}
 
Vinin >> :

Precisamos acrescentar a sincronização de tempo.

Certamente há desenvolvimentos, você pode mostrar como implementá-lo na MA!

 
Vladimir11 >> :

Você pode me aconselhar, estou trabalhando em um horário diário.

E eu quero acessar os dados da ata. É atualizado ou são dados antigos?

Se em tempo real, eles são atualizados, se no testador em D1, os dados M... nas últimas barras (em tempo real e não na que está sendo testada).

 

Este é meu primeiro post no fórum. Estou estudando a MQL4. Não sei se havia tal pergunta antes, ainda não a encontrei. Acho que preciso usar a função IndicatorCounted, mas não sei como fazer isso. Adicionei citações para 300 000 e agora quando tento iniciar indicadores pendurados, acho que não devo especificar todas as citações, mas apenas uma certa, por exemplo, 3000. Mas não quero recalcular todas as 3000 também, preciso do IndicatorCounted.

Obrigado por seu feedback.

 
depth_finde >> :

Este é meu primeiro post no fórum. Estou estudando a MQL4. Não sei se havia tal pergunta antes, ainda não a encontrei. Acho que preciso usar a função IndicatorCounted, mas não sei como fazer isso. Adicionei citações para 300 000 e agora quando tento iniciar indicadores pendurados, acho que não devo especificar todas as citações, mas apenas uma certa, por exemplo, 3000. Mas não quero recalcular todas as 3000 também, preciso do IndicatorCounted. Não sei como especificar a condição que mostraria apenas as últimas 3000 e não recalcular as já aprovadas.

Obrigado por seu feedback.

Sim, assim.

int start()
  {
   int counted_bars = IndicatorCounted();
//----
   if( counted_bars < 0) 
       return(-1);
//----
   if( counted_bars > 0) 
       counted_bars --;
   int pos = Bars - counted_bars;  
//----
   while( pos >= 0) 
     {
       ma1_buffer[ pos] = iMA(NULL, 0 , Period1* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma2_buffer[ pos] = iMA(NULL, 0 , Period1* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       ma3_buffer[ pos] = iMA(NULL, 0 , Period2* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma4_buffer[ pos] = iMA(NULL, 0 , Period2* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       ma5_buffer[ pos] = iMA(NULL, 0 , Period3* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma6_buffer[ pos] = iMA(NULL, 0 , Period3* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       pos--;
       
     }
     
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
costy_ писал(а) >>

Se em tempo real, eles são atualizados, se no testador D1, os dados M... nas últimas barras (em tempo real e não na barra testada).

Respondido em particular

 
costy_ писал(а) >>

É mais ou menos assim.

Provavelmente não, porque, como você demonstrou na primeira corrida, serão calculadas não 3000, mas 300000 citações, tudo o que existe.

 
depth_finde >> :

Provavelmente não porque a forma como você mostrou a primeira corrida não vai ler 3000, mas 300000 citações, tantas quantas houver.

>> bem, sim, só uma vez, depois as que mudam!!!

Para fazer o indicador aparecer em todo o gráfico e não em uma parte dele.

 
Vinin >> :

Respondido pessoalmente.

>> Muito obrigado!

 
costy_ писал(а) >>

Bem, sim, só uma vez, depois mudou!!!

Para exibir o indicador em todo o gráfico e não em uma parte dele.

Esta é a idéia de baixar não todos os 300 mil indicadores e esperar 5 minutos para que eles carreguem, mas baixar 3000 na primeira execução e depois somente os que mudaram.

Se tivermos cinco desses indicadores em um gráfico, o processo de carregamento levará 25 minutos.