Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 868

 
Pensei que seria bom aliviá-los e redesenhar somente a janela que está atualmente ativa e visível. outros não redesenharão até que um usuário mude para eles
 
pycha:
Achei que seria bom aliviá-los e fazê-los redesenhar somente a janela que está atualmente ativa e visível. o resto não redesenhará até que um usuário mude para eles

Não preciso de API para isto, nem tudo é simples, mas muito simples.

 
tara:

Você não precisa de um API para fazer isto, não é simples, é muito simples.

portanto, por favor, dê uma solução para um iniciante
 
Para o iniciante - não iniciante, posso aconselhá-lo a salvar no mesmo GV o nome do par de moedas no momento em que você inicia o Expert Advisor.
 
todos eles funcionam simultaneamente quando o cliente começa. ou eu senti sua falta novamente, ou
economizando no mesmo GV o nome do par de moedas no momento do lançamento do Expert Advisor.
não será de qualquer utilidade
 
pycha:
todos eles começam ao mesmo tempo quando o cliente começa. ou eu o entendo mal novamente, ou não vai adiantar de nada

Você simplesmente não parece gostar de gatos.

Você simplesmente não sabe como cozinhá-los.

A EA desencadeará um redesenho se e somente se o símbolo do gráfico ativo for o mesmo que seu símbolo inicial.

 
Entendo, metade do problema está resolvido)))). mas lá e no Expert Advisor executa funções para se preparar para redesenhar, limpar array, inserir novos dados em arrays - o que pode e não deve ser feito. agora o Expert Advisor roda em 20 ferramentas e a CPU é constantemente carregada em 5 - 10%. procurando por quaisquer maneiras de facilitar e otimizar )))))
 
Não para mim.
 
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[])
  {
//--- check for bars count
   if(rates_total<InpMAPeriod-1 || InpMAPeriod<2)
      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtLineBuffer,false);
 //  ArraySetAsSeries(ExtLineBufferFid,false);
   ArraySetAsSeries(close,false);
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   {
      ArrayInitialize(ExtLineBuffer,0);
      ArrayInitialize(ExtLineBufferFid,0);  
   }       
//--- calculation
  
    CalculateSimpleMA(rates_total,prev_calculated,close);
    
    ExtLineBufferFid[rates_total-3]=(ExtLineBuffer[rates_total-2]*InpMAPeriod+close[InpMAPeriod+1])/(InpMAPeriod+1);
  //sma99[i]=(sma100[i]*100-d[i-100])/99;
//(firstValue*InpMAPeriod+price[i+1])/InpMAPeriod;
///(firstValue*InpMAPeriod+price[InpMAPeriod+1])/(InpMAPeriod+1);
// Y[i]=Y[i+1]+(X[0]-X[N])/N    
    Print("  ",ExtLineBufferFid[rates_total-3]
         ,"  ",ExtLineBufferFid[rates_total-2]
         ,"  ",ExtLineBuffer[rates_total-2]
             );      
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Desculpe, é uma pena passar por cima da mesma coisa cem vezes.

Estou olhando como uma ovelha para o portão há quase um mês. Eu não entendo nada.

A tarefa é calcular uma média móvel menor, com uma média móvel de 13,

ou seja, para calcular um período de 12 com base em 13.

 
Top2n:

Desculpe, é uma pena passar por cima da mesma coisa cem vezes.

Estou olhando como uma ovelha para o portão há quase um mês. Eu não entendo nada.

A tarefa é calcular uma média móvel menor, com uma média móvel de 13,

ou seja, para calcular um período de 12 com base em 13.

Para que serve calcular não diretamente no mesmo período que você quer?!