devolve a política de execução.

 
long  SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);
valores devolvidos

iok é 2
fok é 1
gtc é 0

Isto é correto? Não pode haver duas políticas disponíveis?

 
Ivan_Invanov:
valores devolvidos

iok é 2
fok é 1
gtc é 0

Isto é correto? Não pode haver duas políticas disponíveis?

Pode haver um e dois ...

Verificar:

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

é necessário um pouco de controle, por exemplo:

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:

Pode haver um ou dois ...

Verificação:

Obrigado. Você também pode explicar por que eles às vezes escrevem pausas na declaração, um exemplo do conselheiro oficial.
if(x>0.0)
break;
if(x<0.0)
y++;

Por que isto não é o mesmo que um retorno. O retorno retornará o controle para o programa de chamadas, que procede para o próximo operador. A interrupção força uma transição para o próximo operador. O programa de chamadas pode ignorar o próximo operador?

 
Ivan_Invanov:
Obrigado. Você também pode explicar por que às vezes se faz uma pausa se a declaração é escrita, exemplo do conselheiro oficial.

Por que isto não é o mesmo que um retorno. O retorno retornará o controle para o programa de chamadas, que prossegue para a próxima declaração. quebra força o programa a ir para o próximo operador. O programa de chamadas pode ignorar o próximo operador?

Dê-me um link para a documentação onde este

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

exemplo ...

 
Isto é da Moving Average v1.00 2009-2017. É um exemplo no terminal mt5. Linha 64.
 
Ivan_Invanov:
Isto é da Moving Average v1.00 2009-2017. É um exemplo no terminal mt5. Linha 64.

1. Não tente tirar o código do contexto.

2. Leia atentamente a Ajuda do Operador de Intervalo Final.

3. só depois de concluir as tarefas 1 e 2 é que você pode continuar a fazer perguntas.

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

1. Não tente tirar o código do contexto.

2. Leia atentamente a Ajuda do Operador de Intervalo Final.

3. só depois de concluir as tarefas 1 e 2 é que você pode continuar a fazer perguntas.

Obrigado. Estou deletando o tópico para não desorganizar o fórum. Ah, aqui você não tem permissão para apagar fios.
 
Vladimir Karputov:

Pode haver um ou dois ...

Testes:

Eu não entendo, você está dizendo que pode ser um ou dois. Há apenas uma variável na função. Você pode me dizer com um exemplo.
 
Ivan_Invanov:
Eu não entendo, você está dizendo que poderia ser um ou dois. Há apenas uma variável na função. Você pode me dizer com um exemplo.

iok é 2
fok é 1
gtc é 0

o que então retorna se ioc e fok

 
Ivan_Invanov:
Eu não entendo, você está dizendo que pode haver um ou dois. Há apenas uma variável na função. Você pode me dizer com um exemplo.

Exemplo da classe de comércio CTrade. Primeiro é verificado para'SYMBOL_FILLING_FOK', depois para'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);
  }


A verificação é feita utilizandoa operação 'AND bitwise'.

Bitwise E operação

O bitwise AND operação das representações binárias x e y. O valor da expressão contém 1 (VERDADEIRO) em todos os bits onde tanto x como y contêm não-zero; e 0 (FALSO) em todos os outros bits.

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

Exemplo:

   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


Mais sobre as operações bitwise.

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