yürütme ilkesini döndürür. - sayfa 3

 
Ivan_Invanov :

Evet, ikili sistemin bitleriyle nasıl çalışılacağını anlıyorum.

Bu kod çıkar, örneğin 3 işlevi döndürdü.

(11&1)==1 ; 11==01 hayır, bu yanlış, işe yaramadı.

Bunu yazıyordum ve düşündüm ki, belki işlemleri yanlış anlıyorum.

& bu, ondalık değerleri ikiliye çevirdiğim ve bit düzeyinde birleşim yaptığım anlamına geliyor.

== ilk terim ikinci terime eşit olduğunda doğrudur. O gibi?

Burada, bu vahşi doğada anlamıyorum, kendi kendimi yetiştirdim. Sadece nasıl kontrol edeceğimi ve ne alabileceğimi biliyorum. (11&1)==1 örneğiniz true ile sonuçlanacaktır, çünkü 11 sadece 1+2+8 işaretlerinden oluşabileceğinden kümeye 1 dahil edilmiştir.

Neyin iade edileceğini kontrol edin

 return ( 1 | 2 | 8 );
 
Alexey Viktorov :
Burada, bu vahşi doğada anlamıyorum, kendi kendimi yetiştirdim. Sadece nasıl kontrol edeceğimi ve ne alabileceğimi biliyorum. (11&1)==1 örneğiniz true ile sonuçlanacaktır, çünkü 11 sadece 1+2+8 işaretlerinden oluşabileceğinden kümeye 1 dahil edilmiştir.

Neyin iade edileceğini kontrol edin

Bunu ikili olarak yazdım, belirtmeyi unuttum. Fonksiyon 3 döndürdüyse yazılan koddaki değerleri değiştirip FOK ile karşılaştırdı. İkili bu şekilde yazılır. (0b11 & 0b1)==0b1 ; 0b11 köşeli parantez içindeki sonuç 0b11==0b1 ifadesidir; ama bence bir yalan çıkıyor. Ve her şeyin işe yaraması için doğru olması gerekir. Peki ve zaman bu örnek yardımda gerçeği bırakır. Görünüşe göre bir şeyi yanlış anladım. Sadece mavi yardıma baktım ve ondan önce mql. Her şey öyle görünüyor. Gerçekten aptalca sorular soruyorsam özür dilerim ve cevaplar için herkese teşekkürler.
 
mql yardımında gerçek değerin sıfır olmayan herhangi bir değer olduğu yazılmıştır, görünüşe göre cevap bu. Ve daha fazla eşitlik ve si eşitlikte. Bunun eşitlik olmadığı ortaya çıktı, ancak karşılaştırılan terimler sıfırdan büyükse, değer doğrudur. Muhtemelen. Açıkça yazılmadığı için. == operatöründen bahsediyorum.
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
  • www.mql5.com
Внутреннее представление – целое число размером 1 байт. Необходимо отметить, что в логических выражениях допустимо использовать вместо типа bool другие целые или...
 

Bit düzeyinde işlem, BIT düzeyinde bir işlemdir. Vuruşlarla çalışıyor. Örneğin 1, 00000001'dir. 2, 00000010'dur. Bayrak yalnızca 1, 2, 4, 8, vb. olabilir. Kısacası, bir bit meşgul.

Ve bayrak setinde, herhangi bir bit işgal edilebilir, örneğin, 00000101. Bu set, 00000001 ve 00000100 bayrağını içerir. Ve bayrak setine bir bayrağın dahil olup olmadığını öğrenmek için, bir bitsel yapmanız gerekir "ve " bayrağın ve setin, bundan sonra bayrak kalırsa, o zaman settedir:

(00000101 & 00000100 ) == 00000100 - doğru. Bu, 00000101 kümesinin 00000100 bayrağına sahip olduğu anlamına gelir.

 
Dmitry Fedoseev :

