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
Böyle bir örnek olur...
Bunun gibi bir şey (bir yapı değil, elbette bir sınıf):
Nereye ne ekleneceği bence açık.
Sonunda şunu unutmayın:
yeniden formüle edeceğim. Bir işlevi tanımlarken mümkün olup olmadığını merak ediyor musunuz?
biçimsel parametresi olarak, yapının adının göstergelerini göz ardı ederek, yapı tipinin yalnızca bir değişkenini belirtin mi? Onlar. örneğin, void funcName(MqlTradeRequest & req) değil, sadece void funcName(& req)?
Evet. herhangi bir basit yapı için genel bir işleve ihtiyaç vardır --- Yöntem yok, dyn. diziler. vb. --- tanımlanmış veri türlerinin saf bir dizisi.
Çünkü senaryonun kompozisyonu benim tarafımdan önceden belirlenir, ilgileneceğim yapıların sayısını açıkça belirleyebilirim.
Ancak bu yapılardan herhangi birini tek adlı bir işleve geçirmek için aşırı yükleme kullanmanız gerekir.
Burada zorluklar ortaya çıkıyor.
1. yapıların sayısı sınırlıdır, çünkü daha fazla sayıda elemanla aşırı yükleme işi yavaşlatacaktır.
2. Aşırı yük işlevlerini kopyalarken kendim hata yapabilirim.
PS// funWrite() işlevi belirli hesaplamaları gerçekleştirir ve belirli bir dizi ve hesaplanmış parametrelerle (hangi dizinden yazmaya başlanacak, kaç tane okunacak) FileWriteArray() işlevini yürütür.
Evet. herhangi bir basit yapı için genel bir işleve ihtiyaç vardır --- Yöntem yok, dyn. diziler. vb. --- tanımlanmış veri türlerinin saf bir dizisi.
Çünkü senaryonun kompozisyonu benim tarafımdan önceden belirlenir, ilgileneceğim yapıların sayısını açıkça belirleyebilirim.
Ancak bu yapılardan herhangi birini tek adlı bir işleve geçirmek için aşırı yükleme kullanmanız gerekir.
Açık. Bir süre önce , bir işlev tanımlarken dizilerin türünü belirtmemenin mümkün olup olmadığıyla ilgili benzer bir soru sormuştum. Biraz aşağıda, Rosh aşırı yüklenmeyi tavsiye etti.
Bu nedenle, void türüyle belirtilen bazı parametrelere sahip olan FileWriteArray() gibi "yerleşik" işlevlerin kendilerinin aşırı yüklenmiş işlevler olduğu sonucuna vardım. Sadece uygulamalarını görmüyoruz.
Açık. Bir süre önce , bir işlev tanımlarken dizilerin türünü belirtmemenin mümkün olup olmadığına ilişkin benzer bir soru sormuştum. Biraz aşağıda, Rosh aşırı yüklenmeyi tavsiye etti.
Bu nedenle, void türüyle belirtilen bazı parametrelere sahip olan FileWriteArray() gibi "yerleşik" işlevlerin kendilerinin aşırı yüklenmiş işlevler olduğu sonucuna vardım. Sadece uygulamalarını görmüyoruz.
Yerleşik işlevler, tam teşekküllü bir programlama dilinde yazılmıştır.
Örneğin C'de herhangi bir sayıdaki değişkenleri iletebilirsiniz ve fonksiyonda zaten geçirilen parametrelerin bir listesini alabilir ve bunları göz önünde bulundurabilirsiniz.
void fun(...) { }
MQL5'te böyle bir olasılık yoktur. Özellikle, basit veri türleri ve yapılarına yönelik referanslar ve işaretçiler eksik...
Muhtemelen güvenlikle ilgili bir şeydir. Veri erişimi. Sandbox'tan çıkış .
Ancak yine de bu özelliklerin MQL5'te uygulanmasını istiyorum.
Muhtemelen güvenlikle ilgili bir şeydir. Veri erişimi. Sandbox'tan çıkış .
Ancak yine de bu özelliklerin MQL5'te uygulanmasını istiyorum.
Bunun gibi bir şey (bir yapı değil, elbette bir sınıf):
Nereye ne ekleneceği bence açık.
Sonunda şunu unutmayın:
Anladığım yardım bu: gerçek ve oldukça spesifik. Sayesinde. artı nerede?
Bu arada ... Anladım - bu seçenek benim için yeterli. Ama bir formalist olarak kalmak istemiyorum... bu yüzden meraktan, iki boyutlu bir dizi düzenlemeye çalışmanın yine de zarar vermeyeceğine karar verdim. MQL, son on yılda güvenle unuttuğum C/C++'ı biraz andırıyor. Şimdi bunu yapmaya çalıştım (burada bir döngü olmadan - özellikle basitleştirdim):
Derleyici bir hata veriyor: "'MABuffer' - parametre dönüştürmeye izin verilmiyor".
Merak ediyorum neyi yanlış yapıyorum? Yanılmıyorsam, çok boyutlu dizili bir sınıf bildirirken boyutlardan birini sayısal olarak belirtmek ve böylece statik hale getirmek gerekir mi? Bu arada ArrayResize , ilk boyut için yeni boyutu ayarlar.
x100intraday :
Merak ediyorum neyi yanlış yapıyorum?
1) SetIndexBuffer , aynı boyutta bir çift diziyle çalışır.
2 ) Neden TBuffer * kullandığınız belli değil, yani. gerekli olmayan yerlerde dinamikleri kullanmak?
3) (İPUCU) Örnekte, biraz bellek ve birkaç yüz döngüden tasarruf etmek için bir sınıfla değil, bir yapıyla geçmek oldukça mümkündü.
mql5 :
3) (İPUCU) Örnekte, biraz bellek ve birkaç yüz döngüden tasarruf etmek için bir sınıfla değil, bir yapıyla geçmek oldukça mümkündü.
Uzman Danışman, başka bir zaman diliminde bir gösterge kullanır. Expert Advisor'daki testlerde, göstergeden yanlış veriler görünüyor.
Danışmanın kendisi M5'te ve gösterge H4'te çalışır. Aynı zaman diliminde (M5) çağrılan göstergeler doğru değerleri döndürür.
Döndürülen değerler gösterge değerlerine benzer, ancak gösterge fiyat tablosu penceresinde üst üste bindirildiğinde görünen gerçek değerlerden farklıdır.
Sorun nedir?
Örnek bir gösterge çağrı kodu: