MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1796

 

Booleanları ve diğer koşulları birlikte karıştırmak... Tamam. İyi kod yazmak istemiyorsanız, yapmayın. Seninle tartışmayacağım ya da tartışmayacağım.

MakarFX # :

Ve fonksiyonun evrenselliği hakkında konuşursak, o zaman ...

Bu, önceki işlevinizden daha sağduyuya daha yakın.

Doğru, okunabilirlik arzulanan çok şey bırakıyor... Ama bunu kim düşünür ki?... :)

 
Nerd Trader # :
Koşullu olarak doğru olan

hayır, "satır_adı" adı atanan son isim olacaktır.

 
Mihail Matkovskij # :

Booleanları ve diğer koşulları birlikte karıştırmak... Tamam. İyi kod yazmak istemiyorsanız, yapmayın. Seninle tartışmayacağım ya da tartışmayacağım.

tamam, tamam, senin örneğini kullanacağım

 
Her zaman satır oluşturmaya ve silmeye gerek yok. Nesnenin zaman dilimlerinde görünürlüğü için bayraklar vardır. Gizlemeniz ve göstermeniz gerekiyor.
 
Mihail Matkovskij # :

Booleanları ve diğer koşulları birlikte karıştırmak... Tamam. İyi kod yazmak istemiyorsanız, yapmayın. Seninle tartışmayacağım ya da tartışmayacağım.

Bu, önceki işlevinizden daha sağduyuya daha yakın.

Doğru, okunabilirlik arzulanan çok şey bırakıyor... Ama bunu kim düşünür ki?... :)

Daha spesifik olarak, sorun ne?

Ve hala işlevinizin "-1" ile ne döndüreceğini cevaplamadınız.

 
MakarFX # :

hayır, "satır_adı" adı atanan son isim olacaktır.

Peki, neden bununla ilgili herhangi bir sorun olsun ki? Aynı şekilde, koşuldan geçen nesne silinecektir.
 
MakarFX # :

Daha spesifik olarak, sorun ne?

Ve hala fonksiyonunuzun "-1" ile ne döndüreceğini cevaplamadınız.

false döndürür - zaten kontrol edildi
 
Nerd Trader # :
false döndürür - zaten kontrol edildi
Ve doğruya ihtiyacın var.
 
MakarFX # :
Ve doğruya ihtiyacın var.
Boolean ile NOT doğru olacaktır :)
 
MakarFX # :

Daha spesifik olarak, sorun ne?

 bool FindObject( string name, int win)
{
   if ( ObjectFind ( 0 , name) == win) 
     return ( true );
   return ( false );
}
Daha kompakt versiyon:
 bool FindObject( string name, int win) { return ( ObjectFind ( 0 ,name) == win); } 

Ama görünüşe göre, işlevinizin evrensel olduğunu iddia ediyormuşsunuz?... O zaman çok önemli bir ayrıntıyı unuttunuz:

 bool FindObject( const long chart_id , const string name, const int win) { return ( ObjectFind (chart_id, name) == win); } 

En çok yönlü ve güvenilir seçenek.

Ve hala fonksiyonunuzun "-1" ile ne döndüreceğini cevaplamadınız.

Kontrol etmek için basit bir komut dosyası yazamayacak kadar tembel misiniz? TAMAM. senin için yaptım

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart () {
   for ( int i = - 10 ; i <= 10 ; i++) 
     if (i)
       printf ( "%d - true" , i);
     else
       printf ( "%d - false" , i);
}
//+------------------------------------------------------------------+

Ve şimdi sonuca bakın:

-10 - doğru

-9 - doğru

-8 - doğru

-7 - doğru

-6 - doğru

-5 - doğru

-4 - doğru

-3 - doğru

-2 - doğru

-1 - doğru

0 - yanlış

1 - doğru

2 - doğru

3 - doğru

4 - doğru

5 - doğru

6 - doğru

7 - doğru

8 - doğru

9 - doğru

10 - doğru



Tüm negatif sayılar doğrudur. 0 - yanlış. İşte mucize budur... :)

Böylece işleviniz doğru dönecek

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma

MakarFX , 2021.12.06 12:14

 bool FindObject( string name)
  {
   if ( ObjectFind ( 0 ,name)) return ( false );
   return ( true );
  }

Benimki yanlış dönecek

 bool objectExist( const long _chartID, const string _name) { return ( ObjectFind (_chartID, _name) >= 0 ); } // чётко определим условие существования объекта!

Aslında, negatif değerlerle olması gerektiği gibi.

Neden: