Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 22.03.12
naranjoe naranjoe ist offline
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

im Grund hat der EA schon die Funktion enthalten um die Trades zu begrenzen.
Die Funktion muss nur etwas verändert werden.

Du musst diese Funktion
Code:
bool ExistPositions() {
for(int i=0;i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderComment()==Name_Expert) return(True);
else return(false); } }
durch diese ersetzen
Code:
bool ExistPositions() 
 {
  int ocount = 0;
  for(int i=0;i<OrdersTotal(); i++) 
       {
        OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderSymbol()==Symbol() && OrderComment()==Name_Expert) ocount++;
       }
  if (ocount < MaxTrades)
     {
      return(true);
     }
  else 
     {
      return(false); 
     } 
 }
Der Unterschied besteht darin, das in der neuen ExistPositions() die geöffneten Orders auch gezählt werden.
Nur wenn die Anzahl der Orders < MaxTrades ist wird eine neue Order geöffnet.


Dann nur noch die Verneinung in der start() enfernen, also
Code:
if(!ExistPositions())
ändern in
Zitat:
if(ExistPositions())
Am Ende kannst du das
Code:
if(total>0 && total <= MaxTrades)
{
;}
löschen, es hat keine Funktion.

Gruß
naranjoe