Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1311

 
MakarFX:

Pregunta 1: No entiendo la pregunta(

El programa para obtener el inicio del periodo seleccionado o el propio periodo

 
Andrey Sokolov:

para obtener el inicio del periodo seleccionado o el propio periodo

No, "OrdersHistoryTotal Devuelve el número de órdenes cerradas y eliminadas en el historial de la cuenta actual cargado en el terminal del cliente."
 
Andrey Sokolov:

para obtener el inicio del periodo seleccionado o el propio periodo

Antes, no sólo el periodo dependía de la configuración de la pestaña "Historia", sino también el orden de clasificación. La clasificación parece haberse hecho inmutable, pero el periodo parece haber seguido siendo dependiente. Es decir, si mostramos el historial desde el 01.12.2020 hasta el 04.12.2020, entonces OrdersHistoryTotal() sólo devolverá la cantidad de pedidos de este periodo. Y si mi cerebro no se ha secado del todo, cuenta a la hora de cerrar. No tiene en cuenta el tiempo de apertura. Supongamos, por ejemplo, que una orden se abrió el 02.12.2020 y se cerró (no son muy buenas fechas todavía, pero aún así) el 05.12.2020, no entrará en el período del 01.12.2020 al 04.12.2020.
 
Alexey Viktorov:
Y si mis cerebros no están completamente secos, cuenta a la hora de cerrar.

Sí, sólo cerrar o borrar

 
Alexey Viktorov. MakarFX gracias por aclarar qué fecha se cuenta. Pero la pregunta no era exactamente sobre eso. Supongamos que se selecciona el período del "último mes", ¿cómo podemos obtener la fecha de inicio de este período (seleccionado), aunque no haya habido operaciones ese día?
 
Andrey Sokolov:
Alexey Viktorov. MakarFX gracias por aclarar qué fecha se cuenta. Pero la pregunta no era exactamente sobre eso. Supongamos que elijo el periodo "último mes", ¿cómo puedo obtener la fecha de inicio de este periodo (seleccionado), aunque no haya operado ese día?
No hay manera.
 
Andrey Sokolov:
Alexey Viktorov. MakarFX, gracias por aclarar qué fecha se tiene en cuenta. Pero mi pregunta no se refería exactamente a esto. Supongamos que hemos seleccionado el período del "último mes", ¿cómo podemos obtener la fecha de inicio de este período (seleccionado) mediante programación, aunque no hayamos negociado ese día?

No hay fecha de inicio del periodo, hay una orden con la fecha más temprana. Es triste, a decir verdad, porque si no hay órdenes en el historial, no hay fechas de época. De hecho, eso es todo.

 
Valeriy Yastremskiy:

No hay fecha de inicio del periodo, hay una orden con la fecha más temprana. Es triste, a decir verdad, porque si no hay órdenes en el historial, no hay fechas de época. De hecho, eso es todo.

esta configuración no está pensada para el "día a día" - configure el terminal una vez y no lo toque

en el 99,9% de los sistemas de comercio el período de 3 meses de historia funcionará perfectamente, probablemente con la excepción de TS, en el que decenas de miles de órdenes por mes - el período de 1 mes debe establecerse aquí

SZZ: No he notado ninguna pérdida de rendimiento durante un largo periodo de tiempo (está claro que todo se puede romper)) ) - pero en el caso de un período de 1 mes, puede haber algunas sorpresas


Por lo tanto, si los desarrolladores de MetaTrader nos permitieran "rotar" el historial de órdenes, ¡mal!

)))

 
Igor Makanu:

esta configuración no está pensada para "retoques diarios" - configure el terminal una vez y no lo toque

en el 99,9% de los sistemas de comercio el período de 3 meses de historia funcionará perfectamente, bueno, probablemente con la excepción de TS, en el que varias decenas de miles de órdenes por mes - aquí, lo más probable es un período de 1 mes debe ser establecido

SZZ: No he notado ninguna pérdida de rendimiento durante un largo periodo de tiempo (está claro que todo se puede romper)) ) - pero en el caso de un período de 1 mes, puede haber algunas sorpresas


Por lo tanto, si los desarrolladores de MetaTrader nos permitieran "rotar" el historial de órdenes, ¡mal!

)))

Mi enfoque es más pesimista. No podemos hacer análisis sobre datos por defecto como la historia porque tienen que existir y tenemos que encontrarlos, y el análisis eficiente requiere su propia recogida de datos )))). El historial es sólo para la gestión operativa.

 

Puedes intentar sacar la fecha del formulario usando WinAPI. Y pedir un nuevo período también.

Para cuatro, no sé cómo es con cinco.


Encontré esto, lo hice hace unos años, así:

#import "user32.dll"
   int GetForegroundWindow();
   int PostMessageA(int hWnd, int msg, int wParam, int lParam);
#import

//загружает всю историю закрытых ордеров
bool DownloadOrderHistory()
   {
   int eHandle=GetForegroundWindow();
   if(eHandle<=0) return(false);
   return(PostMessageA(eHandle,0x0111,0x8122,0)==1);
   }
GetForegroundWindow mejor replace....
Razón de la queja: