MT5 için dilekler - sayfa 113

 

MQL'de, belirli bir sembol/zaman çerçevesi için değiştirilen çubukların sayısını döndürecek bir işlev eksikliği vardır. Her seferinde tüm geçmişi kontrol etmeli ve değişiklikleri bulmak için daha önce sahip olduğunuzla karşılaştırmalısınız. Bu çok mantıksızdır, tüm geçmişi bir dizide depolamak için bellek israfı ve ayrıca bu geçmişi elde etme ve karşılaştırma maliyeti gerektirir. Özellikle geçmiş geçmişin periyodik olarak bellekten silindiği ve daha sonra diskten yüklenmesi gereken MT5'te. Genelde kodun karmaşıklığı konusunda sessiz kalırım. Tarihin değişip değişmediğini kesin olarak bilen bir Metatrader'a sormak yerine çok saçma şeyler.

Göstergelerin benzer bir mekanizması vardır (önceki_hesaplanan parametre), ancak yalnızca göstergenin üzerinde çalıştığı sembol ve dönem için. Ve hesaplamalara farklı semboller katılabilir. Bu nedenle, herhangi bir sembol için güncellenen çubukların sayısını (veya güncellenen çubukların başladığı zamanı) döndüren bir işleve ihtiyacımız var.

 
Beyler, geliştiriciler, MetaEditor'da normal sözdizimi vurgulaması yapmayı planlıyor musunuz? Onlar. yani tipler/sınıflar bir renkte, değişkenler başka bir renkte, fonksiyonlar üçüncüde, makrolar dördüncüde vb. Genel olarak, normal IDE'lerde olduğu gibi. Aksi takdirde, yalnızca normal MQL araçları vurgulanır. Sonuç olarak, OOP'nin aktif kullanımı ile tüm kodlar düz siyah metne dönüşür (işlemcileri saymaz). Sınıfın adının nerede olduğunu, nesnenin nerede olduğunu, işlevlerin nerede olduğunu hemen ayırt edemezsiniz. Okuması çok zor. Çoğu zaman, kodun görselleştirilmesi adına (siyah bir kütle gibi görünmesin diye) normal ilkellerle geçinmenin daha keyifli olduğunu düşünürken buluyorum kendimi. Ve olmamalı.
 
meat :
Beyler, geliştiriciler, MetaEditor'da normal sözdizimi vurgulaması yapmayı planlıyor musunuz? Onlar. yani tipler/sınıflar bir renkte, değişkenler başka bir renkte, fonksiyonlar üçüncüde, makrolar dördüncüde vb. Genel olarak, normal IDE'lerde olduğu gibi. Aksi takdirde, yalnızca normal MQL araçları vurgulanır. Sonuç olarak, OOP'nin aktif kullanımı ile tüm kodlar düz siyah metne dönüşür (işlemcileri saymaz). Sınıfın adının nerede olduğunu, nesnenin nerede olduğunu, işlevlerin nerede olduğunu hemen ayırt edemezsiniz. Okuması çok zor. Çoğu zaman, kodun görselleştirilmesi adına standart ilkellerle uğraşmanın daha keyifli olduğunu düşünürken buluyorum (böylece siyah bir kütle gibi görünmüyor). Ve olmamalı.
Diğer derleyicilerde aç!!!
 

Ne yazık ki geliştiricilerin hiçbiri bu konuya yanıt vermiyor. İlginç bir şekilde, buraya bile bakıyorlar ... Servis masasında da tüm öneriler genellikle cevapsız kalıyor (sadece hatalara cevap veriyorlar). İyi değil.

Ama devam edelim.

Zaman zaman öyle bir sorunla karşılaşıyorum ki, çalışan bir Uzman Danışmanı/göstergeyi açık bir şekilde tespit etmek imkansız. Örneğin, çalışma sürecindeki bir danışman, özellikle bu danışmana yönelik (daha doğrusu bu örnek için) belirli bir dosya (veya global bir değişken ) oluşturur ve kullanır. Ve diğer EA'lar bu dosyayı/genel değişkeni kullanmamalıdır, kendi değişkenleri vardır. Öyleyse, bir EA, terminali yeniden başlattıktan veya parametreleri yeniden başlattıktan sonra dosyasını/değişkenini nasıl bulabilir?

Dosya, danışmanın/sembolün/zaman çerçevesinin adıyla başlıklandırılmışsa, bu danışmanın aynı grafikteki başka herhangi bir örneği bu dosyayı açacaktır. Ancak, pencere tanıtıcısı kullanılıyorsa, yeniden başlatmanın ardından tanıtıcı artık geçerli olmayacaktır.

Kısacası, danışmanın/göstergenin yeniden başlatıldığında değişmeyecek benzersiz bir kimlik numarası gereklidir. Böyle bir kimlik, örneğin, Uzman Danışmanın çizelgeye eklendiği zaman olabilir. Bu parametreyi MQLInfoInteger'a eklemenizi öneririm.

 

MetaEditor'e bir adım geriye gidebilmek istiyorum.

Yani, "Function_A" işlevinden "Function_B" işlevine bir çağrı var:

 bool Function_A( void )
  {
   Function_B()
   return ( true );
  }

" Function_B " metnine ve daha fazlasına tıkladıktan veya orta düğme veya Alt+G'ye tıkladıktan sonra Function_B işlevine geçiş gerçekleştirilir. Kodu gözden geçirdikten sonra, çağrının yerine - Function_A işlevine geri dönmeniz gerekir. Ama böyle bir işlevsellik yok. Ve istiyorum.

 
Karputov Vladimir :

MetaEditor'e bir adım geriye gidebilmek istiyorum.

Yani, "Function_A"işlevinden "Function_B" işlevine bir çağrı var:

" Function_B " metnine ve daha fazlasına tıkladıktan veya orta düğme veya Alt+G'ye tıkladıktan sonra Function_B işlevine geçiş gerçekleştirilir. Kodu gözden geçirdikten sonra, çağrının yerine - Function_A işlevine geri dönmeniz gerekir. Ama böyle bir işlevsellik yok. Ve istiyorum.

Evet, uygun olurdu. Servis Masasına da yazın.

Tanıma ( Alt+G ) hızlı erişim vardır. Tanımdan hızlı bir geçişe ihtiyacımız var.

 
Karputov Vladimir :

MetaEditor'e bir adım geriye gidebilmek istiyorum.

Yani, "Function_A"işlevinden "Function_B" işlevine bir çağrı var:

" Function_B " metnine ve daha fazlasına tıkladıktan veya orta düğme veya Alt+G'ye tıkladıktan sonra Function_B işlevine geçiş gerçekleştirilir. Kodu gözden geçirdikten sonra, çağrının yerine - Function_A işlevine geri dönmeniz gerekir. Ama böyle bir işlevsellik yok. Ve istiyorum.

ileri adım Ctrl+-, geri adım Ctrl+Shift+-
 
Vitalie Postolache :
ileri adım Ctrl+-, geri adım Ctrl+Shift+-
Doğru değil. Çalışmıyor.
 
Karputov Vladimir :
Doğru değil. Çalışmıyor.

Garip, benim için çalışıyor. Alt+G işlev çağrısına tıkladım ve işlev tanımına atladım, ardından Ctrl+- tuşlarına basıp geri atladım.

Yukarıdaki kombinasyonları karıştırdım, tam tersi: ileri adım Ctrl+Shift+ - , geri adım Ctrl+ - , üzgünüm.

 
Karputov Vladimir :
Doğru değil. Çalışmıyor.
Sınanmış. Benim için çalışıyor. )