Bit düzeyinde işlem, BIT düzeyinde bir işlemdir. Vuruşlarla çalışıyor. Örneğin 1, 00000001'dir. 2, 00000010'dur. Bayrak yalnızca 1, 2, 4, 8, vb. olabilir. Kısacası, bir bit meşgul.

Ve bayrak setinde, herhangi bir bit işgal edilebilir, örneğin, 00000101. Bu set, 00000001 ve 00000100 bayrağını içerir. Ve bayrak setine bir bayrağın dahil olup olmadığını öğrenmek için, bir bitsel yapmanız gerekir "ve " bayrağın ve setin, bundan sonra bayrak kalırsa, o zaman settedir:

(00000101 & 00000100 ) == 00000100 - doğru. Bu, 00000101 kümesinin 00000100 bayrağına sahip olduğu anlamına gelir.

(Pozitif terim 1 == pozitif terim 2) ifadesi doğru mu, ancak pozitif terim 1, pozitif terim 2'ye eşit değil mi, bu doğru mu? Bu şekilde çıkıyor, çünkü yardım true öğesinin sıfır olmayan herhangi bir değer olduğunu söylüyor ve ardından kod çalışıyor.
 
Ivan_Invanov :
(Pozitif terim 1 == pozitif terim 2) ifadesi doğru mu, ancak pozitif terim 1, pozitif terim 2'ye eşit değil mi, bu doğru mu? Bu şekilde çıkıyor, çünkü yardım true öğesinin sıfır olmayan herhangi bir değer olduğunu söylüyor ve ardından kod çalışıyor.
Eşitlik kelimesinin orada daha fazla yazılmış olması kafam karıştı.
 
Yardım nerede? Tam olarak nerede ve ne?
 
Dmitry Fedoseev :
Yardım nerede? Tam olarak nerede ve ne?

Bana göre bu bir çelişkidir. a'nın b'ye eşit olması değil, a ve b'nin sıfır olmaması durumunda doğru çıkıyor. Eh, bir çelişki değil, ama açıkça yazılmamış. Şey, bir şekilde anladım, teşekkürler.

Dosyalar:
1111.jpg  29 kb
 
ENUM_SYMBOL_TRADE_EXECUTION Bunun karşısında ne tür olduğu yazmıyor ve help'teki başlıklar karışmış (dizeler için yazılmış gibi görünüyor ve sonra tamsayılardan bahsetmeden başladı). Bu nedenle, üç seçeneği de denedim, ancak her seferinde derleyici hatası. Sorun nedir?
 long execution = ( long ) SymbolInfoInteger ( _Symbol , ENUM_SYMBOL_TRADE_EXECUTION );
string execution = ( string ) SymbolInfoString ( _Symbol , ENUM_SYMBOL_TRADE_EXECUTION );
double execution = ( double ) SymbolInfoDouble ( _Symbol , ENUM_SYMBOL_TRADE_EXECUTION );
 
Ivan_Invanov :
ENUM_SYMBOL_TRADE_EXECUTION Bunun karşısında ne tür olduğu yazmıyor ve help'teki başlıklar karışmış (dizeler için yazılmış gibi görünüyor ve sonra tamsayılardan bahsetmeden başladı). Bu nedenle, üç seçeneği de denedim, ancak her seferinde derleyici hatası. Sorun nedir?

Bunu yapmanız gerekir:

 //--- Check trade execution mode
   ENUM_SYMBOL_TRADE_EXECUTION market_info = ENUM_SYMBOL_TRADE_EXECUTION ( SymbolInfoInteger ( Symbol (), SYMBOL_TRADE_EXEMODE ));
    
   if ((market_info & SYMBOL_TRADE_EXECUTION_EXCHANGE ) != SYMBOL_TRADE_EXECUTION_EXCHANGE )
  {
     MessageBox ( "Символ " + Symbol () + " не поддерживает TRADE EXECUTION EXCHANGE режим!" , "Ошибка" , MB_OK | MB_ICONHAND );
     return ( false );
  }
Neden: