OrderClose funktioniert nicht - Seite 4

 

Hallo,

Ich kompiliere das Folgende und bekomme folgende Fehler: Darf ich wissen, welcher Teil falsch gelaufen ist?


'postin forum.mq4'      postin forum.mq4        1       1
',' - unexpected token  postin forum.mq4        59      53
expression has no effect        postin forum.mq4        59      54
1 error(s), 1 warning(s)                2       2
//+------------------------------------------------------------------+
//|                                                       chuale.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.abc.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.abc.com"
#property version   "1.00"
#property strict

extern double   TakeProfit=500;
extern double   Lots=0.1;
extern double   StopLoss=300;

double     bar1;
double     bar2;
double     bar3;
int        total,ticket;
//datetime   previousTime; 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
  
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {

  total=OrdersTotal();
      bar1=(iClose(Symbol(),PERIOD_M1,2)-iClose(Symbol(),PERIOD_M1,3))*100;
      bar2=(iClose(Symbol(),PERIOD_M1,1)-iClose(Symbol(),PERIOD_M1,2))*100;
      bar3=(iClose(Symbol(),PERIOD_M1,0)-iClose(Symbol(),PERIOD_M1,1))*100;
     Comment("Bar1="+DoubleToString(bar1,Digits)+"\n"+
             "Bar2="+DoubleToString(bar2,Digits)+"\n"+
             "Bar3="+DoubleToString(bar3,Digits)+"\n"
             );
                         
   if(total>0)
   {
   OrderSelect(0,SELECT_BY_POS);
   if (bar3<-2) OrderClose(OrderTicket(),Lots,Bid,3),Green;
   if (bar3>2) OrderClose(OrderTicket(), Lots,Ask,3,Red);
   }
   //if(Time[0]==previousTime) return(0);
   //previousTime=Time[0];
   if(total<1)
     {
      if (bar3>1)
      {  
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Chua EA",12345,0,Green);
      //if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLasterror());
      return(0);
      }
      
      if (bar3<-1)
      {
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid+-TakeProfit*Point,"Chua EA",12345,0,Red);
      //if(ticket<0)Print("Error OP_SELL order failed, error:"+GetLasterror());
      return(0);
      }
     }
   
   return(0);
  }
//+------------------------------------------------------------------+
 
Vergleichen Sie die beiden Zeilen.
   if (bar3<-2) OrderClose(OrderTicket(),Lots,Bid,3),Green;
   if (bar3>2)  OrderClose(OrderTicket(),Lots,Ask,3,Red);
 

Der Fehlerbericht zeigt Ihnen, wo der Fehler liegt

',' - unerwartetes Token postin forum.mq4 59 53

und wenn Sie auf den Fehler doppelklicken, wird der Cursor direkt zum Problem geführt

 

Hallo GumRai,


danke, ich habe es korrigiert. Der Fehler kommt von den versehentlich eingefügten Klammern.

 

Vielen Dank, WHRoeder.

Ist

 

Hallo thrdel,

Bezieht sich Time[0] auf die Zeit von Takt 0? Gibt es Time[1], Time [2] usw.? Ich habe versucht, es zu googeln, aber nicht viele Informationen im Internet. Außerdem, wenn ich diesen EA an zwei Währungspaare anhänge, bedeutet das, dass OrderSelect nur die Orders im Chart selbst oder alle Orders im Terminal auswählt?

 

Hallo thrdel,


Warum erhalte ich diese Warnmeldung "implizite Konvertierung von 'Zahl' in 'String' postin forum.mq4 69 61" für die Codierung " if(ticket<0)Print("Fehler OP_BUY Bestellung fehlgeschlagen, Fehler: "+GetLastError());"?

 
chuale:

Bezieht sich Time[0] auf die Zeit von Takt 0? Gibt es Time[1], Time [2] usw.?

Ja

chuale:

Ich habe versucht, es zu googeln, aber es gibt nicht viele Informationen im Internet.

http://bit.ly/1fJi4XA

chuale:

Außerdem, wenn ich diesen EA an zwei Währungspaare anhänge, bedeutet das, dass OrderSelect nur die Orders im Chart selbst oder alle Orders im Terminal auswählt?

hängt von Ihrem Code ab

 
Danke qiol
 
chuale:

Hallo thrdel,


Warum bekomme ich diese Warnmeldung "implizite Konvertierung von 'Zahl' zu 'String' postin forum.mq4 69 61" für den Code "if(ticket<0)Print("Fehler OP_BUY Bestellung fehlgeschlagen, Fehler: "+GetLastError());"?


"Die implizite Konvertierung von 'Zahl' in 'String' kann bei großen Schleifen sehr lästig sein.

Das bedeutet, dass Sie im Fehlerbericht durch viele Zeilen blättern müssen.

In Ihrem Fall ist GetLastError() ein Integer-Code, so dass Sie nur gewarnt werden, dass er für die Druckanweisung in einen String umgewandelt wird.

Wenn Sie sich sicher sind, dass dies kein Problem ist, können Sie (string) hinzufügen, um diese lästigen Warnungen zu vermeiden.

if(ticket<0)   Print("Error OP_BUY order failed, error:" + (string) GetLastError());

Übrigens, falls Sie es noch nicht wussten.

Ich platziere dies normalerweise nach den Externs/Inputs

#include <stdlib.mqh>

und dann können Sie verwenden

if(ticket<0)   Print("Error OP_BUY order failed, error: " + ErrorDescription(GetLastError() ) );

Damit die Beschreibung des Fehlers gedruckt wird, nicht nur der Code