Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Mapeamento de Memória - biblioteca para MetaTrader 5

Visualizações:
1221
Avaliação:
(36)
Publicado:
2014.01.14 13:18
Atualizado:
2016.11.22 07:33
memmap32.zip (754.96 KB)
memmapdll.zip (29.22 KB)
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Este projeto(Visual C++ 2010) contém 2 classes - CMemMapApi e CMemMapFile.

São projetados para trabalhar com arquivos de mapeamento de memória. Você pode:

  • Criar arquivo em memória;
  • Escrever e ler dados a partir do arquivo de mapeamento de memória;
  • Ele fornece uma oportunidade para a troca de dados entre aplicativos, incluindo MetaTrader 4 e МetaТrader 5.
Usando arquivos de mapeamento de memória você pode conseguir um grande desempenho na troca de dados.

A aplicação principal é a troca de dados:
  • Cópia dos negócios para vários terminais em PC único.
  • Cotações de troca de dados para Expert Advisors de arbitragem etc.

Os arquivos de mapeamento de memória podem ser usados para servir dados temporários dos Expert Advisors.
A classe CMemMapApi é apenas um empacotador (wrapper) de funções WinAPI que é a diferença entre as classes CMemMapFile e CMemMapApi.

O CMemMapFile é útil porque serve o nome do arquivo, manipulador (handle) de arquivo e controla as verificações do tamanho de arquivo. Em contraste, a classe CMemMapApi pode trabalhar com vários arquivos de mapeamento de memória.

No projeto atual as funções DLL exportadas são organizados em CMemMapApi para trabalhar com vários arquivos de mapeamento de memória.
A classe CMemMapFile é projetada para trabalhar com arquivos de mapeamento de memória em outros projetos C++.

Funções exportadas:
//--- abrir/criar o arquivo de mapeamento de memória e retorna o manipulador (handle)
int MemOpen(string path,int size,int mode,int &err[]);
//--- fecha o arquivo de mapeamento de memória
void MemClose(int hmem);             
//--- aumenta o tamanho do arquivo de mapeamento de memória
int MemGrows(int hmem,string path,int newsize,int &err[]);
//--- retorna o tamanho do arquivo de mapeamento de memória
int MemGetSize(int hmem, int &err[]);
//--- define o o tamanho do arquivo de mapeamento de memória
int MemSetSize(int hmem, int size, int &err[]);
//--- escreve "v" vetor (tamanho em bytes) para iniciar o arquivo mapeamento de memória a partir da posição "pos"
int MemWrite(int hmem,int &v[], int pos, int size, int &err[]);       
//--- Lê o "v" vetor (tamanho em bytes) para iniciar o arquivo mapeamento de memória a partir da posição "pos"
int MemRead(int hmem, int &v[], int pos, int size, int &err[]);
//--- escreve uma string (tamanho em bytes) para iniciar o arquivo mapeamento de memória a partir da posição "pos"
int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]);
//--- Lê uma string (tamanho em bytes) para iniciar o arquivo mapeamento de memória a partir da posição "pos"
int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]);

Exemplo do uso da DLL: Monitoramento de Cotações (arquivo de memória mapeada)

12.03. 2012: Fixed an error in MemWriteStr

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/816

Mapeamento de Arquivo sem DLL Mapeamento de Arquivo sem DLL

Classes (convertidas do C++ para MQL5) para trabalhar com arquivos de memória mapeada.

BykovTrend_HTF_Signal BykovTrend_HTF_Signal

BykovTrend_HTF_Signal mostra uma indicação do sentido da tendência ou um sinal para a realização de um negócio gerado pelo indicador BykovTrend através de objeto gráfico colorido.

Monitoramento de Cotações (arquivo de memória mapeada) Monitoramento de Cotações (arquivo de memória mapeada)

Este Expert Advisor é um exemplo de uso do Mapeamento de Memória DLL para trabalhar com Funções de Mapeamento de arquivo. Neste exemplo, o Expert Advisor cria um arquivo virtual (de memória mapeada) e inicia a atualização das cotações nos ativos. Desta forma, os Expert Advisors podem trocar dados (por exemplo, dados de cotações) usando o arquivo de memória mapeada comum.

IncRVIOnArray IncRVIOnArray

A Classe CRVIOnArray é projetada para calcular os valores do RVI (Relative Vigor Index) sobre os buffers do indicador. Abaixo temos uma exemplo do uso da classe através do indicador Test_RVIOnArray.