Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
- Görüntülemeler:
- 52
- Derecelendirme:
- Yayınlandı:
-
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.
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)
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ı
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
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
Forex Piyasası Oturumlarını (Sidney, Tokyo, Londra, New York) vurgular.