Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 12.03.12
Free99 Free99 ist offline
Elite Mitglied
 
Registriert seit: Jan 2012
Beiträge: 247
Free99 befindet sich auf einem aufstrebenden Ast
Standard

puh... bei der Formatierung kann man ja auch nix finden ;-)

erstmal schreib dir ne Funktion, die deinen EA zählt.
Dazu brauchst du ne MagicNumber.
Code:
extern int magic = 1234;
dann sorgst du dafür dass er zählt.
Code:
int fOrdersCount()
{
   int orders = 0;

   int cnt = OrdersTotal();
   for (int i=0; i<cnt; i++) {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderMagicNumber() != magic)orders++;
   }
   return (orders);
}
jetzt fügst du ne Abfrage dafür ein, die die og. Funktion nutzt

Code:
if (fOrdersCount() < MaxTrades)
{
   if (!ExistPositions()) 
   {
      if (diClose0<diMA1) 
      {
         OpenBuy();
         return(0); 
      }
      if (diClose2>diMA3) 
      {
         OpenSell();
         return(0); 
      } 
   }
}
allerdings frage ich mich, wie er überhaupt mehr als eine Position aufmachen kann, wenn er durch !ExistPosistions() überhaupt nur aufmacht, wenn er keine aktuell offenen Positionen hat?

NOT ExistPositions bedeutet ja, wenn die Funktion ein false wiedergibt, was dann eintritt, wenn keine Positionen offen sind. Sind also welche offen, so macht er sowieso keine weiteren auf.

Solltest du 10 Trades für den gesamten Account meinen, so vergiss das oben und nimm folgendes:

Code:
if (OrdersTotal() < MaxTrades)
{
   if (!ExistPositions()) 
   {
      if (diClose0<diMA1) 
      {
         OpenBuy();
         return(0); 
      }
      if (diClose2>diMA3) 
      {
         OpenSell();
         return(0); 
      } 
   }
}