zamknięcie otwartych pozycji

O jezykach programowania w platformach i nie tylko.
LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

jak zawsze bede przestrzegal przed zamykaniem pozycji poczawszy od zerowego indeksu.

Kod: Zaznacz cały

 for (i = 0; i < OrdersTotal(); i++)
przypuśćmy, ze sa 3 transakcje otwarte, (0,1,2)
w pierwszym przebiegu OrdersTotals() zwroci 3 i system zamknie pozycje nr 0,
w drugim przebiegu OrdersTotal zwroci 2, i=1, wiec zakmnie pozycje nr 1.
w trzecim przebiegu OrdersTotal zwroci 1, a "i" będzie wynosilo 2, czyli warunek nie spelnony i pozycji trzeciej nie zamknie.

(pomine obsluge bledow) i nie sprawdzalem czy nie ma jakiejs literowki

Kod: Zaznacz cały

void ZamknijBuy(int MAGIC)
{     
   
   for (int i = OrdersTotal()-1; i>=0; i--)
   {
     if  ( !OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ) continue; //nie wybrano
     if  (OrderSymbol() != Symbol()  continue;                                                //nie zgadza sie symbol
     if (OrderType() != OP_BUY)  continue;                                                    //nie zgadza sie typ 
     if  (OrderMagicNumber() != MAGIC) continue;                                       //nie zgadza sie magic number                      
      OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Aqua);        //zamykamy
         
      
   }
} 

ODPOWIEDZ