Değişkenleri bir döngünün arkasında mı yoksa bir döngünün içinde mi bildiriyorsunuz? - sayfa 8

 
Alexey Viktorov :
Mümkün değil ama kesinlikle yanlış. Sadece bir örnek: Açık pozisyonlar arasında geçiş yapıyorsunuz. Bir pozisyon bileti alırsınız, diğer pozisyon özelliklerini almak için kullanın. İki seçenek vardır, ya position özelliğini almak için her bir işleve PositionGetTicket(i) ekleyin ya da bir kez bir değişkene yazıp kullanın. Ama sonuçta, döngüden çıktığınızda, bu bilete artık kimse ihtiyaç duymuyor ... neden bu değişkeni OnTick () işlevinin gövdesinde veya küresel düzeyde daha da ilginç olarak ilan edelim?

Kendimi doğru ifade edemedim galiba...

Elbette, OnTick()'te bunlara ihtiyaç yoktur. Bilmiyorum, fonksiyonlarda döngüleri (ve orada gerekli olan değişkenleri) doğru bir şekilde çıkarmak mümkün mü?

not Ve genel olarak, herhangi bir proger, hangi değişkene ihtiyaç duyduğunu bilmeli ve görünürlüğünün kapsamını bağımsız olarak belirlemelidir ......
 

Genel olarak, pozitif dize ve mikrolitre farklıdır. Mikrolitre cinsinden, bu temel bir türdür ve optimizasyon için açıkça daha fazla fırsat vardır. Bu nedenle, böyle beceriksiz bir karşılaştırma doğru olmayabilir. Artıları olan monotonluktan yana olsam da - buna değmez, bu da mikrolitrede olmaması gerektiği anlamına gelir.

 
Vict :

Genel olarak, pozitif dize ve mikrolitre farklıdır. Mikrolitre cinsinden, bu temel bir türdür ve optimizasyon için açıkça daha fazla fırsat vardır. Bu nedenle, böyle beceriksiz bir karşılaştırma doğru olmayabilir. Artıları olan monotonluktan yana olsam da - buna değmez, bu da mikrolitrede olmaması gerektiği anlamına gelir.

Qi razmaulietse Belarus dilinde misiniz? Değil? Peki ya Chamu? Belarus dili Eski Slavcaya yakındır. Budzem Rus diline ve Eski Slav diline bakmak için mi? Vidavochna, ne, ilk etapta, bakmaya can atıyorum ve belarusça ...

Durun, yine üzerime çamur dökecekler, ama bir kez daha SI ve MQL farklı diller! Biri diğerini temel alsa da...

 
Сергей Таболин :

Kendimi doğru ifade edemedim galiba...

Elbette, OnTick()'te bunlara ihtiyaç yoktur. Bilmiyorum, fonksiyonlarda döngüleri (ve orada gerekli olan değişkenleri) doğru bir şekilde çıkarmak mümkün mü?

not Ve genel olarak, herhangi bir proger, hangi değişkene ihtiyaç duyduğunu bilmeli ve görünürlüğünün kapsamını bağımsız olarak belirlemelidir ......

İşte altın sözler.

Ve devreyi harici bir işleve çıkarmak için, eğer kodda sadece bir kez kullanılıyorsa, dinin herkese bu şekilde izin vermesidir. Birçoğu artık OOP'ye çarptı ve her küçük şey sınıflara veya makrolara dürtüldü. Moda böyle gitti.

 
Alexey Viktorov :

Ve devreyi harici bir işleve çıkarmak için, eğer kodda sadece bir kez kullanılıyorsa, dinin herkese bu şekilde izin vermesidir.

Kelime dağarcığınıza kelimeler ekleyeceğim - bu dine SOLID denir

 

Akıllı derleyiciye inananlar için. Aşağıda komut dosyası kodunun bir parçasıdır.

Kaynak ekteki dosyada.

 string predictor_names[]={ "Time_RSI_ZZ_00" , "rPeresek_Down" , "Time_ZZ_02" , "Speed_1_ZZ_Proc_04" ...}

struct sRule
  {
   int                predictor_id;
   bool               more_eq; 
   double              value ; 
  };
//Лист дерева(набор правил)
struct sLeaf_r
  {
   int                rules_count;               //Сколько правил
   sRule             rules[ 32 ];   //Все правила листа
   double             result_leaf; //Результат листа
  };
//Количество всех листьев 164912
sLeaf_r           leaf_rs[]=
  {
     { 3 ,{{ 0 , 0 , 21.5 },{ 1 , 1 , 0.5 },{ 2 , 0 , 15.5 }}, 0.0 },
     { 5 ,{{ 0 , 0 , 21.5 },{ 1 , 1 , 0.5 },{ 2 , 1 , 15.5 },{ 3 , 1 , 6.5 },{ 4 , 0 ,- 4.5 }},- 1.0 },
......
......
//Очень много данных
  }

void OnStart()
  {

  }

Yapılar tamamen statiktir, yaprak_rs dizisi tamamen atılabilir. OnStart() boş. Sonuç olarak, derlenen dosyanın boyutu neredeyse 2 megabayttır.

Dosyalar:
test_3.zip  418 kb
 
Igor Makanu :

Kelime dağarcığınıza kelimeler ekleyeceğim - bu dine SOLID denir

İgor, baban benden çok büyük değil mi? Sanırım 5 yıldan fazla değil, hala kelime dağarcığını artıramıyor mu? Yoksa çok mu gençsin? Sözlerimde gizli anlam aramayın.
 
Alexey Viktorov :

........

Ve devreyi harici bir işleve çıkarmak için, eğer kodda sadece bir kez kullanılıyorsa, dinin herkese bu şekilde izin vermesidir. Birçoğu artık OOP'ye çarptı ve her küçük şey sınıflara veya makrolara dürtüldü. Moda böyle gitti.

Daha önce de sordum ama cevap alamadım. Bu gibi durumlar için, "kendi" dinlerini kullanmamak için, değişkeni yok etmek için düzenli bir fırsat var mı?

Yine de, kişisel olarak bir döngüde değişken bildirmekten hoşlanmıyorum. Ben onlardan önce ilan etmeyi tercih ederim ama sonra nasıl yok edilir? ...... İşlevi de bu yüzden. Ayrıldıktan sonra, iç değişkenler yok edilir. (???)

OOP hakkında yeterince şey söyleyemem. Bunun neden gerekli olduğunu anlamıyorum))))))) Modası geçmiş, muhtemelen)))))))))

 
Сергей Таболин :

Daha önce de sordum ama cevap alamadım. Bu gibi durumlar için, "kendi" dinlerini kullanmamak için, değişkeni yok etmek için düzenli bir fırsat var mı?

Yine de, kişisel olarak bir döngüde değişken bildirmekten hoşlanmıyorum. Ben onlardan önce ilan etmeyi tercih ederim ama sonra nasıl yok edilir? ...... İşlevi de bu yüzden. Ayrıldıktan sonra, iç değişkenler yok edilir. (???)

OOP hakkında yeterince şey söyleyemem. Bunun neden gerekli olduğunu anlamıyorum))))))) Modası geçmiş, muhtemelen)))))))))

girmedi değil mi?

 if ( true ) {
        Type var ;
         for (...) {
                 var .use();
        }
}

Bilmediklerine şüpheliyim.

 
Alexey Viktorov :
İgor, baban benden çok büyük değil mi?

1953-2008 baba

1953-2019 kayınpeder

Neden: