Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 61
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Artık geçmişte 1000'den fazla işlem olduğunda ve örneğingeçmiş işleme işlevini çağırırken bir sorunla karşılaştım, örneğin geçmiş karını hesaplayın. + cari işlemlerin karını ekleyin - grafikteki bilgiler yavaşlamaya başlar ve terminal donar. Onlar. alıntılar gecikmeli olarak gelir.
Kod olmadan, sadece tahmin edilebilir.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri
Alexey Navoykov , 2017.07.21 17:04
MQL'de çoklu kalıtımın olmaması elbette iç karartıcı. Ancak, doğaçlama yollarla çıkabilirsiniz: şablonlar ve makrolar - onlarsız)
İşte yığılmış bir seçenek. Tüm kaynak sınıflar, bir üst sınıf tanımlayan şablonlar olarak bildirilmelidir .
Elbette, sınıfların paralel olarak değil (gerçek çoklu kalıtımda olduğu gibi) sıralı olarak (belirlediğimiz sırayla) miras alınması nedeniyle burada nüanslar vardır. Özellikle, bir aşırı yük meydana geldiğinde farklı önceliklere sahip olacaklardır. Ayrıca, aynı şablon sınıfı birkaç kez kalıtım zincirine katılırsa, bunlar birbiriyle hiçbir şekilde ilişkili olmayan tamamen farklı sınıflar olacaktır. Bu yüzden burada dikkatli olmalısınız. Ancak arayüzlerde sorun yok, kısıtlama olmadan devralabilirsiniz.
Ve eğer şablonlar şeklinde beyan olmadan?
Örneğin, iki hazır kendi kendine yeterli kütüphanemiz var:
class CLib1 : genel CClass1 { }; ve
sınıf CLib2 : genel CClass2 { };
Program sınıfında aşağıdaki kalıtımı yapmak gereklidir:
CLib1--> CLib2 --> CProgram, böylece her iki kitaplık da CProgram sınıfında kullanılabilir. Ve buna göre, CLib1 kitaplığı CLib2'de mevcuttu
Bu durumda, her iki kütüphanenin kodunu bir şekilde değiştirmek imkansızdır.
Mümkün mü?
Çoklu kalıtımla, muhtemelen şöyle görünecektir:
sınıf CProgram : genel CLib1,CLib2 { };
Ve eğer şablonlar şeklinde beyan olmadan?
Örneğin, iki hazır kendi kendine yeterli kütüphanemiz var:
class CLib1 : genel CClass1 { }; ve
sınıf CLib2 : genel CClass2 { };
Program sınıfında aşağıdaki kalıtımı yapmak gereklidir:
CLib1--> CLib2 --> CProgram, böylece her iki kitaplık da CProgram sınıfında kullanılabilir. Ve buna göre, CLib1 kitaplığı CLib2'de mevcuttu
Bu durumda, her iki kütüphanenin kodunu bir şekilde değiştirmek imkansızdır.
Mümkün mü?
Çoklu kalıtımla, muhtemelen şöyle görünecektir:
sınıf CProgram : genel CLib1,CLib2 { };
Bunu yaparsanız hiçbir şey kaybetmezsiniz:
class CProgram { CLib1 lib1; CLib2 lib2; };
Bunu yaparsanız hiçbir şey kaybetmezsiniz:
Eşzamansız Kopyalama işlevlerinden (CopyRates, CopyTicks, vb.) veri almanın muhtemelen en iyi yolu EventChartCustom .
Bu özellikle göstergeler için geçerlidir.
OnDeinit'teki (EA, gösterge değil) sadece bir hesap - AccountInfoString (ACCOUNT_SERVER) değil, ticaret sunucusunda bir değişiklik olduğunu öğrenmek mümkündür.
hafıza
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Strateji test cihazından memnuniyetsizliğim. MQL geliştiricilerine
fxsaber , 2017.12.04 09:11
Sonuç
Fiyat tablosunda diğer sembollerin fiyat çizelgelerini üst üste koyan bütün bir gösterge sınıfı vardır. Tekdüze bir şekilde - gösterge tamponlarından yapılırlar .
Ancak, MT5'in harika bir OBJ_CHART'ı vardır ve bu görevi, gösterge arabellekleri olmadan çok daha güzel bir şekilde uygulamanıza olanak tanır.
Örneğin, herhangi bir göstergeyi fırlatabilir ve başka bir sembolde nasıl göründüğünü hemen görebilirsiniz.
Köle şeması - ana grafiğin arka planı olarak birkaç çizelge görüntülenir.
Örneğin, herhangi bir göstergeyi atabilir ve başka bir sembolde nasıl göründüğünü hemen görebilirsiniz.
Köle şeması - ana grafiğin arka planı olarak birkaç çizelge görüntülenir.