Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 27.07.13
Racki Racki ist offline
Mitglied
 
Registriert seit: Apr 2011
Ort: Osnabrück
Beiträge: 103
Racki befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
wie man die Anzahl der Positionen zählt habe ich hier schon mal irgendwo gepostet. Das geht hiermit:
PHP-Code:
//+------------------------------------------------------------------+
//| Anzahl der Longpositionen                                        |
//+------------------------------------------------------------------+
int CountLong(string countLongSymbolint countLongMagic)
{
   
int CountLongReturn 0;
   if (
OrdersTotal() > )
   {
       for(
int counterCountLong 0counterCountLong OrdersTotal(); counterCountLong++)
       {
           
OrderSelect(counterCountLongSELECT_BY_POSMODE_TRADES);
           if(
OrderSymbol() == countLongSymbol && OrderMagicNumber() == countLongMagic)
           {
              if(
OrderType() == OP_BUY)
                 {
                    
CountLongReturn++;
                 }
           }
       }
   }
   return (
CountLongReturn);

Wenn man diese Funktion jetzt etwas abändert, dann kann man auch die Gesamtgröße der Lots berechnen.
PHP-Code:
//+------------------------------------------------------------------+
//| Gesamtgröße der Lots                                             |
//+------------------------------------------------------------------+
double CountLongLots(string countLongSymbolint countLongMagic)
{
   
double CountLongLotsReturn 0.0;
   if (
OrdersTotal() > )
   {
       for(
int counterCountLong 0counterCountLong OrdersTotal(); counterCountLong++)
       {
           
OrderSelect(counterCountLongSELECT_BY_POSMODE_TRADES);
           if(
OrderSymbol() == countLongSymbol && OrderMagicNumber() == countLongMagic)
           {
              if(
OrderType() == OP_BUY)
                 {
                    
CountLongLotsReturn+=OrderLots();
                 }
           }
       }
   }
   return (
CountLongLotsReturn);

Für Short musste das entsprechend ändern, oder einen Schalter als Modus an die Funktion übergeben...
Quasi so:
PHP-Code:
int CountPositions(string countSymbolint countMagicint countModus=OP_BUY)
{
   
int CountReturn 0;
   if (
OrdersTotal() > )
   {
       for(
int counter 0counter OrdersTotal(); counter++)
       {
           
OrderSelect(counterSELECT_BY_POSMODE_TRADES);
           if(
OrderSymbol() == countSymbol && OrderMagicNumber() == countMagic)
           {
              if(
OrderType() == countModus)
                 {
                    
CountReturn++;
                 }
           }
       }
   }
   return (
CountReturn);

Das ist sogar ne Ecke eleganter.
Für das Aufaddieren der Lotgrößen dann dieses hier:

PHP-Code:
double CountLots(string countSymbolint countMagicint countModus=OP_BUY)
{
   
double CountReturn 0.0;
   if (
OrdersTotal() > )
   {
       for(
int counter 0counter OrdersTotal(); counter++)
       {
           
OrderSelect(counterSELECT_BY_POSMODE_TRADES);
           if(
OrderSymbol() == countSymbol && OrderMagicNumber() == countMagic)
           {
              if(
OrderType() == countModus)
                 {
                    
CountReturn+=OrderLots();
                 }
           }
       }
   }
   return (
CountReturn);

Hoffe dir geholfen zu haben
Racki