[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 315

 
chief2000 >> :

La cuestión es cómo funciona (optimizando los indicadores):

¿Entiendo correctamente que con cada nuevo tick el mismo rectángulo

(el mismo tamaño con igual número de barras) se borrará y se volverá a dibujar?

¿Vale la pena añadir una comprobación del número de barras (si hay más barras, sólo entonces se redibuja)?

¿Para descargar la CPU del ordenador o la ganancia será mínima y no merecerá la pena trastear con ella?

Sí, y en lugar de borrar, ObjectCreate puede establecerse mediante la comprobación if(ObjectFind(RectangleSell)==-1){ ObjectCreate()}

y el resto sin comprobar, para no tener que borrar y volver a poner un objeto en cada tic.

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 >> :

Hay que añadir la sincronización horaria.

Seguro que hay desarrollos, ¡puedes mostrar cómo implementarlo en MA!

 
Vladimir11 >> :

Pueden aconsejarme, estoy trabajando en un horario diario.

Y quiero acceder a los datos de las actas. ¿Están actualizados o son datos antiguos?

Si en tiempo real, se actualizan, si en el probador en D1, los datos M.. en los últimos compases (tiempo real y no el que se está probando).

 

Este es mi primer mensaje en el foro. Estoy estudiando MQL4. No sé si ya existía esa pregunta, no la he encontrado. Creo que tengo que utilizar la función IndicatorCounted, pero no sé cómo hacerlo. He añadido citas para 300 000 y ahora cuando intento iniciar los cuelgues de los indicadores creo que debería especificar no todas las citas, sino sólo una determinada, por ejemplo 3000. Pero no quiero recalcular también todas las 3000, necesito IndicatorCounted. No sé cómo especificar la condición que muestre sólo las últimas 3000 y no recalcule las ya pasadas.

Gracias por sus comentarios.

 
depth_finde >> :

Este es mi primer mensaje en el foro. Estoy estudiando MQL4. No sé si ya existía esa pregunta, no la he encontrado. Creo que tengo que utilizar la función IndicatorCounted, pero no sé cómo hacerlo. He añadido citas para 300 000 y ahora cuando intento iniciar los cuelgues de los indicadores creo que debería especificar no todas las citas, sino sólo una determinada, por ejemplo 3000. Pero no quiero recalcular también todas las 3000, necesito IndicatorCounted. No sé cómo especificar la condición que muestre sólo las últimas 3000 y no recalcule las ya pasadas.

Gracias por sus comentarios.

Sí, así.

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_ писал(а) >>

Si en tiempo real, se actualizan, si en el probador D1, los datos M.. en los últimos compases (tiempo real y no el probado).

Respondido en privado

 
costy_ писал(а) >>

Es más o menos así.

Probablemente no, porque como has demostrado en la primera tirada se calcularán no 3000 sino 300000 cotizaciones, todas las que hay.

 
depth_finde >> :

Probablemente no porque tal y como has mostrado la primera ejecución no leerá 3000 sino 300000 citas, tantas como hay.

>> ¡¡¡Bueno sí, sólo una vez, luego las que cambian!!!

Para que el indicador aparezca en todo el gráfico y no en una parte del mismo.

 
Vinin >> :

Respondido en persona.

>>Muchas gracias.

 
costy_ писал(а) >>

Bueno, sí, sólo una vez, ¡¡¡y luego cambió!!!

Para mostrar el indicador en todo el gráfico y no en una parte del mismo.

La idea es no descargar los 300 mil indicadores y esperar 5 minutos a que se carguen, sino descargar 3000 en la primera ejecución y luego sólo los que han cambiado.

Si tenemos cinco de estos indicadores en un gráfico, el proceso de carga tardará 25 minutos.