Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 868

 
Pensé que sería bueno para aliviar ellos y redibujar sólo la ventana que está actualmente activo y visible. el resto de ellos no redibujar hasta que un usuario cambia a ellos
 
pycha:
Pensé que estaría bien aliviarlos y hacer que redibujen sólo la ventana que está actualmente activa y visible. el resto no se redibujará hasta que un usuario cambie a ellas

No necesito la API para esto, todo no es simple, sino muy simple.

 
tara:

No necesitas una API para hacer esto, no es sencillo, es muy sencillo.

así que por favor dar una solución a un principiante
 
Para el principiante-no principiante, puedo aconsejarle que guarde en el mismo GV el nombre del par de divisas en el momento de iniciar el Asesor Experto.
 
todos se ejecutan simultáneamente cuando el cliente se inicia. o me he perdido de nuevo, o
guardar en el mismo GV el nombre del par de divisas en el momento de lanzar el Asesor Experto.
no servirá de nada
 
pycha:
todos se inician al mismo tiempo cuando se inicia el cliente. o te he vuelto a entender mal, o no servirá de nada

Parece que no te gustan los gatos.

Simplemente no sabes cómo cocinarlos.

El EA activará un redraw si y sólo si el símbolo del gráfico activo es el mismo que su símbolo de inicio.

 
Lo entiendo, la mitad del problema se resuelve)))). pero allí y en el Asesor Experto se realizan funciones para preparar el redibujado, el borrado de arrays, la introducción de nuevos datos en arrays - lo que se puede y no se debe hacer. ahora el Asesor Experto se ejecuta en 20 herramientas y la CPU se carga constantemente en un 5 - 10%. estoy buscando cualquier forma de facilitar y optimizar )))))
 
A mí no.
 
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);
  }

Lo siento, es una lástima tener que repetir lo mismo cien veces.

Llevo casi un mes mirando como una oveja a la puerta. No entiendo nada.

La tarea consiste en calcular una media móvil menor con una media móvil de 13,

es decir, calcular un período de 12 basado en 13.

 
Top2n:

Lo siento, es una lástima tener que repetir lo mismo cien veces.

Llevo casi un mes mirando como una oveja a la puerta. No entiendo nada.

La tarea consiste en calcular una media móvil menor con una media móvil de 13,

es decir, calcular un período de 12 basado en 13.

¿Qué sentido tiene calcular no directamente en el mismo periodo que se quiere?