Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Görüntülemeler:
52
Derecelendirme:
(36)
Yayınlandı:
memmap32.zip (754.96 KB)
memmapdll.zip (29.22 KB)
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

Visual C++ 2010 projesinde iki sınıf vardır - CMemMapApi ve CMemMapFile.

Aynı işlevi yerine getirirler - dosyalarla olağan çalışma tarzında sanal bellekle (Bellek Eşleme) çalışmak.

  • Bellekte bir dosya oluşturun;
  • Veri yazma ve okuma;
  • Uygulamalar arasında veri alışverişi yapabilme. MetaTrader 4 ve MetaTrader 5 arasında dahil.
Bellek ile çalışırken, bilgi alışverişi hızında büyük bir kazanç elde edersiniz.

Ana uygulama elbette bilgi alışverişidir:
  • Aynı bilgisayarın terminalleri arasındaki işlem kopyalayıcılarında
  • Arbitraj uzmanları oluşturmak için fiyat tekliflerinin değişimi vb.

Ancak bunu Uzman Danışmanların verilerini geçici olarak depolamak için de kullanabilirsiniz.

CMemMapFile ve CMemMapApi sınıfları arasındaki fark, CMemMapApi'nin sadece WinApi fonksiyonlarının bir sarmalayıcısı olmasıdır.

CMemMapFile'ın kolaylığı, dosya adını, tanıtıcısını ve geçerli okuma/yazma konumunu saklaması ve dosya boyutu üzerinde gerekli tüm kontrolleri gerçekleştirmesidir.
Ancak CMemMapApi nesnesi aynı anda birden fazla bellek dosyasını işleyebilirken, CMemMapFile nesnesi yalnızca tek bir dosyayı işler.

Mevcut DLL projesinde, birkaç bellek dosyasıyla çalışmayı düzenlemek için tüm dışa aktarılan işlevler tam olarak CMemMapApi'den alınmıştır.
CMemMapFile sınıfı diğer C++ projelerinde bellek ile çalışmak için yapılmıştır.

DLL'den dışa aktarılan işlevler:
int MemOpen(string path,int size,int mode,int &err[]);                // bellekte bir dosya açar/oluşturur, tanıtıcıyı döndürür
void MemClose(int hmem);                                             // bellekteki dosyayı kapatır
int MemGrows(int hmem,string path,int newsize,int &err[]);            // bellekteki dosyanın boyutunu artırır
int MemGetSize(int hmem, int &err[]);                                   // bellekteki dosyanın boyutunu döndürür
int MemSetSize(int hmem, int size, int &err[]);                     // bellekteki dosyanın boyutunu ayarlar
int MemWrite(int hmem,int &v[], int pos, int size, int &err[]);      // v vektörünü belirtilen pos konumundan belleğe yaz, boyut boyutu
int MemRead(int hmem, int &v[], int pos, int size, int &err[]);      // v vektörünü belirtilen pos konumundan boyut boyutuyla oku
int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]); // belirtilen konumdan belleğe belirtilen bayt sayısı kadar veri yaz
int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]); // bellekten belirtilen konumdan belirtilen bayt sayısı kadar veri okuma

MetaTrader 5'te DLL kullanma örnekleri - Fiyat tekliflerini izleme (eşleme örneği)

MemWriteStr fonksiyonunun çalışması düzeltildi


MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/816

Tekliflerin izlenmesi (haritalama için örnek) Tekliflerin izlenmesi (haritalama için örnek)

Dosya Eşleme işlevleriyle çalışmak için DLL kullanımına bir örnek. Bu örnekte, başlatılan Uzman Danışman bellekte sanal bir dosya oluşturur ve içindeki sembol fiyat teklifini güncellemeye başlar. Diğer terminallerde EA'lar başlatıldığında, bu EA'lar oluşturulan dosyayı açar ve benzer şekilde içindeki fiyat tekliflerini güncellemeye başlar. Böylece, Uzman Danışmanlar fiyat tekliflerini tek bir ortak dosya üzerinden değiştirirler.

StopOutFiyatı StopOutFiyatı

Komut dosyası, bir Stop Out'un (bir pozisyonun zorla kapatılması) gerçekleşebileceği fiyatı ve Serbest Marjin değerinin negatif hale geldiği fiyatı hesaplar.

Simple_Session_Price_Change Simple_Session_Price_Change

Mevcut sembol üzerinde işlem seansının açılışından bu yana fiyat değişimini % olarak gösteren en basit gösterge.

iForexSessions iForexSessions

Forex Piyasası Oturumlarını (Sidney, Tokyo, Londra, New York) vurgular.