Zamykanie zleceń

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
bucho1504
Stały bywalec
Stały bywalec
Posty: 55
Rejestracja: 01 sie 2008, 21:46

Zamykanie zleceń

Nieprzeczytany post autor: bucho1504 »

Witam
mam prośbę napisałem program zamykający SELL i BUY ale nie zamyka mi wszystkich otwartych zleceń tylko te które osiągnę odpowiednią wartośc jak to poprawic żeby zamykało wszystkie po osiągnięciu AccountProfit np.30

Kod: Zaznacz cały

{
       int i; 
       for (i = OrdersTotal(); i>=0 ; i--) 
            { 
               OrderSelect(i,SELECT_BY_POS,MODE_TRADES);  
                      
               {             
                if (AccountProfit() >= MarketInfo(Symbol(),MODE_TICKVALUE)*30) //jeśli tak to zamykamy 
               {
              
               bool result = true;
               int type   = OrderType(); 
               switch(type)
               {
               
        
         case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5,                                 Red );
                             break;
      
         
         case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5,                                 Red );
                             break;
             }
            } 
          } 
        } 
      } 
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ten nie popełnia błędów kto nic nie robi

MkubuxK
Pasjonat
Pasjonat
Posty: 1051
Rejestracja: 20 maja 2009, 18:27

Nieprzeczytany post autor: MkubuxK »

Kod: Zaznacz cały

int zamknijOtwartePozycje(int kierunek)
{
   for (int i = OrdersTotal()-1; i >= 0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol())
         {
            if (OrderType() == OP_BUY && kierunek >= 0)
               { // zamkniej BUY
               OrderClose(OrderTicket(),OrderLots(),Bid,0,Blue);
              
               }
            if (OrderType() == OP_SELL && kierunek <=0)
               { // zamkniej SELL
               OrderClose(OrderTicket(),OrderLots(),Ask,0,Blue);
              
               }
         }
      }
   }

}


if(accountProfit()>Twojawartosc)zamknijOtwartePozycje(0);
fx-forum

Awatar użytkownika
bucho1504
Stały bywalec
Stały bywalec
Posty: 55
Rejestracja: 01 sie 2008, 21:46

Nieprzeczytany post autor: bucho1504 »

Dzięki pomogło :D

Dodano po 3 godzinach 16 minutach:

mam jeszcze jedno pytanko ???
czy w mql istnieje coś takiego jak przeciążenie funkcji ??? i jak to ominąc,
zdarza się że warunki są spełnione a wynik jest inny dlaczego ????
Ten nie popełnia błędów kto nic nie robi

MkubuxK
Pasjonat
Pasjonat
Posty: 1051
Rejestracja: 20 maja 2009, 18:27

Nieprzeczytany post autor: MkubuxK »

Wynik powinien się zgadzać. Musisz popełniać gdzieś błąd w obliczeniach. Wklej funkcję, która uważasz że błędnie coś liczy.

Nie można przeciążać funkcji.
fx-forum

ODPOWIEDZ