Kod: Zaznacz cały
for (i = 0; i < OrdersTotal(); i++)
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
}
}