Hatalar, hatalar, sorular - sayfa 1177

 
svds75 :

Merhaba. Bayrağı yalnızca W1'i veya yalnızca MN1'i görüntüleyecek şekilde manuel olarak ayarlamama rağmen, bir eğilim çizgisinin özelliklerini talep ederken res değişkeni neden her zaman doğru olduğunu söyleyin?

Yarılardan sadece birinde gösterilmesi gerekir.

...get... mülk alıyor. Ve eğer res=true sadece başarılı bir mülk ediniminin işaretiyse.

Özellikleri ayarlamak için ... set... seçeneğini kullanın.

 

Bir önceki yazımın devamında. Bilimsel dürtme yöntemini kullanarak, bir hataya yol açan sorunlu bir yer bulmayı başardım.

İşlevi olan böyle bir kütüphanemiz var:

//---- testbuglib.mq5 ------

#property library

class A { }; class B   { private :    A* a; public :    A* b; }; int Test() export {    return 0 ; }

Ve işte ana dosya:

#include <Files\File.mqh>   // тут можно указать любой файл mqh

#import "testbuglib.ex5"
   int Test();
#import  

int OnInit () {  Test(); return 0 ; }

Ortaya çıkan danışman çalışmıyor, günlük şunu gösteriyor: "EX5 yükleme başarısız"

Dosyalar:
TestBug.mq5  1 kb
 
svds75 :

Merhaba. Bayrağı yalnızca W1'i veya yalnızca MN1'i görüntüleyecek şekilde manuel olarak ayarlamama rağmen, bir eğilim çizgisinin özelliklerini talep ederken res değişkeni neden her zaman doğru olduğunu söyleyin?

Yarılardan sadece birinde gösterilmesi gerekir.

Yanlış sayıda parametre, işlevi 1. seçenek olarak çağırıyorsunuz, ancak ikinci seçenek olarak kullanmanız veya sonucu karşılaştırmanız gerekiyor.
 
TheLiteShadow :
Bu böyle, ancak her yeni çubukla belirtilen arabelleklerin tüm son "endekslerini" "temizlemek" gerektiği ortaya çıktı? Neden? MT4'te böyle bir durum yoktu, anlıyorum, ilk başlatma sırasında temizledim, ancak daha sonra, teorik olarak, MT'nin kendisi yapmalı, ancak teorik olarak, MT'nin başlatma sırasında yapması gerekir, programcı değil, gösterge arabelleği ne amaçla sadece bellek tahsisini anlamıyorum ...
Birkaç yıl önce bu soruyu sorduğumda, bunun optimizasyon amacıyla yapıldığı söylendi. Tam olarak ihtiyacınız olduğu kadar başlatacaksınız. Ve hemen orada bazı hesaplanmış verileri doldurursanız, önceden sıfır yazmanız gerekmez. MT5, MT4'ten birçok yönden farklıdır.
 
marketeer :
Birkaç yıl önce bu soruyu sorduğumda, bunun optimizasyon amacıyla yapıldığı söylendi. Tam olarak ihtiyacınız olduğu kadar başlatacaksınız. Ve hemen orada bazı hesaplanmış verileri doldurursanız, önceden sıfır yazmanız gerekmez. MT5, MT4'ten birçok yönden farklıdır.
Herkes MT4'ün MT5'ten farklı olduğunu anlıyor, ancak optimizasyon konusunda hemfikir olmazdım ve programcının ek olarak izlemesi gereken çok şey var, düşük seviyeli dillerle karşılaştırılamaz, ancak benim için çok gereksiz, genel olarak, açık, Teşekkürler ...
 
TheLiteShadow :
Yanlış sayıda parametre, işlevi 1. seçenek olarak çağırıyorsunuz, ancak ikinci seçenek olarak kullanmanız veya sonucu karşılaştırmanız gerekiyor.
Bunu da denedim. Bayraklar gerçekten çalışsa da (çizgi sadece bir yarıda görünür) ve uzman her iki bayrağın da açık olduğunu görür.
 long res;
ObjectGetInteger ( 0 , "line" , OBJPROP_TIMEFRAMES , OBJ_PERIOD_W1 | OBJ_PERIOD_MN1 ,res);
if (( bool )res) Alert ( "линия line показывается на OBJ_PERIOD_W1 и OBJ_PERIOD_MN1" );
 
svds75 :
Bunu da denedim. Bayraklar gerçekten çalışsa da (çizgi sadece bir yarıda görünür) ve uzman her iki bayrağın da açık olduğunu görür.

Ve aslında ne istiyorsun? Haftalık VEYA aylık bir zaman diliminde görünürlük talep ediyorsunuz. Bu nedenle, bunlardan en az biri etkinleştirilirse program true değerini döndürür.

2 aramadan sonra ayrıca talep edin.

 
svds75 :
Bunu da denedim. Bayraklar gerçekten çalışıyor olsa da (çizgi sadece bir yarıda görünüyor) ve uzman her iki bayrağın da açık olduğunu görüyor.

Öyleyse, görünürlüğü doğrudan ayarlamanız gerekebilir mi?

 ObjectSetInteger ( 0 , "line" , OBJPROP_TIMEFRAMES , OBJ_PERIOD_W1 );
 
svds75 :

Merhaba. Bayrağı yalnızca W1'i veya yalnızca MN1'i görüntüleyecek şekilde manuel olarak ayarlamama rağmen, bir eğilim çizgisinin özelliklerini talep ederken res değişkeni neden her zaman doğru olduğunu söyleyin?

Yarılardan sadece birinde gösterilmesi gerekir.

Satır her zaman var olduğundan, bu nedenle değer her zaman okunur. Çizginin görünmezliği, yokluğu anlamına gelmez.
 
barabashkakvn :

Öyleyse, görünürlüğü doğrudan ayarlamanız gerekebilir mi?

Hayır, manuel olarak ayarlamam gerekiyor, ancak programlı olarak kontrol etmem gerekiyor.