Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 19.01.16
Hosch Hosch ist offline
Mitglied
 
Registriert seit: Jun 2014
Beiträge: 214
Hosch befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Danke erstemal für das Gespräch.

Ich habe den Code von Dir probiert und erhalte die folgende Warnung:

return value of 'OrderSelect' should be checked Test.mq4


Was ist hier richtig, damit es ohne Warnung erscheint?

Mit der if habe ich eine Möglichkeit und die Zweite ist:

bool OrdSel = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

Da OrderSelect eine Bool Funktion ist, setze ich eine bool Variable davor.


PHP-Code:
double getOpenBuyTrade()
  {
   
int total=OrdersTotal();
   for(
int i=0;i<total;i++)
     {
      
bool OrdSel OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
OrderType()==OP_BUY && OrderSymbol()==Symbol())
        {
         if(
OrderMagicNumber()==MagicNr)
            return(
OrderOpenPrice());

        }
     }
   return(
0);
  } 

Nachtrag:
Da die OrderSelect Funktion eine bool Funktion ist, gibt sie true bei erfolgreicher Funktionsausführung zurück, oder false bei verfehlter Funktionsausführung.
D.h. damit sollte der Code mit der if-Anweisung Sinn machen. Da dieser bei erfolgter true Meldung gleich weiter im Codeablauf geht, oder unterbricht.
Durchführung und Bestätigung sind hier in einer Zeile.
Sali,

das ist richtig, was du schreibst und auch richtig, dass der Compiler einer Warnung wirft. Du kannst das abprüfen. Wichtig ist, dass das funktioniert wenn du das so wie unten dargestellt abprüfst.

PHP-Code:
double getOpenBuyTrade()
  {
   
int total=OrdersTotal();
   for(
int i=0;i<total;i++)
     {
      
bool OrdSel OrderSelect(i,SELECT_BY_POS,MODE_TRADES)
// oder
    
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
      if(
OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrdSel)
        {
         if(
OrderMagicNumber()==MagicNr)
            return(
OrderOpenPrice());

        }
 }

     }
   return(
0);
  }