Objectget ve objectgetvaluebyshift sorusu - sayfa 2

 
honest_knave :

Merhaba, kod gönderirken lütfen SRC butonunu kullanın.

Sarı renkteki tüm kodlar 'for' döngüsünün DIŞINDADIR.

Yani 'name' değeri her zaman son nesnenin adıdır.


Belki şunu deneyin (fiyat1 ve fiyat2'nin zaten başka bir yerde bildirildiğini varsayarsak):

Yardımın için çok teşekkürler. Çalıştığından emin olmak için günlükte fiyatı1 görmek için nasıl yazdırılır.
 
Rajakumar1 :
Yardımın için çok teşekkürler. Çalıştığından emin olmak için günlükte fiyatı1 görmek için nasıl yazdırılır.
İsmi yazdırdığınız gibi...
 int obj_total = ObjectsTotal ();
   string name;
   for ( int j = 0 ; j<obj_total; j++)
     {
      name = ObjectName (j);
       Print (j, "Object - " , name);
       if ( ObjectType (name) == OBJ_TREND && name == "Trendline1-m30" )
        {
         price1 = ObjectGetValueByShift (name, 0 );
         Print ( "price1: " , price1);
        }

       if ( ObjectType (name) == OBJ_TREND && name == "Trendline2-m30" )
        {
         price2 = ObjectGetValueByShift (name, 0 );
         Print ( "price2: " , price2);
        }
     }
 
honest_knave :
İsmi yazdırdığınız gibi...
Teşekkürler. EA'da print komutuna sahibim. Dergide basılmıyor . Çıktıyı nereye yazdırıyor?
 
Rajakumar1 :
Teşekkürler. EA'da print komutuna sahibim. Dergide basılmıyor. Çıktıyı nereye yazdırıyor?

Uzmanlar (Günlük'ün solundaki sekme)
 
honest_knave :

Uzmanlar (Günlük'ün solundaki sekme)
Trend çizgisi çizen bir göstergem var. EA, gösterge tarafından çizilen trend çizgilerine dayanmaktadır. Değerleri neden yazdırmadığını kontrol etmenin bir yolu var mı? Dosyaları ekliyorum. Sizi rahatsız ettiğim için özür dilerim. Yardımın için teşekkürler.
 
Rajakumar1 :
Trend çizgisi çizen bir göstergem var. EA, gösterge tarafından çizilen trend çizgilerine dayanmaktadır. Değerleri neden yazdırmadığını kontrol etmenin bir yolu var mı? Dosyaları ekliyorum. Sizi rahatsız ettiğim için özür dilerim. Yardımın için teşekkürler.


Çeşitli noktalarda Print ifadeleri ekleyerek kodunuzu gözden geçirmeniz gerekecek.

Bu şekilde sorununuzu takip edebilirsiniz.

Çağrılmayan işlevleri veya beklenmeyen değişken değerlerini aramanız gerekir.

Biraz zaman alacak, ancak kendi başınıza yapabileceğiniz bir şey.

Örneğin, her tikte 1 artan bir değişkene sahip bir EA'm var.

Neden bazen değişkenin 0'a sıfırlandığını bilmiyorum


 #property strict

int myVariable;

int OnInit ()
  {
   myVariable = 0 ;
   Print ( __FUNCTION__ , " // myVariable = " , myVariable);
   EventSetTimer ( 5 );
   return ( INIT_SUCCEEDED );
  }

void OnTimer ()
  {
   myVariable = 0 ;
   Print ( __FUNCTION__ , " // myVariable = " , myVariable);
  }

void OnTick ()
  {
   myVariable++;
   Print ( __FUNCTION__ , " // myVariable = " , myVariable);
  }


Ve çıktı:




myVariable'ın her tıklamada 1 arttığını görebiliyorum, ancak OnTimer() onu sıfıra sıfırlıyor.

Artık sorunun nerede olduğunu biliyorum.

----

Veya bazı kullanıcılar bununla ilgili sorunları bildiriyor olsa da, MetaEditor'da yerleşik olarak bulunan hata ayıklama işlevini kullanmayı deneyebilirsiniz... YMMV

 
honest_knave :


Çeşitli noktalarda Print ifadeleri ekleyerek kodunuzu gözden geçirmeniz gerekecek.

Bu şekilde sorununuzu takip edebilirsiniz.

Çağrılmayan işlevleri veya değişkenlerin beklenmedik değerlerini aramanız gerekir.

Biraz zaman alacak, ancak kendi başınıza yapabileceğiniz bir şey.

Örneğin, her tikte 1 artan bir değişkene sahip bir EA'm var.

Neden bazen değişkenin 0'a sıfırlandığını bilmiyorum



Ve çıktı:

Teşekkürler. Dosyaları sileyim mi?



myVariable'ın her tıklamada 1 arttığını görebiliyorum, ancak OnTimer() onu sıfıra sıfırlıyor.

Artık sorunun nerede olduğunu biliyorum.

----

Veya bazı kullanıcılar bununla ilgili sorunları bildiriyor olsa da, MetaEditor'da yerleşik olarak bulunan hata ayıklama işlevini kullanmayı deneyebilirsiniz... YMMV

 
Rajakumar1 :
Teşekkürler. Dosyaları sileyim mi?
 
Rajakumar1 :
Teşekkürler. Dosyaları sileyim mi?


Bu sizin kararınız - bu 2 gösterge arasında yaklaşık 800 satır kod var... birinin sizin için gözden geçirme zamanı olabilir.

Ancak önce sorunu kendiniz daraltarak daha hızlı bir çözüm elde edebilirsiniz.

İyi şanlar


 
honest_knave :


Bu sizin kararınız - bu 2 gösterge arasında yaklaşık 800 satır kod var... birisinin sizin için gözden geçirmek için zamanı olabilir.

Ancak önce sorunu kendiniz daraltarak daha hızlı bir çözüm elde edebilirsiniz.

İyi şanlar


Yardımın için çok teşekkürler. İlk bakılacak herhangi bir alan var mı? Meta düzenleyici yalnızca uyarıları gösterir. Hata yok.

Neden: