Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Mapeo de Memoria - librería para MetaTrader 5

Visualizaciones:
1232
Ranking:
(36)
Publicado:
2014.01.14 13:18
Actualizado:
2016.11.22 07:33
memmap32.zip (754.96 KB)
memmapdll.zip (29.22 KB)
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Este proyecto (Visual C++ 2010) contiene 2 clases - CMemMapApi y CMemMapFile.

Están diseñadas para trabajar con archivos mapeados en memoria. Es posible:

  • Crear un archivo en memoria;
  • Escribir y leer datos de archivos mapeados en medmoria;
  • Ofrece una oportunidad para intercambiar datos entre aplicaciones, incluyendo MetaTrader 4 y МetaТrader 5.
el uso de archivos mapeados en memoria permite obtener un rendimiento elevado en el intercambio de datos.

Uso principal de intercambio de datos:
  • Copiar las operaciones en varios terminales de un PC
  • Intercambio de cotizaciones para Asesores Expertos de arbitraje, etc.

Los archivos mapeados en memoria pueden servir de almacenamiento temporal para los datos de Asesores Expertos.
La clase CMemMapApi es simplemente un envoltorio para las funciones de WinApi, esa es la diferencia entre CMemMapFile y CMemMapApi.

CMemMapFile es útil, porque gestiona el nombre del archivo, devuelve un manejador de archivo y controla la comprobación del tamaño del archivo. En contraste, la clase CMemMapApi puede trabajar con varios archivos mapeados en memoria.

En el proyecto actual las funciones exportadas por la DLL se organizan en CMemMapApi para trabajar con varios archivos mapeados cen memoria.
La clase CMemMapFile está diseñada para trabajar con archivos mapeados en memoria en otros proyectos de C++.

Funciones exportadas:
//--- abrir/crear un archivo mapeado en memoria y devolver su manejador
int MemOpen(string path,int size,int mode,int &err[]);
//--- cierra el archivo mapeado en memoria
void MemClose(int hmem);             
//--- aumenta el tamaño del archivo mapeado en memoria
int MemGrows(int hmem,string path,int newsize,int &err[]);
//--- devuelve el tamño del archivo mapeado en memoria
int MemGetSize(int hmem, int &err[]);
//--- establece el tamaño del archivo mapeado en memoria
int MemSetSize(int hmem, int size, int &err[]);
//--- escribe el vector v (tamaño en bytes) a un archivo mapeado en memoria a partir de la posición pos
int MemWrite(int hmem,int &v[], int pos, int size, int &err[]);       
//--- lee el vector v (tamaño en bytes) a un archivo mapeado en memoria a partir de la posición pos
int MemRead(int hmem, int &v[], int pos, int size, int &err[]);
//--- escribe una cadena (tamaño en bytes) a un archivo mapeado en memoria a partir de la posición pos
int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]);
//--- lee una cadena (tamaño en bytes) desde un archivo mapeado en memoria a partir de la posición pos
int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]);

Ejemplo de uso de la DLL:  Quotes Monitoring (memory-mapped file)

12.03. 2012: Corregido un error en MemWriteStr


Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/816

Mapeado de Ficheros sin la DLL Mapeado de Ficheros sin la DLL

Clases (traducidas de C++ a MQL5) para trabajar con ficheros mapeados en memoria.

BykovTrend_HTF_Signal BykovTrend_HTF_Signal

BykovTrend_HTF_Signal muestra la dirección de la tendencia o una señal generada por el indicador BykovTrend para llevar a cabo una transacción, mediante un objeto gráfico coloreado que indica la tendencia o la dirección de la transacción.

Monitorización de cotizaciones (fichero mapeado en memoria) Monitorización de cotizaciones (fichero mapeado en memoria)

Este Asesor Experto es un ejemplo del uso de la DLL de Mapeado en Memoria para trabajar con las funciones de Mapeado de Ficheros. En este ejemplo, el Asesor Experto crea un fichero virtual (mapeado en memoria) y empieza a actualizarlo con las cotizaciones de un símbolo. Con este método, los Asesores Expertos pueden intercambiar datos (por ejemplo, cotizaciones) utilizando ficheros mapeados en memoria compartida.

IncRVIOnArray IncRVIOnArray

La clase CRVIOnArray está diseñada para calcular los valores de RVI (Relative Vigor Index) a partir de los buffers del indicador. El indicador Test_RVIOnArray muestra un ejemplo de uso de la clase.