mql5 - línea vertical después de un tiempo determinado desde la última operación - página 6

 
Creo que lo he conseguido - he adjuntado el archivo :)
La línea se desplaza según el algoritmo especificado por el número de horas especificado desde el cierre de la última operación. Lo he cambiado no por 1/2/24 horas sino por 1/2/12 horas, es decir, todo el día es demasiado para el descanso. En cualquier caso, estas variables se trasladarán a parámetros externos por comodidad. Glitch que anuncié anteriormente con ACID_NW ni siquiera mirado, más tarde en el proceso de pruebas y la posible detección de nuevos glitches ya entenderá
Archivos adjuntos:
 
A continuación, mostraré en Comment la hora de cierre de la última operación y el momento en el que se desplaza la línea, es decir, cuándo puedo reanudar las operaciones tras una pausa. Parece que debería ser bastante sencillo, teniendo en cuenta que las variables con los datos necesarios ya han sido creadas y calculadas - sólo hay que convertir el formato de segundos a fecha, pero por alguna razón no funcionó de inmediato :(
 
renatmt5:
A continuación, mostraré en Comment la hora de cierre de la última operación y la hora en la que se desplazó la línea, es decir, cuándo puedo reanudar las operaciones tras una pausa. Parece que debería ser bastante sencillo, teniendo en cuenta que las variables con los datos necesarios ya han sido creadas y calculadas - sólo hay que convertir el formato de segundos a fecha, pero por alguna razón no funcionó de inmediato :(
TimeToString()
 

Sergey, ¡gracias! Eso es exactamente lo que intenté, pero por alguna razón terminé con cero. No he tardado mucho en descubrir en qué me he equivocado; no creo que vaya a ser un gran problema

 
He leído en otro foro una explicación sobre ACID_NW"Si al final del día de negociación los fondos de bonificación permanecen en la cuenta por encima del límite permitido, su exceso se transferirá automáticamente a su cuenta de bonificación. Al transferir, verá las siguientes abreviaturas en el comentario de la transacción de saldo: _ACID_NW, donde ACID significa Ajuste Automático y NW para Fondos de Bonificación".
Dado que tengo un problema con el indicador debido a esto - el indicador restablece los datos en el último comercio y el resultado del último día, la opción más fácil que veo es simplemente eliminar el dinero de bonificación de la cuenta por completo. He entendido bien, entonces por definición este _ACID_NW no se producirá? En el proceso de negociación, los nuevos fondos de bonificación no se acreditarán en la cuenta de negociación, sino que se acreditarán en la cuenta de bonificación?
 
renatmt5:
También leí sobre el ACID_NW en la explicación del foro"Si al final de un día de negociación la cantidad de fondos de bonificación en su cuenta excede el límite permitido, la cantidad en exceso se transferirá automáticamente a su cuenta de bonificación. Al transferir, verá las siguientes abreviaturas en el comentario de la transacción de saldo: _ACID_NW, donde ACID significa Ajuste Automático y NW para Fondos de Bonificación".
Dado que tengo un problema con el indicador debido a esto - el indicador restablece los datos en el último comercio y el resultado del último día, la opción más fácil que veo es simplemente eliminar el dinero de bonificación de la cuenta por completo. He entendido bien, ¿entonces por definición este _ACID_NW no se producirá? En el proceso de negociación, los nuevos fondos de bonificación no se acreditarán en la cuenta de negociación, sino que se acreditarán en la cuenta de bonificación?

Tómate tu tiempo. Ejecute el script deHistorial de Ofertas y Pedidos.

Introduzca las fechas Desde la fecha y Hasta la fecha. Deje la salida de información por defecto (se enviará al nombre del archivo).

Después, para ver y abrir el archivo de texto, es necesario

  • Paso 1: seleccione el menú Archivo y seleccione "Abrir carpeta de datos";
  • Paso 2: En el explorador que se abre, vaya sucesivamente a la carpeta "MQL5\Files".

Pegue toda la información del archivo en el correo como código (pulse Alt+S).

 
Hizo la salida para un día - no se puede poner en el código, demasiados caracteres. ¿Hacer una copia de seguridad con un archivo o reducir el intervalo a unas pocas horas para capturar una transacción y el posteriorACID_NW?
 

Se ha corregido el fallo por el que el indicador no calculaba el beneficio de la última operación y el día de la última operación en el nuevo día. Resulta que el asunto no estaba en la operación_ACID_NW, sino en que el valor de la variable from_date (fecha inicial, a partir de la cual se cargaba el historial de operaciones) estaba mal configurado. En el código, se describía como "from_date=iTime(Symbol(),PERIOD_D1,0)", es decir, según entendí el punto de partida - inicio del día actual. Y debe cargarse el historial durante 24 horas, de lo contrario no se incluyen los resultados de ayer. Para simplificar, no lo hice para las últimas 24 horas, sino desde el principio de ayer. 24 horas, y desde el comienzo de ayer, es decir,from_date = iTime(Symbol(),PERIOD_D1,1) - ¡todo se calculó correctamente!

 

Chicos, por favor, aconsejen sobre la salida del valor de la variable datatime.

Tengo una variable con cadena datetime last_deal_day=time[rates_total-1]-fromlastdeal_seconds;

Cuando imprimo el valor de esta variable Comment("last_deal_day = ",last_deal_day) imprimo la fecha y la hora como "2019.03.21 02:48:19"
¿Cómo puedo dividir este valor en dos variables para imprimir la fecha y la hora por separado?

 
renatmt5:

Chicos, por favor, aconsejadme sobre la salida del valor de la variable datatime.

Mi variable se establece por datetime last_deal_day=time[rates_total-1]-fromlastdeal_seconds;

Cuando saco el valor de esta variable Comment("last_deal_day = ",last_deal_day) sale la fecha y la hora como "2019.03.21 02:48:19"
¿Cómo puedo dividir este valor en dos variables para obtener la fecha y la hora por separado?

TimeToString


    Comment(TimeToString(last_deal_day,TIME_DATE)+" "+TimeToString(last_deal_day,TIME_SECONDS)