valores devolvidos
iok é 2
fok é 1
gtc é 0
Isto é correto? Não pode haver duas políticas disponíveis?
Pode haver um e dois ...
//+------------------------------------------------------------------+ //| проверяет разрешенность указанного режима заполнения | //+------------------------------------------------------------------+ bool IsFillingTypeAllowed(string symbol,int fill_type) { //--- получим значение свойства, описывающего режим заполнения int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE); //--- вернем true, если режим fill_type разрешен return((filling&fill_type)==fill_type); }
- www.mql5.com
é 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; }
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?
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.
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.
- www.mql5.com
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.
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
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.
- www.mql5.com
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
iok é 2
fok é 1
gtc é 0
Isto é correto? Não pode haver duas políticas disponíveis?