[¡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 862

 
FOReignEXchange:

Querías cinco minutos, ¿no?

Así es como debería funcionar. Cada 5 minutos habrá un redibujo, si se ponen a cero los parámetros requeridos, que son utilizados por el indicador.


extern int timedraw=1; - esto es un minuto

He hecho lo que quería con tu ayuda. En cuanto a los ticks, no son muy regulares, pero no es crucial, no se utilizarán en el historial - este es un script e indicador para el trading manual

tres pantallas, o más bien 4

ZS: Su código - sí, es más útil para escribir un indicador para ser utilizado por el EA

 
FOReignEXchange:

Excepto que a veces no hay ticks durante tres minutos, como ahora. Mirando el gráfico M1 del GBPUSD, no había ticks de 3-4 minutos. No se puede utilizar TimeCurrent() en el historial. O no se puede usar en el probador porque es la hora actual y no cambia.

Basándonos en el código anterior, podemos decir que la señal del mensaje no será cada 5 minutos, sino cada 5 barras en los minutos.


datetime TimeCurrent( )

Devuelve la última hora conocida del servidor (última hora citada) como el número de segundos transcurridos desde las 00:00 del 1 de enero de 1970.

Nota: En las pruebas, se simula la última hora conocida del servidor.

Pero aún así, ¿es simulado? Sí - no será exacta con un margen de error no insignificante supongo, pero el uso en la prueba es posible. Si no sé o no entiendo algo, les agradecería que me lo explicaran.
 
usver:
Pero aún así, ¿es simulado? Sí - no será preciso con un margen de error no insignificante supongo, pero el uso en una prueba es posible. Si hay algo que no sé o no entiendo, le agradecería que me lo explicara.

Creo que te equivocas. Un momento...

Ah, ya me acordé, TimeCurrent() no se puede utilizar cuando se recalcula la historia del gráfico actual.

Por ejemplo, cuando se adjunta el siguiente código

                                      while(i>0)
                                      {
if (iHigh(NULL,0,i)>X)     
   {
   t=TimeCurrent();
   }
                                      i--
                                      }                                 

recordará el tiempo real actual, no la barra i-ésima donde iHigh(NULL,0,i)>X

Y en el probador no lo sé.

 
FOReignEXchange:

Creo que te equivocas. Un momento...

Ah, ya me acordé, TimeCurrent() no se puede utilizar cuando se recalcula el historial del gráfico actual.

Por ejemplo, cuando se adjunta el siguiente código

recordará el tiempo real actual, no la barra i-ésima donde iHigh(NULL,0,i)>X

Y en el probador no lo sé.

TimeCurrent() Devuelve la última hora conocida del servidor (hora de llegada de la última cotización) como número de segundos, y no tiene nada que ver con la i-barra tanto en tester, demo y real
 
FOReignEXchange:

Creo que te equivocas. Un momento...

Ah, ya me acordé, TimeCurrent() no se puede utilizar cuando se recalcula el historial del gráfico actual.

Por ejemplo, cuando se adjunta el siguiente código

recordará el tiempo real actual, no la barra i-ésima donde iHigh(NULL,0,i)>X

Y en el probador no lo sé.


Sí, está claro. Sólo me confundió la frase de que TimeCurrent() no se puede usar en el historial y en el probador.

¿No será incorrecto el siguiente código? La hora de llegada de la última cotización es simulada y la utilizamos.

int time;
if (time==0)
   time=iTime(NULL,1,0); // Точка отсчета
if (TimeCurrent()-time>=300) // Проверяем сколько времени прошло - равно ли 5 минутам
   {
      // Выполняем, что хотели
      ...
      ...
      ...
      time=0;
    }

Su solución me pareció mejor que la descrita anteriormente.

 
Y gracias de mi parte también. Como dicen, todo lo brillante es simple.
keekkenen:
 
Y gracias de mi parte también. Como dicen, todo lo brillante es simple.
keekkenen:
 
Resulta que todo es genialmente sencillo. Gracias por el Bloc de notas.
keekkenen:
 
usver:

¿El siguiente código no será erróneo?

int time;

   int start()
   {

if (time==0)  time=iTime(NULL,1,0);    // Точка отсчета

if ((TimeCurrent()-time)>=300)        // Проверяем сколько времени прошло - равно ли 5 минутам
   {
      // Выполняем, что хотели
      ...
      ...
      ...
      time=0;
    }

   }

int time; debe ser mayor que la hora de inicio, de lo contrario el tiempo siempre será igual a cero. Y debe ir entre corchetes(TimeCurrent()-time)

El resto del código parece estar bien. No lo he comprobado.

 

¿cuál es la mejor manera de guardar los datos/variables importantes en caso de que el terminal se cuelgue (fallo de alimentación)?

- variables globales de la terminal? a un archivo?

- ¿con qué frecuencia hay que guardarlas? (el último valor de la equidad y algunos bools del asesor son importantes)

Razón de la queja: