Hatalar, hatalar, sorular - sayfa 815

 
tol64 :

Söyleyin bana, çağrılan göstergenin adı bir değişkende yer alıyorsa gösterge tanıtıcısını alırken neden bir hata oluşuyor?

Yani, böyle bir hata yok:

4802 hatasını şu şekilde alıyoruz (Gösterge oluşturulamıyor):

tester_indicator hakkında buradan bilgi edinin .
 
marketeer :
tester_indicator hakkında buradan bilgi edinin .
Evet, defalarca okudum ve tekrar okudum. )) Ama ihtiyacınız olanı elde etmek için bir şey başarısız olur. Ve değişken göstergesinin adını ayarlamam gerekiyor.
 
tol64 :
Evet, okudum ve tekrar tekrar okudum. )) Ama ihtiyacınız olanı elde etmek için bir şey başarısız olur. Ve değişken göstergesinin adını ayarlamam gerekiyor.
Yani test_indicator özelliğini eklediniz mi? Görünüşe göre bu olmadan olmaz.
 
marketeer :
Yani test_indicator özelliğini eklediniz mi? Görünüşe göre bu olmadan olmaz.

Sınanmış. Bir şey doğru çalışmıyor. Bir örnek verebilir misiniz (belki yanlış yapıyorum)?

PS Çıktı . Hiçbir yerde daha kolay. dinlenmeye gitti. ))

Not 2. Ancak yine de, bunun tüm göstergeleri test_indicator özelliği aracılığıyla kaydetmeniz gerektiği gerçeğine bağlı olduğu ortaya çıktı. Yani, göstergenin adı harici bir parametre tarafından ayarlanmışsa ve kullanıcının yeni bir göstergesi varsa, o zaman tekrar koda girmeniz gerekir. Bu tam olarak istediğimiz şey değil.

 
tol64 :

Not 2. Ancak yine de, bunun tüm göstergeleri test_indicator özelliği aracılığıyla kaydetmeniz gerektiği gerçeğine bağlı olduğu ortaya çıktı. Yani, göstergenin adı harici bir parametre tarafından ayarlanmışsa ve kullanıcının yeni bir göstergesi varsa, o zaman tekrar koda girmeniz gerekir. Bu tam olarak istediğimiz şey değil.

Beşte böyle yapılır. Dördünde böyle bir bağımlılık yoktu, ben bunu keyfi olarak seçilmiş diğer birkaç hindiden hindi yapmak için kullandım. Belki geliştiriciler bu konuda ne düşündüklerini ifade ederler.
 
marketeer :
Beşte böyle yapılır. Dördünde böyle bir bağımlılık yoktu, ben bunu keyfi olarak seçilmiş diğer birkaç hindiden hindi yapmak için kullandım. Belki geliştiriciler bu konuda ne düşündüklerini ifade ederler.

Gerçek şu ki, MT5 test cihazındaki Expert Advisors, terminalin dışında başlatılır ve MT4'teki tüm kitaplık ortamına sahip değildir.

Örneğin, bir Uzman Danışman genellikle buluta gönderilir ve ek bağlantıları aktarmak için şunları yapmanız gerekir:

  1. çağrılarda statik gösterge adlarını kullanın; bu, derleyicinin uzman bağımlılıklarını otomatik olarak belirlemesine olanak tanır
  2. manuel olarak bir bağımlılık listesi oluşturmak için mülk aracılığıyla gerekli göstergelerin bir listesini açıkça belirtin

Dinamik gösterge çağrıları kullanılıyorsa, kullanılanların listesini manuel olarak girmeniz gerekir. Bir üçüncü taraf testi başlattığında, tüm bağımlı dosyalar EA ile birlikte gönderilir. Bunlar yerel (zaten terminalin dışındalar) veya uzak veya bulut aracıları olabilir.

Bu, "başlangıçta tıklayın ve başka bir şey düşünmeyin, her şey otomatik olarak çalışır" için ödemeniz gereken bedeldir.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
Renat :

Gerçek şu ki, MT5 test cihazındaki Expert Advisors, terminalin dışında başlatılır ve MT4'teki tüm kitaplık ortamına sahip değildir.

Bu, "başlangıçta tıklayın ve başka bir şey düşünmeyin, her şey otomatik olarak çalışır" için ödemeniz gereken bedeldir.

Bu anlaşılabilir bir durumdur, ancak diğer yandan, olağan ve etkili esneklik kaybolduğundan, kullanıcıların düzenli olarak bir karşı sorusu vardır. Aslında yalnızca statik bağlantı modelini uyguladınız. Ve insanlar ayrıca dinamik bağlama ister. Teorik olarak bir şey buluta gitmiş, sayılmaya başlamış ve aniden harici bir hindiye dönmüş olsa bile, terminalden temsilciye aktarılan diğer tüm ortamlar gibi talep edip indirebilirsiniz. Bu doğru - sesli düşünmek. Bu soruyu ben sormadım ;-).
 

Belki de soru zaten gündeme getirildi, ancak forumda bulamadım.

Aşağıdaki kodda (test() yönteminde), bir nesneye sabit bir tanımlayıcı (referans) alırken ve onu sabit olmayan bir tanımlayıcıya atarken, derleyici (MetaEditor 5.00, Build 687) bir hata vermez:

 class A{
   public :
       void someDo() {}
};

class B{
   public :
       void B( A* aA ) : mA( aA ) {}
       const A* getA() { return (mA); }   
   private :
      A* mA;
};

void test(){
   A a;
   B b( GetPointer ( a ) );

   //Ошибки нет. И это правильно   
   const A* a1 = b.getA();
   //Ошибка есть: "...someDo' - call non-const method for constant object..". И это правильно   
   a1.someDo();
   
   //Ошибки нет. Это НЕ правильно(CONST A* B::getA())!
   A* a2 = b.getA();
   //ошибки нет. Правильно (а2 не const)
   a2.someDo();
}
 
mvk :

Belki de soru zaten gündeme getirildi, ancak forumda bulamadım.

Aşağıdaki kodda (test() yönteminde), bir nesneye sabit bir tanımlayıcı (referans) alırken ve onu sabit olmayan bir tanımlayıcıya atarken, derleyici (MetaEditor 5.00, Build 687) bir hata vermez:

hatasız böyle oluyor

 class A{
   public :
       void someDo() const {};
};
 

geliştiriciler için nesnelere işaretçilerin hızı hakkında bir soru


neden ilk kod

 class CSomeObj
{
public :
   double prm;
};

CSomeObj arr;

void OnStart ()
{
         EventSetTimer ( 1 );

         uint s0= GetTickCount ();
         for ( int i= 0 ; i< 100000000 ; i++) arr. prm= 10 ;
         Print ( "1=" , GetTickCount ()-s0);
        
        s0= GetTickCount ();
        CSomeObj * item= GetPointer (arr) ;
         for ( int i= 0 ; i< 100000000 ; i++) item. prm= 10 ;
         Print ( "2=" , GetTickCount ()-s0);
}

ikincisinden iki kez daha hızlı mı çalışıyor?

2012.08.21 09:56:40 bilgi (EURUSD,D1) 2=1654
2012.08.21 09:56:38 bilgi (EURUSD,D1) 1=795

hızı artırmak için optimize edebilir misiniz?

Neden: