gibt die Ausführungsrichtlinie zurück. - Seite 7

 
Ich habe den Code jetzt überprüft. 1234==2 ist falsch. In der Tat werden die Zahlen verglichen. Wie lautet dann die Aufschrift? Und dann stellt sich heraus, dass diese Funktion kein Triplett zurückgeben kann, wenn sowohl fok als auch ioc verfügbar sind?
SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
 
Ivan_Invanov:

Wenn 1234==2 falsch ist, funktioniert dieser Code nicht.

bitweise Prüfung nur die Frage beantworten: Kann diese oder jene Ausfüllrichtlinie angewendet werden?


Sie können nicht auf den Quellcode zurückgreifen und wissen nicht, wie Sie ihn überprüfen können. Genau diese Zeile

if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)

liest sich wie folgt:

Wenn eine Variable (wenn sie um das Bit SYMBOL_FILLING_FOK verschoben wird) gleich SYMBOL_FILLING_FOK ist

Wenn ich Autodidakt bin, werde ich von jemandem mit mehr Erfahrung korrigiert.
 
Dmitry Fedoseev:

Nein, sie sind nicht falsch. Es gibt auch keinen Widerspruch. Es gibt einfach etwas, das Sie nicht verstehen und sich hartnäckig weigern, es zu verstehen.

Nein, ich möchte verstehen. Bitte erklären Sie es noch einmal.
 
Alexey Viktorov:

Dies sind bitweise Operationen und sie sind nicht so validiert, wie Sie vielleicht denken. Genauer gesagt, eine Zeile wie diese

liest sich wie folgt:

Wenn eine Variable (gefüllt durch das Bit SYMBOL_FILLING_FOK) gleich SYMBOL_FILLING_FOK ist

Wenn ich Autodidakt bin, werde ich von jemandem mit mehr Erfahrung korrigiert.
Richtig oder falsch. Der Kameramann ist derjenige.
 
Ivan_Invanov:
Nein, ich möchte verstehen. Bitte erklären Sie es noch einmal.

Alles wurde bereits fünfmal erklärt. Sie müssen bei sich selbst anfangen - zugeben, dass Sie etwas nicht verstehen, nicht in der Welt jemand falsch ist und vor allem in der Referenz.

 
Dmitry Fedoseev:

Das ist schon fünfmal erklärt worden. Du musst bei dir selbst anfangen - zugeben, dass du etwas nicht verstehst, nicht in der Welt, in der jemand falsch liegt, und vor allem nicht im Zeugnis.

Der Hinweis ist vielleicht nicht falsch, aber unverständlich geschrieben (vielleicht nur für mich). Wie gesagt, ich habe den Code überprüft, und jetzt ist das Problem verschwunden. In diesem Thread wurde mir gesagt, dass die Funktion

SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

zurückkehren können 3.

Wenn es 3 zurückgibt, dann wird Code wie dieser nicht funktionieren, richtig?

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:

Die Hilfe enthält zwar keinen Fehler, aber es ist unklar (vielleicht nur für mich). Wie gesagt, ich habe es mit dem Code überprüft, und das Problem ist jetzt verschwunden. In diesem Thread wurde mir gesagt, dass die Funktion

zurückkehren können 3.

Wenn er 3 zurückgibt, funktioniert dieser Code nicht, richtig?

Wenn SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) den Wert 3 ergibt, wird der Code true zurückgegeben

 
Ivan_Invanov:

Die Hilfe ist vielleicht nicht fehlerhaft, aber sie ist nicht klar geschrieben (vielleicht nur für mich). Wie gesagt, ich habe es mit dem Code überprüft, und das Problem ist jetzt verschwunden. In diesem Thread wurde mir gesagt, dass die Funktion

zurückkehren können 3.

Wenn es 3 zurückgibt, dann wird diese Art von Code nicht funktionieren, richtig?

Ich versuche, Ihnen noch einmal zu zeigen, was ich auf der zweiten Seite Ihres Themas geschrieben habe.

einer bitweisen Operation kann also nur die Frage beantworten: Kann diese oder jene Füllungsrichtlinie angewendet werden.


Sie sollten versuchen, das Geschriebene sorgfältig zu lesen. Die Funktion SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)

  • kann 1 zurückgeben, was SYMBOL_FILLING_FOK entspricht
  • kann 2 zurückgeben, was SYMBOL_FILLING_IOC entspricht
  • kann 3 zurückgeben, was der Summe von SYMBOL_FILLING_FOK + SYMBOL_FILLING_IOC entspricht.

Drucken der Flaggen SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC

Einfach schreiben

Print(SYMBOL_FILLING_FOK);
Print(SYMBOL_FILLING_IOC);

Was Sie sehen werden¿¿¿¿

 
Dmitry Fedoseev:

Wenn SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) den Wert 3 ergibt, wird der Code true zurückgegeben

Danke, jetzt habe ich gemerkt, dass ich die Konjunktion falsch gemacht habe.
 
Ich danke Ihnen allen für Ihre Antworten. Es ist alles geklärt. Ich habe einen Fehler bei den logischen Operationen gemacht, weshalb die Verwirrung entstanden ist. Danke, dass Sie sich mit mir anlegen)
Grund der Beschwerde: