Centro de Historia actualizado: historia gratuita de citas de minutos desde 1999 - página 8

 
Rosh:
Por desgracia, pon las "barras máximas en el gráfico" (alrededor de 3 millones para hoy) y podrás ver cualquier fecha.
es decir, ¿no es posible fijar un segmento arbitrario?
Por ejemplo, ¿sólo en agosto de 2005?
 
No, y por qué. En el artículo "Secretos del terminal de cliente de MetaTrader 4" se describen algunas cosas útiles que facilitan la vida, aquí está una de ellas:

 
¿Alguna vez has querido eliminar el límite del número de barras del historial y de la ventana en general? O hacer una casilla de verificación como ilimitada. Esto haría que los usuarios no tuvieran ninguna duda al respecto.
Se puede sustituir la limitación del número de barras en la ventana por una lógica más inteligente de intercambio del historial desde un archivo. Habrá un búfer para la visualización si nos desplazamos en los datos fuera de este búfer a continuación, en este búfer se carga desde un archivo de datos de la historia nueva en lugar de la anterior - puede desplazarse retrasa un poco en él, por supuesto. Aunque si se carga todo el historial o como desplazamiento en la profundidad del historial se puede colocar en un buffer creado por VirtualAlloc en este caso la memoria se cargará desde el archivo de intercambio de los datos a los que el terminal accede en el momento en lugar de los antiguos que se borran de la memoria y permanecen en el archivo de intercambio - el mismo buffering pero a nivel del sistema operativo.
 
elritmo:
¿Quiere eliminar la limitación del número de barras en el historial y en la ventana en general? O hacer una casilla de verificación como ilimitada. Los usuarios no tendrían ninguna duda al respecto.
Puede sustituir la limitación del número de barras en la ventana por una lógica más inteligente de intercambio del historial desde un archivo. Habrá un búfer para la visualización si nos desplazamos en los datos fuera de este búfer a continuación, en este búfer se carga desde un archivo de datos de la historia nueva en lugar de la anterior - puede desplazarse retrasa un poco en él, por supuesto. Aunque si se carga todo el historial o como desplazamiento en la profundidad del historial se puede colocar en un buffer creado por VirtualAlloc en este caso la memoria se cargará desde el archivo de intercambio de los datos a los que el terminal accede en el momento en lugar de los antiguos que se borran de la memoria y permanecen en el archivo de intercambio - el mismo buffering pero a nivel del sistema operativo.
¡Dios no lo permita en la búsqueda!
Limitar el historial también es necesario para aquellos que ponen el terminal en un servidor para el comercio automatizado. Necesitan el mínimo de historia para que los indicadores funcionen y limiten el espacio en disco.
 
hacer una casilla de verificación como ilimitada o infinita. Quien necesite limitarse lo hará fácilmente. Por defecto, no hay restricciones para que no tengas que preguntarte: ¿Por qué no puedo ver todo mi historial?
 
Sí, y la memoria de todos es ilimitada por defecto...

Si se muestra toda la historia, habrá preguntas sobre por qué las cosas son tan lentas.
 

Puedes cargar el historial desde un archivo mientras te desplazas. Pero me parece que se ralentiza porque la memoria se reubica a través de la pila. Hay otros enfoques para reservar la memoria. Recomendamos utilizar la asignación de memoria VirtualAlloc para matrices enormes. El Heap puede ser usado libremente para arrays dinámicos que no excedan 1Mbyte
En MT asumo que para la asignación de memoria se usa el operador new[] y la función cpymem o malloc y realloc que luego llaman a HeapAlloc y HeapRealloc. Aparece un mensaje de memoria agotada si no puede encontrar un trozo fresco de espacio de direcciones para colocar los elementos uno tras otro (no estoy seguro de esto :)). O tal vez el tamaño del archivo de intercambio es insuficiente en algún momento.

Este es un ejemplo de cómo se puede utilizar la memoria virtual para las series de tiempo en lugar de la pila

MemManager::MemManager(int reg_size, int unt_size, void*& p) {
    unit_size = unt_size;
    SYSTEM_INFO si;
    GetSystemInfo(&si);
    page_size = si.dwPageSize;
    region_size = (reg_size / page_size) * page_size;
    if(reg_size % page_size != 0) region_size += page_size;
    next_page = region = (char*)VirtualAlloc(0, region_size, MEM_RESERVE, PAGE_READWRITE);
    p = region;
    capacity = 0;
}
 
MemManager::~MemManager() {
     VirtualFree(region, 0, MEM_RELEASE);
}
 
void MemManager::realloc(int sz) {
    size = sz*unit_size;
    if(size <= capacity)
        return;
    int tmp_size = size - capacity;
    int inc_size = (tmp_size / page_size) * page_size;
    if (tmp_size % page_size != 0) inc_size += page_size;
    char* p = (char*)VirtualAlloc(next_page, inc_size, MEM_COMMIT, PAGE_READWRITE);
    next_page += inc_size;
    capacity += inc_size;
}
 
Sí, sí, yo también tengo muchas ideas sobre cómo mejorar la economía en todo el mundo.
También puedo dar valiosos consejos a los labradores sobre cómo arar y a las mujeres sobre cómo dar a luz.
Y yo soy el más inteligente aquí, aunque soy muy pobre...
 

Los inteligentes utilizan las ideas de otros ;o) Más o menos como los japoneses después de la Segunda Guerra Mundial...

 
¿Dime que el historial de 6E, Euro FX Currencies -Globex no está en el centro del historial? ¿Por qué sólo se descargan los dos últimos días?
Razón de la queja: