Frage zur OrderSelect-Funktion - Seite 3

 

"OrderSelect()" gibt einen Integer-Wert zurück, obwohl in der Dokumentation eindeutig steht, dass es einen Boolean-Wert zurückgibt?

Boolean ist 0 oder 1

Sie überprüfen nicht einmal das Ergebnis von "OrderClose()" oder ob ein Laufzeitfehler aufgetreten ist! Ich werde den Code schreiben, nachdem ich Order Select FMIC verstanden habe

c-Programmierung ist wichtig zu verstehen. glücklich?

 
boopa26:

"OrderSelect()" gibt einen Integer-Wert zurück, obwohl in der Dokumentation eindeutig steht, dass es einen Boolean-Wert zurückgibt?

Boolean ist 0 oder 1

Sie überprüfen nicht einmal das Ergebnis von "OrderClose()" oder ob ein Laufzeitfehler aufgetreten ist! ja, aber das kommt nach FMIC

Es ist bereits ein Boolescher Wert, Sie brauchen ihn mit nichts zu vergleichen, weder mit einer anderen booleschen Konstante noch mit einem typisierten Integer. Sie sollten intern dargestellte boolesche Werte nicht hart kodieren! Sie sollten "true" oder "false" verwenden, aber idealerweise nur beim Initialisieren einer Variablen, nicht bei Vergleichen.

if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == true )"
if(  OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 1 )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == false )"
if( !OrderSelect( ... ) )  // instead of "if( OrderSelect( ... ) == 0 )"

Hätten Sie sich die Mühe gemacht, "C" zu lernen, hätten Sie das gewusst!

 

Ich habe folgende Frage

Was schaltet die Funktion order select von false auf true?

ich verstehe ! gleich nicht

Beispiele

if not order select oder if order select BUT

standardmäßig ist order select 0, was also schaltet order select von 0 auf 1?

In der Dokumentation steht

"Zurückgegebener Wert

Sie gibt true zurück, wenn die Funktion erfolgreich war.

das sind nicht genug Informationen für mich, um zu verstehen


Vielen Dank FMIC

 
boopa26:

nur dieses Forum

eddie, weißt du irgendetwas über die Auftragsauswahlfunktion?

Natürlich weiß ich das.

Ich habe von anderen Programmierern gelernt und bin in der Lage, die MQL-Bücher und Handbücher zu lesen.

Aber der wichtigste Punkt ist: Ich habe gelernt, den Debugger zu benutzen. Das hat mir viel Zeit bei der Suche nach MEINEN analytischen und Programmierfehlern erspart.

 
gut gemacht eddie
 
boopa26: ich verstehe ! equals not

Wenn Sie das verstehen, warum haben Sie es dann nicht von Anfang an richtig gemacht?

boopa26 : Das ist meine Frage

Was schaltet die Funktion select von false auf true um?

Beispiele

if not order select oder if order select BUT

standardmäßig ist order select 0, was schaltet also order select von 0 auf 1?

In der Dokumentation steht

"Zurückgegebener Wert: Es wird true zurückgegeben, wenn die Funktion erfolgreich ist."

das ist nicht genug Information für mich, um zu verstehen

Es gibt weder einen "Standardwert" noch wechselt sie von einem Wert zum anderen! Entweder gelingt es, die Reihenfolge auszuwählen, und es wird "true" zurückgegeben, oder es schlägt fehl, und es wird "false" zurückgegeben, und Sie müssen den Fehlercode überprüfen, um herauszufinden, warum!

 
  1. boopa26: will order select Funktion schreiben, um Aufträge ohne for cycles oder while cycles zu schließen.
    Postetdann Code mit Zyklen
  2. boopa26: lese jetzt die Dokumentation https://docs.mql4.com/trading/orderselect
    Postet Fragen vor dem Lesen.
  3. boopa26:

    1. benötigt keine C-Kenntnisse. mql4 hat verschiedene Funktionen

    3. lese bereits Dokumentation

    4. bereits geschriebener Code

    Widerspricht sich dann selbst bezüglich der Dokumentation und wird argumentativ.
  4. Musngi wird gebannt und boopa26 taucht plötzlich auf. Zufällig? Glaube ich nicht.

Bitte füttern Sie den Troll nicht. Wenn du antwortest, gibst du dem Troll Macht. Wenn ihr den Troll ignoriert, hungert er nach Aufmerksamkeit und stirbt schließlich.

 

Hallo, ich kann Order Select zyklisch ausführen, um offene Aufträge zu finden, aber ich kann Order Select nicht zyklisch ausführen, um Gewinne aus geschlossenen Aufträgen zu finden.

Dieser Code zyklisiert Order Select, um offene Orders zu finden

static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  
   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

https://docs.mql4.com/trading/orderselect

https://docs.mql4.com/trading/orderprofit

vielleicht dies

if(OrdersHistoryTotal()>0&&
   b<OrdersHistoryTotal()&&
   OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==0)

   b++;
 
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

Sie initialisieren die Variable a nicht und warum ist sie statisch?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

Man hat Ihnen bereits gesagt, dass Sie true oder false verwenden sollen, nicht 1 oder 0.

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Sie gehen die Aufträge nicht zyklisch durch

 
Keith Watford:
static int a;

//cycle order select

if(OrdersTotal()>0&&
   a<OrdersTotal()&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

   a++;

//close open order

if(OrdersTotal()>0&&
   OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==1&&
   OrderMagicNumber()==magic_number&&
   OrderType()==OP_BUY&&
// close order signal)
  

   OrderClose(OrderTicket(),lots_2,Bid,3,Blue);

static int a;

Sie initialisieren die Variable a nicht und warum ist sie statisch?


OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==0)

Es wurde Ihnen bereits gesagt, dass Sie true oder false verwenden sollten, nicht 1 oder 0

OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==false)
// OR
!OrderSelect(a,SELECT_BY_POS,MODE_TRADES))


Sie gehen nicht durch die Aufträge

static int a; sits above start(){ GLOBAL VALUE

es gibt keinen Unterschied zwischen 1 oder 0. true oder false

Ich erhöhe den Wert a, nachdem die Bedingungen in Kraft getreten sind.