Ahora he comprobado el código. 1234==2 es falso. De hecho, se están comparando las cifras. ¿Cuál es la inscripción entonces? ¿Y resulta entonces que esta función no puede devolver un triplete si tanto fok como ioc están disponibles?
Ivan_Invanov: No, quiero entender. Por favor, explíquelo de nuevo.
Todo ha sido explicado cinco veces. Hay que empezar por uno mismo: admitir que no se entiende algo, no en el mundo alguien se equivoca y sobre todo en la referencia.
Se ha explicado cinco veces. Hay que empezar por uno mismo: admitir que no se entiende algo, no en el mundo alguien se equivoca y sobre todo en el certificado.
Quizá no haya ningún error en la referencia, pero está escrita de forma incomprensible (quizá sólo para mí). Como he dicho, he revisado el código y ahora el problema ha desaparecido. Me dijeron en este hilo que la función
SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
puede devolver 3.
Si devuelve 3, entonces el código como este no funcionará, ¿verdad?
bool CTrade::SetTypeFillingBySymbol(conststring symbol)
{
//--- get possible filling policy types by symboluint 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);
}
Puede que no haya un error en la ayuda, pero no está escrito con claridad (quizás sólo para mí). Como he dicho, lo he comprobado con el código y el problema ha desaparecido. Me dijeron en este hilo que la función
puede devolver 3.
Si devuelve 3, este código no funcionará, ¿verdad?
Si SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) devuelve 3, el código devolverá true
Puede que no haya un error en la ayuda, pero no está escrito con claridad (quizás sólo para mí). Como he dicho, lo he comprobado con el código y el problema ha desaparecido. Me dijeron en este hilo que la función
puede devolver 3.
Si devuelve 3, entonces este tipo de código no funcionará, ¿verdad?
Intento mostrarte de nuevo lo que he escrito en la segunda página de tu tema.
una operación bitwise sólo puede responder a la pregunta: ¿Puede aplicarse tal o cual política de llenado?
Deberías intentar leer con atención lo que está escrito. La función SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)
puede devolver 1 que corresponde a SYMBOL_FILLING_FOK
puede devolver 2 que corresponde a SYMBOL_FILLING_IOC
puede devolver 3, que es la suma deSYMBOL_FILLING_FOK + SYMBOL_FILLING_IOC.
Imprimir las banderas SYMBOL_FILLING_FOK y SYMBOL_FILLING_IOC
Gracias a todos por sus respuestas. Ya está todo resuelto. Cometí un error en las operaciones lógicas, por eso se produjo la confusión. Gracias por meterte conmigo)
si 1234==2 es falso, este código no funciona.
por bits sólo puede responder a la pregunta: ¿Se puede aplicar tal o cual política de relleno?
Son operaciones a nivel de bits que no se comprueban como se quiere. Exactamente esta línea
se lee así:
Si una variable (si está desplazada por el bit SYMBOL_FILLING_FOK) es igual a SYMBOL_FILLING_FOK
Si soy autodidacta, me corregirá alguien más experimentado.No, no están equivocados. Tampoco hay ninguna contradicción. Simplemente hay algo que no entiendes y te niegas obstinadamente a entenderlo.
Se trata de operaciones a nivel de bits y no están tan validadas como podría pensarse. En concreto, una línea como esta
se lee así:
Si una variable (rellenada por el bit SYMBOL_FILLING_FOK) es igual a SYMBOL_FILLING_FOK
Si soy autodidacta, me corregirá alguien más experimentado.No, quiero entender. Por favor, explíquelo de nuevo.
Todo ha sido explicado cinco veces. Hay que empezar por uno mismo: admitir que no se entiende algo, no en el mundo alguien se equivoca y sobre todo en la referencia.
Se ha explicado cinco veces. Hay que empezar por uno mismo: admitir que no se entiende algo, no en el mundo alguien se equivoca y sobre todo en el certificado.
Quizá no haya ningún error en la referencia, pero está escrita de forma incomprensible (quizá sólo para mí). Como he dicho, he revisado el código y ahora el problema ha desaparecido. Me dijeron en este hilo que la función
puede devolver 3.
Si devuelve 3, entonces el código como este no funcionará, ¿verdad?
Puede que no haya un error en la ayuda, pero no está escrito con claridad (quizás sólo para mí). Como he dicho, lo he comprobado con el código y el problema ha desaparecido. Me dijeron en este hilo que la función
puede devolver 3.
Si devuelve 3, este código no funcionará, ¿verdad?
Si SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) devuelve 3, el código devolverá true
Puede que no haya un error en la ayuda, pero no está escrito con claridad (quizás sólo para mí). Como he dicho, lo he comprobado con el código y el problema ha desaparecido. Me dijeron en este hilo que la función
puede devolver 3.
Si devuelve 3, entonces este tipo de código no funcionará, ¿verdad?
Intento mostrarte de nuevo lo que he escrito en la segunda página de tu tema.
una operación bitwise sólo puede responder a la pregunta: ¿Puede aplicarse tal o cual política de llenado?
Deberías intentar leer con atención lo que está escrito. La función SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)
Imprimir las banderas SYMBOL_FILLING_FOK y SYMBOL_FILLING_IOC
Simplemente escriba
Lo que verá¿¿¿¿
Si SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) devuelve 3, el código devolverá true