Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Facebook !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

Cartographie de la mémoire - bibliothèque pour MetaTrader 5

Vues:
65
Note:
(36)
Publié:
memmap32.zip (754.96 KB)
memmapdll.zip (29.22 KB)
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Le projet Visual C++ 2010 comporte deux classes : CMemMapApi et CMemMapFile.

Elles remplissent la même fonction : travailler avec la mémoire virtuelle (Memory Mapping) comme on travaille habituellement avec des fichiers.

  • Créer un fichier en mémoire ;
  • Écrire et lire des données à partir de ce fichier ;
  • Possibilité d'échanger des données entre applications. Y compris entre MetaTrader 4 et MetaTrader 5.
Lorsque vous travaillez avec la mémoire, vous bénéficiez d'un gain important en termes de vitesse d'échange d'informations.

L'application principale est bien sûr l'échange d'informations :
  • dans les copieurs de transactions entre les terminaux d'un même ordinateur
  • Échange de cotations pour créer des experts en arbitrage, etc.

Mais vous pouvez également l'utiliser pour le stockage temporaire des données des Expert Advisors.

La différence entre les classes CMemMapFile et CMemMapApi est que CMemMapApi n'est qu'une enveloppe des fonctions WinApi.

L'avantage de CMemMapFile est qu'il stocke le nom du fichier, son identifiant et sa position actuelle en lecture/écriture et qu'il effectue toutes les vérifications nécessaires sur la taille du fichier lui-même.
Mais l'objet CMemMapApi peut gérer plusieurs fichiers mémoire à la fois, alors que l'objet CMemMapFile ne gère qu'un seul fichier.

Dans le projet de DLL actuel, toutes les fonctions exportées proviennent exactement de CMemMapApi, afin d'organiser le travail avec plusieurs fichiers de mémoire.
La classe CMemMapFile est conçue pour travailler avec la mémoire dans d'autres projets C++.

Fonctions exportées de la DLL :
int MemOpen(string path,int size,int mode,int &err[]);                // ouvre/crée un fichier en mémoire, renvoie le handle
void MemClose(int hmem);                                             // ferme le fichier en mémoire
int MemGrows(int hmem,string path,int newsize,int &err[]);            // augmente la taille du fichier en mémoire
int MemGetSize(int hmem, int &err[]);                                   // renvoie la taille du fichier en mémoire
int MemSetSize(int hmem, int size, int &err[]);                     // définit la taille du fichier en mémoire
int MemWrite(int hmem,int &v[], int pos, int size, int &err[]);      // écrire le vecteur v dans la mémoire à partir de la position spécifiée pos, size size
int MemRead(int hmem, int &v[], int pos, int size, int &err[]);      // lecture du vecteur v à partir de la position spécifiée pos avec la taille size
int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]); // écrire des données dans la mémoire à partir de la position spécifiée pour le nombre d'octets spécifié
int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]); // lecture des données de la mémoire à partir de la position spécifiée et du nombre d'octets spécifié

Exemples d'utilisation de la DLL dans MetaTrader 5 - Suivi des cotations (exemple de mapping)

Correction du fonctionnement de la fonction MemWriteStr


Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/816

Suivi des offres (exemple de cartographie) Suivi des offres (exemple de cartographie)

Exemple d'utilisation d'une DLL pour travailler avec des fonctions de mappage de fichiers. Dans cet exemple, le conseiller expert lancé crée un fichier virtuel dans la mémoire et commence à mettre à jour la cotation du symbole dans ce fichier. Lorsque des conseillers experts sont lancés sur d'autres terminaux, ils ouvrent le fichier créé et commencent à y mettre à jour leurs cotations. Ainsi, les conseillers experts échangent leurs cotations par le biais d'un fichier commun.

Prix d'arrêt Prix d'arrêt

Le script calcule le prix auquel un Stop Out (fermeture forcée d'une position) peut se produire et le prix à partir duquel la valeur de la Marge Libre devient négative.

Simple_Session_Changement_de_prix Simple_Session_Changement_de_prix

L'indicateur le plus simple montrant sur le symbole actuel la variation du prix en % depuis l'ouverture de la séance.

iForexSessions iForexSessions

Met en évidence les sessions du marché des changes (Sydney, Tokyo, Londres, New York).