Chiudere tutti i trade di un magic number

 

Buongiorno a tutti.

Non riesco a capire come poter fare il calsolo del profitto delle posizioni aperte con un magic number e, nel caso in cui sia superiore a un certo TP o inferiore a SL, mi chiuda tutte le posizioni.

Per il calcolo del profit ho usato:

int swap=0;
for(int a=PositionsTotal()-1;a>=0;a--)
{
ulong positionticket=PositionGetTicket(a);
PrintFormat("********->"+PostionGetInteger(POSITION_MAGIC)+" "+PositionGetInteger(POSITION_TIME)+" :"+PositionGetSymbol(POSITION_SYMBOL)+" "+MagicNumber);
if(PositionGetInteger(POSITION_MAGIC)==MagicNumber)
{
profit=profit+PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}
total_profit=total_profit+PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}

la riga del PrintFormat è per controllare i dati che ho passato. il total_profit viene aggiornato normalmente, mentre il profit no. Qualcuno sa aiutarmi? nell'input ottengo "0".

Stessa cosa quando voglio chiudere tutti i trade aperti di un certo magicnumber. Non me li chiude punti.

Dove sbaglio? 

   void closealltrade(int magicnumber)
   {
   for(int i=PositionsTotal()-1;i>=0;i--)
   {
   int ticket = PositionGetTicket(i);
  if(PositionGetInteger(POSITION_MAGIC)==magicnumber)
 {
       trade.PositionClose(ticket);
       tradeaperti=0;  // azzero i trade aprti
       cicli=1; // azzero i cicli (deve sempre partire da 1)
 }

   }
   }

GRAZIE DI CUORE per ogni aiuto che mi darete

Francesco

 

Per favore non postare a caso in nessuna sezione. L'argomento è stato spostato nella sezione: Expert Advisors e Trading Automatico
 
Fernando Carreiro #:

Per favore non postare a caso in nessuna sezione. L'argomento è stato spostato nella sezione: Expert Advisors e Trading Automatico

Grazie e scusa ma non sapevo come fare.