renvoie la politique d'exécution. - page 7

 
J'ai maintenant vérifié le code. 1234==2 est faux. En effet, les chiffres sont comparés. Quelle est l'inscription alors ? Et il s'avère alors que cette fonction ne peut pas retourner un triplet si fok et ioc sont tous deux disponibles ?
.
SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
 
Ivan_Invanov:

si 1234==2 est faux, ce code ne fonctionne pas.

par bit ne peut répondre qu'à la question suivante : peut-on appliquer telle ou telle politique de remplissage ?


Vous ne pouvez pas revenir au code source et ne savez pas comment le vérifier. Exactement cette ligne

if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)

se lit comme ça :

Si une variable (si elle est décalée par le bit SYMBOL_FILLING_FOK) est égale à SYMBOL_FILLING_FOK

Si je suis autodidacte, je me ferai corriger par quelqu'un de plus expérimenté.
 
Dmitry Fedoseev:

Non, ils n'ont pas tort. Il n'y a pas non plus de contradiction. Il y a juste quelque chose que vous ne comprenez pas et que vous refusez obstinément de comprendre.

Non, je veux comprendre. Expliquez-le à nouveau.
 
Alexey Viktorov:

Il s'agit d'opérations par bit et elles ne sont pas aussi validées que vous pourriez le penser. Plus précisément, une ligne comme celle-ci

se lit comme ça :

Si une variable (remplie par le bit SYMBOL_FILLING_FOK) est égale à SYMBOL_FILLING_FOK

Si je suis autodidacte, je me ferai corriger par quelqu'un de plus expérimenté.
Bien ou mal. C'est le caméraman.
 
Ivan_Invanov:
Non, je veux comprendre. Expliquez-le à nouveau.

Tout a été expliqué cinq fois. Vous devez commencer par vous-même - admettre que vous ne comprenez pas quelque chose, pas dans le monde quelqu'un a tort et surtout dans la référence.

 
Dmitry Fedoseev:

Cela a été expliqué cinq fois. Vous devez commencer par vous-même - admettre que vous ne comprenez pas quelque chose, pas dans le monde quelqu'un a tort et surtout dans le certificat.

Peut-être qu'il n'y a pas d'erreur dans la référence, mais elle est écrite d'une manière incompréhensible (peut-être seulement pour moi). Comme je l'ai dit, j'ai vérifié le code et maintenant le problème est tombé. On m'a dit dans ce fil que la fonction

SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

peut retourner 3.

Si elle renvoie 3, alors un code comme celui-ci ne fonctionnera pas, n'est-ce pas ?

bool CTrade::SetTypeFillingBySymbol(const string symbol)
  {
//--- get possible filling policy types by symbol
   uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
   if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)
     {
      m_type_filling=ORDER_FILLING_FOK;
      return(true);
     }
   if((filling&SYMBOL_FILLING_IOC)==SYMBOL_FILLING_IOC)
     {
      m_type_filling=ORDER_FILLING_IOC;
      return(true);
     }
//---
   return(false);
  }
 
Ivan_Invanov:

Il n'y a peut-être pas d'erreur dans l'aide, mais ce n'est pas clair (peut-être seulement pour moi). Comme je l'ai dit, je l'ai vérifié avec le code et le problème a maintenant disparu. On m'a dit dans ce fil que la fonction

peut retourner 3.

S'il renvoie 3, ce code ne fonctionnera pas, n'est-ce pas ?

Si SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) renvoie 3, le code renvoie vrai.

 
Ivan_Invanov:

Il n'y a peut-être pas d'erreur dans l'aide, mais elle n'est pas clairement écrite (peut-être seulement pour moi). Comme je l'ai dit, je l'ai vérifié avec le code et le problème a maintenant disparu. On m'a dit dans ce fil que la fonction

peut retourner 3.

S'il renvoie 3, alors ce type de code ne fonctionnera pas, n'est-ce pas ?

J'essaie de vous montrer à nouveau ce que j'ai écrit sur la deuxième page de votre sujet.

par bit ne peut répondre qu'à la question suivante : peut-on appliquer telle ou telle politique de remplissage ?


Vous devriez essayer de lire attentivement ce qui est écrit. La fonction SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)

  • peut retourner 1 ce qui correspond à SYMBOL_FILLING_FOK
  • peut retourner 2 ce qui correspond à SYMBOL_FILLING_IOC
  • peut retourner 3, qui est la somme de SYMBOL_FILLING_FOK + SYMBOL_FILLING_IOC .

Imprimer les drapeaux SYMBOL_FILLING_FOK et SYMBOL_FILLING_IOC

Il suffit d'écrire

Print(SYMBOL_FILLING_FOK);
Print(SYMBOL_FILLING_IOC);

Ce que vous verrez¿¿¿¿

 
Dmitry Fedoseev:

Si SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) renvoie 3, le code renvoie vrai.

Merci, je réalise maintenant que je faisais mal la conjonction.
 
Merci à tous pour vos réponses. Tout est réglé. J'ai fait une erreur dans les opérations logiques, c'est pourquoi la confusion s'est produite. Merci de vous être moqué de moi)