değişkenlerin davranışlarıyla ilgili yanlış anlamalar - sayfa 7

 

EA'yı hafta sonu testi için start() olmadan yeniden tasarladı

1. çizelgeye koyun

2. parametreleri değiştir

3. Günlükte, int'nin (yeşil renk) aksine dizenin (mavi renk) harici değişkenden hatalı değerler aldığı açıktır.

 extern string ValueString = "DDD" ;
extern int     ValueInt    = 10 ;  
     
string tempString= "val" ;
int     tempInt   = 0 ;

bool    firsttime= true ;
       
int init() {  
   if (firsttime) {     // значение присваевается тольо ОДИН раз   
       Print ( "иницилизация глобальных переменных" );
       Print ( "tempString = " ,tempString);
       Print ( "tempInt    = " ,tempInt);
      
       Print ( "однократное присваение внешних значений глобальным переменным" );
      tempString=ValueString; 
      tempInt   =ValueInt; 
      firsttime = false ; 
       Print ( "ValueString: " ,ValueString, " < >" , "  tempString: " ,  tempString);
       Print ( "ValueInt:     " ,ValueInt,   " < >" , "  tempInt:      " ,tempInt);
   } else {
       Print ( "меняем входные параметры" );
       Print ( "ValueString: " ,ValueString, " < >" , "  tempString: " ,  tempString);
       Print ( "ValueInt:     " ,ValueInt,   " < >" , "  tempInt:      " ,tempInt);
   }                          
}

int start() {}





Dosyalar:
testinit.mq4  1 kb
 
wlad :

EA'yı hafta sonu testi için start() olmadan yeniden tasarladı

1. çizelgeye koyun

2. parametreleri değiştir

3. Günlükte, int'nin (yeşil renk) aksine dizenin (mavi renk) harici değişkenden hatalı değerler aldığını görebilirsiniz.





Ama bu gerçekten bir cant .... Danışman yeniden başlatıldığında harici düzeyde ayarlanan değişkenler başlatılmaz, ancak önceki yeniden başlatmalardan biraz saçmalık alırlar .. Wlad, sabrınız için özel teşekkürler)))))
 

Ve burada da konuyla ilgili ... içinde olduğu basit bir gösterge

#özellik göstergesi_renk1 Kırmızı
ve

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Aqua);

Renk, kalınlığıyla birlikte Kırmızı kalır... Göstergeyi zorla çıkarıp yeniden başlatana kadar, yani. basit yeniden derleme yardımcı olmaz. Parametrelerin bir dip delikten çekildiği ortaya çıktı .... Çöp, elbette, ama bunun altına wlad var))))

 
Açıkçası bu bağlı, uzun zamandır fark ettim, bazen danışman kodunu değiştiriyorsunuz, derliyorsunuz ve önceki kod siz terminali yeniden başlatana kadar çalışıyor. Danışmanı yeniden başlatmak bile yardımcı olmuyor. Ama bu her zaman olmuyor, bu yüzden söveyi sakince aldım. Eh, var, evet var... Çok fazla müdahale etmiyor gibi görünüyor.
 

Evet,

geliştiriciler düzeltirse iyi olur

Yoksa buraya yazıp hemen yardım masasına dönmek anlamsız mı?

bu arada nereye gidebilirsin

 
Sepulca :
Ah ... tebrikler mnu, bir nevi büyükbaba oldum, pek değil, çocuklar kabul etti ......)))

Tebrikler! dede kaç yaşında
 

söyle bana

desteğe nasıl ulaşabilirim

hiçbir yerde bulunamadı

 
wlad :

söyle bana

desteğe nasıl ulaşabilirim

hiçbir yerde bulunamadı

Dördüncü forumdan herhangi bir şekilde doğrudan. Belki beşinciden. mql5.com profilinizdeki "Hizmet Masası" bağlantısına bakın (solda, profil hizmetleri listesinin bulunduğu sütunda).
 
MetaDriver :
Dördüncü forumdan herhangi bir şekilde doğrudan. Belki beşinciden. mql5.com profilinizdeki "Hizmet Masası" bağlantısına bakın (solda, profil hizmetleri listesinin bulunduğu sütunda).
teşekkürler, bir bakacağım
 
wlad :

EA'yı hafta sonu testi için start() olmadan yeniden tasarladı

1. çizelgeye koyun

2. parametreleri değiştir

3. Günlükte, int'nin (yeşil renk) aksine dizenin (mavi renk) harici değişkenden hatalı değerler aldığını görebilirsiniz.



Yeni derleyicide yeniden üretilemez. Eskisi artık yönetmeyecek.

extern string ValueString = "DDD" ;
extern int     ValueInt    = 10 ;  
     
string tempString= "val" ;
int     tempInt   = 0 ;

bool    firsttime= true ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (firsttime) 
     {     // значение присваевается тольо ОДИН раз   
       Print ( "иницилизация глобальных переменных" );
       Print ( "tempString = " ,tempString);
       Print ( "tempInt    = " ,tempInt);

       Print ( "однократное присваение внешних значений глобальным переменным" );
      tempString=ValueString;
      tempInt   =ValueInt;
      firsttime = false ;
       Print ( "ValueString: " ,ValueString, " < >" , "  tempString: " ,tempString);
       Print ( "ValueInt:     " ,ValueInt, " < >" , "  tempInt:      " ,tempInt);
        } else {
       Print ( "меняем входные параметры" );
       Print ( "ValueString: " ,ValueString, " < >" , "  tempString: " ,tempString);
       Print ( "ValueInt:     " ,ValueInt, " < >" , "  tempInt:      " ,tempInt);
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

  }
//+------------------------------------------------------------------+