restituisce la politica di esecuzione. - pagina 7

 
Ora ho controllato il codice. 1234==2 è falso. Infatti, i numeri vengono confrontati. Qual è l'iscrizione allora? E si scopre allora che questa funzione non può restituire una terzina se sia fok che ioc sono disponibili?
SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
 
Ivan_Invanov:

se 1234==2 è falso, questo codice non funziona.

bitwise può solo rispondere alla domanda: questa o quella politica di riempimento può essere applicata?


Non potete tornare al codice sorgente e non sapete come controllarlo. Esattamente questa linea

if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)

si legge così:

Se una variabile (se è spostata dal bit SYMBOL_FILLING_FOK) è uguale a SYMBOL_FILLING_FOK

Se sono autodidatta, mi farò correggere da qualcuno più esperto.
 
Dmitry Fedoseev:

No, non hanno torto. Non c'è nemmeno una contraddizione. C'è solo qualcosa che non capisci e che ti rifiuti ostinatamente di capire.

No, voglio capire. Per favore, lo spieghi di nuovo.
 
Alexey Viktorov:

Queste sono operazioni bitwise e non sono così convalidate come si potrebbe pensare. In particolare, una linea come questa

si legge così:

Se una variabile (riempita dal bit SYMBOL_FILLING_FOK) è uguale a SYMBOL_FILLING_FOK

Se sono autodidatta, sarò corretto da qualcuno più esperto.
Giusto o sbagliato. Il cameraman è quello giusto.
 
Ivan_Invanov:
No, voglio capire. Per favore, lo spieghi di nuovo.

Tutto è stato spiegato cinque volte. Devi iniziare da te stesso - ammettere che non capisci qualcosa, non nel mondo che qualcuno ha torto e soprattutto nel riferimento.

 
Dmitry Fedoseev:

È stato spiegato cinque volte. Devi iniziare da te stesso - ammettere che non capisci qualcosa, non nel mondo che qualcuno ha torto e soprattutto nel certificato.

Forse non c'è nessun errore nel riferimento, ma è scritto in modo incomprensibile (forse solo per me). Come ho detto, ho controllato il codice e ora il problema è scomparso. Mi è stato detto in questo thread che la funzione

SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

può restituire 3.

Se restituisce 3, allora il codice come questo non funzionerà, giusto?

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);
  }
 
Ivan_Invanov:

Forse non c'è un errore nell'aiuto, ma non è chiaro (forse solo a me). Come ho detto, ho controllato con il codice e il problema è sparito. Mi è stato detto in questo thread che la funzione

può restituire 3.

Se restituisce 3, questo codice non funzionerà, giusto?

Se SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) restituisce 3, il codice restituirà true

 
Ivan_Invanov:

Forse non c'è un errore nell'aiuto, ma non è scritto chiaramente (forse solo per me). Come ho detto, ho controllato con il codice e il problema è sparito. Mi è stato detto in questo thread che la funzione

può restituire 3.

Se restituisce 3, allora questo tipo di codice non funzionerà, giusto?

Sto cercando di mostrarvi di nuovo quello che ho scritto nella seconda pagina del vostro topic.

un'operazione bitwise può solo rispondere alla domanda: può essere applicata questa o quella politica di riempimento.


Dovreste cercare di leggere attentamente ciò che è scritto. La funzione SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)

  • può restituire 1 che corrisponde a SYMBOL_FILLING_FOK
  • può restituire 2 che corrisponde a SYMBOL_FILLING_IOC
  • può restituire 3, che è la somma di SYMBOL_FILLING_FOK + SYMBOL_FILLING_IOC .

Stampa i flag SYMBOL_FILLING_FOK e SYMBOL_FILLING_IOC

Scrivere semplicemente

Print(SYMBOL_FILLING_FOK);
Print(SYMBOL_FILLING_IOC);

Cosa vedrete¿¿¿¿

 
Dmitry Fedoseev:

Se SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) restituisce 3, il codice restituirà true

Grazie, ora ho capito che stavo sbagliando la congiunzione.
 
Grazie a tutti per le vostre risposte. È tutto risolto. Ho fatto un errore nelle operazioni logiche, ecco perché si è verificata la confusione. Grazie per avermi preso in giro)
Motivazione: