renvoie la politique d'exécution.

 
long  SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);
Valeurs renvoyées

iok est 2
fok est 1
gtc est 0

Est-ce correct ? Ne peut-il y avoir deux politiques disponibles ?

 
Ivan_Invanov:
Valeurs renvoyées

iok est 2
fok est 1
gtc est 0

Est-ce correct ? Ne peut-il y avoir deux politiques disponibles ?

Il peut y avoir un et deux ...

Vérifiez:

//+------------------------------------------------------------------+
//| проверяет разрешенность указанного режима заполнения             |
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен
   return((filling&fill_type)==fill_type);
  }
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 

une vérification des bits est nécessaire. par exemple :

ENUM_ORDER_TYPE_FILLING OrderTypeFilling(const string symbol)
{
 int FillingFlags = (int)SymbolInfoInteger(symbol, SYMBOL_FILLING_MODE);
 
 if((FillingFlags & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK)
                                     return ORDER_FILLING_FOK;
 else 
 if((FillingFlags & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC)
                                     return ORDER_FILLING_IOC;
 else
                                     return ORDER_FILLING_RETURN;
}
 
Vladimir Karputov:

Il peut y avoir un ou deux ...

Vérification:

Merci. Pouvez-vous également expliquer pourquoi ils écrivent parfois break dans la déclaration if, un exemple tiré du conseiller officiel.
if(x>0.0)
break;
if(x<0.0)
y++;

Pourquoi n'est-ce pas la même chose que le retour. Return renvoie le contrôle au programme appelant, qui passe à l'opérateur suivant. La pause force une transition vers l'opérateur suivant. Le programme appelant peut-il ignorer l'opérateur suivant ?

 
Ivan_Invanov:
Merci. Pouvez-vous également expliquer pourquoi la rupture est parfois écrite dans la déclaration if, exemple du conseiller officiel.

Pourquoi n'est-ce pas la même chose que le retour. Return renvoie le contrôle au programme appelant, qui passe à l'instruction suivante. break force le programme à passer à l'opérateur suivant. Le programme appelant peut-il ignorer l'opérateur suivant ?

Donnez-moi un lien vers la documentation où ce

if(x>0.0)
break;
if(x<0.0)
y++;

exemple ...

 
Ceci est tiré du Moving Average v1.00 2009-2017 .C'est un exemple dans le terminal mt5. Ligne 64.
 
Ivan_Invanov:
Ceci est tiré de Moving Average v1.00 2009-2017 .C'est un exemple dans le terminal mt5. Ligne 64.

1. N'essayez pas de sortir le code de son contexte.

2. Lisez attentivement l'aide à l'opérateur End Break.

3) Ce n'est qu'après avoir accompli les tâches 1 et 2 que vous pourrez continuer à poser des questions.

Документация по MQL5: Основы языка / Операторы / Оператор завершения break
Документация по MQL5: Основы языка / Операторы / Оператор завершения break
  • www.mql5.com
Основы языка / Операторы / Оператор завершения break - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

1. N'essayez pas de sortir le code de son contexte.

2. Lisez attentivement l'aide à l'opérateur End Break.

3) Ce n'est qu'après avoir accompli les tâches 1 et 2 que vous pourrez continuer à poser des questions.

Merci. Je supprime le fil de discussion afin de ne pas encombrer le forum. Oh, vous ne pouvez pas supprimer les fils ici.
 
Vladimir Karputov:

Il peut y avoir un ou deux ...

Test:

Je ne comprends pas, vous dites que ça peut être un ou deux. Il n'y a qu'une seule variable dans la fonction. Pouvez-vous me le dire avec un exemple.
 
Ivan_Invanov:
Je ne comprends pas, vous dites que ça pourrait être un ou deux. Il n'y a qu'une seule variable dans la fonction. Pouvez-vous me le dire avec un exemple.

iok est 2
fok est 1
gtc est 0

ce qui revient alors si ioc et fok

 
Ivan_Invanov:
Je ne comprends pas, vous dites qu'il peut y en avoir un ou deux. Il n'y a qu'une seule variable dans la fonction. Pouvez-vous me le dire avec un exemple.

Exemple de la classe de commerce CTrade. Il est d'abord vérifié pour'SYMBOL_FILLING_FOK', puis pour'SYMBOL_FILLING_IOC'.

//+------------------------------------------------------------------+
//| Set order filling type according to symbol filling mode          |
//+------------------------------------------------------------------+
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);
  }


La vérification est effectuée à l'aide del'opération "ET par bit".

Opération ET par bit

L'opération ET par bit des représentations binaires x et y. La valeur de l'expression contient 1 (VRAI) dans tous les bits où x et y contiennent tous deux des valeurs non nulles, et 0 (FAUX) dans tous les autres bits.

b = ((x & y) != 0);

Exemple :

   char a='a',b='b';
//--- операция И
   char c=a&b;
   Print("a = ",a,"  b = ",b);
   Print("a & b = ",c);
// Результат будет такой:
// a = 97   b = 98
// a & b = 96


En savoir plus sur les opérations par bit.

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Дополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1. Сдвиг вправо Двоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический...