restituisce la politica di esecuzione.

 
long  SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);
valori restituiti

iok è 2
fok è 1
gtc è 0

È corretto? Non ci possono essere due polizze disponibili?

 
Ivan_Invanov:
valori restituiti

iok è 2
fok è 1
gtc è 0

È corretto? Non ci possono essere due polizze disponibili?

Ci possono essere uno e due ...

Controllare:

//+------------------------------------------------------------------+
//| проверяет разрешенность указанного режима заполнения             |
//+------------------------------------------------------------------+
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 соответственно. Некоторые символы (как правило...
 

è necessario un controllo dei bit, per esempio:

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:

Ci possono essere uno o due ...

Verifica:

Grazie. Potete anche spiegare perché a volte scrivono break nell'if statement, un esempio dal consulente ufficiale.
if(x>0.0)
break;
if(x<0.0)
y++;

Perché non è la stessa cosa del ritorno. Return restituisce il controllo al programma chiamante, che procede all'operatore successivo. Break forza una transizione all'operatore successivo. Il programma chiamante può ignorare l'operatore successivo?

 
Ivan_Invanov:
Grazie. Potete anche spiegare perché la pausa è a volte scritta nella dichiarazione if, esempio dal consulente ufficiale.

Perché non è la stessa cosa del ritorno. Return restituisce il controllo al programma chiamante, che procede all'istruzione successiva. break forza il programma a passare all'operatore successivo. Il programma chiamante può ignorare l'operatore successivo?

Datemi un link alla documentazione dove questo

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

esempio ...

 
Questo è dal Moving Average v1.00 2009-2017. È un esempio nel terminale mt5. Linea 64.
 
Ivan_Invanov:
Questo è da Moving Average v1.00 2009-2017. È un esempio nel terminale mt5. Linea 64.

1. Non cercate di prendere il codice fuori dal contesto.

2. Leggete attentamente la Guida dell'Operatore di fine pausa.

3. Solo dopo aver completato i compiti 1 e 2 puoi continuare a fare domande.

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

1. Non cercate di prendere il codice fuori dal contesto.

2. Leggete attentamente la Guida dell'Operatore di fine pausa.

3. Solo dopo aver completato i compiti 1 e 2 puoi continuare a fare domande.

Grazie. Cancello il thread per non ingombrare il forum. Oh, non si possono cancellare i thread qui.
 
Vladimir Karputov:

Ci possono essere uno o due ...

Test:

Non capisco, stai dicendo che può essere uno o due. C'è solo una variabile nella funzione. Può dirmelo con un esempio.
 
Ivan_Invanov:
Non capisco, stai dicendo che potrebbe essere uno o due. C'è solo una variabile nella funzione. Può dirmelo con un esempio.

iok è 2
fok è 1
gtc è 0

cosa restituisce allora se ioc e fok

 
Ivan_Invanov:
Non capisco, state dicendo che ce ne può essere uno o due. C'è solo una variabile nella funzione. Può dirmelo con un esempio.

Esempio dalla classe commerciale CTrade. Prima viene controllato per'SYMBOL_FILLING_FOK', poi per'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);
  }


Il controllo viene eseguito utilizzando l'operazione "AND bitwise".

Operazione bitwise AND

L'operazione bitwise AND delle rappresentazioni binarie x e y. Il valore dell'espressione contiene 1 (VERO) in tutti i bit dove sia x che y contengono non-zero; e 0 (FALSO) in tutti gli altri bit.

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

Esempio:

   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


Maggiori informazioni sulle operazioni bitwise.

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