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

 

Buenas tardes.Gente, alguien por favor ayude con la función WindowScreenShot. Por tercer día nadie responde((. He escrito el siguiente script (ver archivo adjunto).

En 2 palabras sobre el guión. El script está destinado a realizar capturas de pantalla del gráfico actual de la ventana del terminal del cliente. En la variable externa datetime Time_bar se especifica la hora de la barra a partir de la cual y hasta la barra cero se creará (teniendo en cuenta la sangría derecha en el gráfico). En la línea

int número_de_barra=iBarShift(NULL,0,Barra_de_tiempo,true)

se busca el número de serie del bar que hemos especificado en la variable externa datetime time_bar. La propia función, en la línea

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Ahora la pregunta es... Para simplificar, supongamos que necesitamos crear una captura de pantalla de las dos últimas barras. Entonces, si la línea

int número_de_barra=iBarShift(NULL,0,Barra_de_tiempo,true)

se deja sin modificar, el resultado será la siguiente captura de pantalla


Es decir, no hay ninguna barra en la captura de pantalla (aunque la cadena

int bar_number=iBarShift(NULL,0,bar_time,true)

el número de barra por tiempo debe ser calculado)

Si esta línea se presenta de la siguiente manera

int número_de_barra=iBarShift(NULL,0,Time_bar,true)+2

obtendrás la captura de pantalla que queríamos:

Pregunta: ¿por qué en caso de que esta cadena tenga la siguiente forma

int número_de_barra=iBarShift(NULL,0,Barra_de_tiempo,true)

¿la captura de pantalla está tomada con un desplazamiento de 2 barras a la derecha del especificado en la línea anterior?

P.D. Para no saturar el foro, gracias de antemano por su respuesta
Archivos adjuntos:
 
Vinin:

Sí, si por supuesto la barra de cero en las barras de la hora ha comenzado.

¿se puede utilizar la siguiente función con parámetros para determinar si la barra ha comenzado:

int min=1;
int sec=59;

if ( TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n)

{

si es así, pone una pausa

}

 
stater:

podemos utilizar esta función con parámetros para determinar si la barra ha comenzado:

int min=1;
int sec=59;

if ( TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n)

{

si es así, ponga una pausa

}


Por supuesto que puedes, pero si las transacciones son significativamente menores a las previstas, puedes buscar otra condición
 
7777877:

Buenas tardes.Gente, alguien por favor ayude con la función WindowScreenShot. Por tercer día nadie responde((. He escrito el siguiente script (ver archivo adjunto).

En 2 palabras sobre el guión. El script está destinado a realizar capturas de pantalla del gráfico actual de la ventana del terminal del cliente. En la variable externa datetime Time_bar se especifica la hora de la barra a partir de la cual y hasta la barra cero se creará (teniendo en cuenta la sangría derecha en el gráfico). En la línea

int número_de_barra=iBarShift(NULL,0,Barra_de_tiempo,true)

se busca el número de serie del bar que hemos especificado en la variable externa datetime time_bar. La propia función, en la línea

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Ahora la pregunta es... Para simplificar, supongamos que necesitamos crear una captura de pantalla de las dos últimas barras. Entonces, si la línea

int número_de_barra=iBarShift(NULL,0,Barra_de_tiempo,true)

se deja sin modificar, el resultado será la siguiente captura de pantalla


Es decir, no hay ninguna barra en la captura de pantalla (aunque la cadena

int bar_number=iBarShift(NULL,0,bar_time,true)

se debe calcular el número de barras por tiempo)

Si esta línea se presenta de la siguiente manera

int número_de_barra=iBarShift(NULL,0,Time_bar,true)+2

entonces obtendremos la captura de pantalla que queríamos:

Pregunta: ¿por qué en caso de que esta cadena tenga la siguiente forma

int bar_number=iBarShift(NULL,0,bar_time,true)

¿la captura de pantalla está hecha con un desplazamiento de 2 barras a la derecha de lo especificado en la línea anterior?

P.D. Para no saturar el foro, gracias de antemano por su respuesta

Y haz clic en "barra de desplazamiento" en el terminal de antemano.
 
FAQ:

Y primero, haz clic en "barra de desplazamiento" en el terminal.

Desbloquea... El resultado es el mismo:

SIN "+2":


Con el valor "+2" en la línea int bar_number=iBarShift(NULL,0,Time_bar,true):


Nota: la línea roja vertical de la izquierda (última captura de pantalla del gráfico) marca la barra de la que se quiere hacer una captura de pantalla, pero sin "+2" en la línea int bar_number=iBarShift(NULL,0,Time_bar,true).

P.D. Estoy empezando a volverme loco(((.

 
Realmente... Mi consejo es que lo tomes como una característica y lo uses, pero si te molesta demasiado, escribe al servicio dec.
 
FAQ:
Realmente... Mi consejo: tómalo como una característica y úsalo, si te molesta demasiado, escribe al servicio dec.
Lo siento, pero hace poco que me dedico a la programación, así que aún no estoy familiarizado con la jerga. Ficha - esto debe ser un fallo... Por favor, aclare los "términos" usayet y service dec. )))
 

Una característica - una pequeña inconsistencia, que, sin embargo, no interfiere, y a veces incluso proporciona oportunidades indocumentadas, como OrderClosePrice() - si usted cierra una orden con este parámetro en el precio de cierre, se cerrará, sin necesidad de molestarse en determinar el precio por tipo de orden.

Bug - error en el programa (característica incorregible)

Servidec - un lugar donde los usuarios escriben cartas con los errores detectados. Se encuentra en el quinto foro de su perfil (se requiere un registro adicional)

 
7777877:

Desbloquea... El resultado es el mismo:

SIN "+2":


Con el valor "+2" en la línea int bar_number=iBarShift(NULL,0,Time_bar,true):


Nota: la línea roja vertical de la izquierda (última captura de pantalla del gráfico) marca la barra de la que se quería hacer la captura, pero sin "+2" en la línea int bar_number=iBarShift(NULL,0,Time_bar,true).

P.D. Estoy empezando a perder la cabeza(((




Se dispara todo correctamente, tienes Time_bar=D'2012.10.04 14:00' que son 33 barras en el gráfico horario, +2 35 barras, algo así.

A mí también me gustaría ver un pantallazo así..... de la línea roja.

 

Tal vez alguien se ha encontrado con este problema - sólo 20 plataformas MT4 se puede abrir y eso es todo, no hay más apertura. La CPU y la RAM no están cargadas ydeberían permitir la apertura. ¿Cómo resolver este problema?