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

 
Buenos días! El antiguo indicador tiene un ciclo prescrito, sobrecarga fuertemente el terminal, por favor ayúdeme a reescribirlo de una nueva manera, para que las barras no se recalculen constantemente... Se lo agradezco de antemano.
int i,limit;
limit = Bars-2;
for(i=limit; i>0; i--)
 
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      limit++;
Tomado del ejemplo de MACD suministrado con el terminal.
 
evillive:
Tomado del ejemplo del MACD de la entrega del terminal.
Gracias, pero en este caso limit=0 y en el bucle el cálculo es desde la última barra hasta cero
 
Pokrov:
Gracias, pero en este caso limit=0, y en el bucle el cálculo va desde la última barra a cero

En ese caso, si se cuenta 0, tomamos todas las barras, y en otros casos, tomamos tantas barras como no se cuenten:

  limit=rates_total-prev_calculated;
  if(prev_calculated<1) limit=rates_total-1;
 
evillive:

Entonces, si se cuenta 0, tomamos todas las barras, en otros casos, cuántas no se cuentan:

¡Muchas gracias! No entiendo por qué funciona, cuando cargorates_total y prev_calculated son iguales a igual número de barras y luego limit = 0, además la condición que no es verdadera, ¿por qué funciona? Explícamelo, por favor,

Quiero entender por qué funciona...
 
Pokrov:

¡Muchas gracias! Sólo que todavía no entiendo por qué funciona, cuando cargo el indicadorrates_total y prev_calculated son iguales al mismo número de barras y luego limit = 0, además la condición que no es verdadera, entonces ¿por qué funciona? Por favor, explíqueme,

Quieres entender por qué funciona...

Al cargarrates_total=Bars, a prev_calculated=0.

 
evillive:

Al cargarrates_total=Bars, a prev_calculated=0.

¡¡¡¡Ah, es cierto, es que no me fijé bien en el registro, la primera marcaprev_calculated=0. gracias de nuevo!!!!
 
evillive:
Puedes hacerlo. Deja más espacio para ello, las carpetas del historial y los registros van creciendo, yo tengo más de 5 Gb de historial, y una vez mi Expert Advisor tenía 20 Gb de errores en sus registros, es bueno que no esté en un pendrive ))))
Bien. Ya veo. Gracias a todos.
 

Hola a todos. Quiero usar datos de H4 en el probador de estrategias en el marco de tiempo H1. Cuando inicializo el indicador se renderiza correctamente, pero cuando inicio el probador no se redibuja.

¿Es una característica del probador? ¿Cómo puedo superarlo?

int shift = iBarShift(Symbol(), PERIOD_H4, Time[i]);

bufBuffer[i] = iClose(Symbol(),PERIOD_H4,shift); 
 
storuky:

Hola a todos. Quiero usar este indicador de H4 en el probador de estrategias en el marco de tiempo H1. Cuando inicializo el indicador se renderiza correctamente, pero cuando inicio el probador no se redibuja.

¿Es una característica del probador? ¿Hay alguna forma de arreglarlo?

Sí, el probador bloquea el acceso a los datos de otros TF en el modo de visualización. En las pruebas normales sin visualización, los datos van bien, pero la representación se resiente.

No hay forma de resolver este problema directamente: sólo podemos complicar el algoritmo y dibujar objetos, pero ¿merece la pena?