valores devueltos
iok es 2
fok es 1
gtc es 0
¿Es esto correcto? ¿No puede haber dos pólizas disponibles?
Puede haber uno y dos ...
//+------------------------------------------------------------------+ //| проверяет разрешенность указанного режима заполнения | //+------------------------------------------------------------------+ 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
Se necesita una comprobación de bits, por ejemplo:
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 qué no es lo mismo que la devolución. Return devolverá el control al programa de llamada, que pasa al siguiente operador. La pausa fuerza la transición al siguiente operador. ¿Puede el programa que llama ignorar el siguiente operador?
Gracias. ¿Puede explicar también por qué la ruptura se escribe a veces en el enunciado del if, ejemplo del asesor oficial.
Por qué no es lo mismo que la devolución. Return devolverá el control al programa de llamada, que pasa a la siguiente sentencia. break obliga al programa a pasar al siguiente operador. ¿Puede el programa que llama ignorar el siguiente operador?
Dame un enlace a la documentación donde este
if(x>0.0) break; if(x<0.0) y++;
ejemplo...
Esto es de Moving Average v1.00 2009-2017 .Es un ejemplo en el terminal mt5. Línea 64.
1. No intentes sacar el código de contexto.
2. Lea atentamente la ayuda para el operador de la pausa final.
3. Sólo después de haber completado las tareas 1 y 2 puede seguir haciendo preguntas.
- www.mql5.com
1. No intentes sacar el código de contexto.
2. Lea atentamente la ayuda para el operador de la pausa final.
3. Sólo después de haber completado las tareas 1 y 2 puede seguir haciendo preguntas.
No entiendo, dices que puede ser uno o dos. Sólo hay una variable en la función. Me lo puedes decir con un ejemplo.
iok es 2
fok es 1
gtc es 0
lo que devuelve entonces si ioc y fok
No entiendo, usted está diciendo que puede haber uno o dos. Sólo hay una variable en la función. Me lo puedes decir con un ejemplo.
Ejemplo de la clase de comercio de CTrade. Primero se comprueba si hay"SYMBOL_FILLING_FOK" y luego si hay"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 comprobación se realiza mediantela operación "AND bitwise".
Operación AND a nivel de bits
La operación AND a nivel de bits de las representaciones binarias x e y. El valor de la expresión contiene 1 (TRUE) en todos los bits en los que tanto x como y contienen un valor distinto de cero; y 0 (FALSE) en todos los demás bits.
b = ((x & y) != 0);
Ejemplo:
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
Más información sobre las operaciones a nivel de bits.
- www.mql5.com
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
iok es 2
fok es 1
gtc es 0
¿Es esto correcto? ¿No puede haber dos pólizas disponibles?