zamykanie - inny problem

O jezykach programowania w platformach i nie tylko.
poxter
Stały bywalec
Stały bywalec
Posty: 39
Rejestracja: 26 gru 2007, 20:57

zamykanie - inny problem

Nieprzeczytany post autor: poxter »

Kod: Zaznacz cały

   for(cnt=0;cnt<total;cnt++)
     {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if(OrderSymbol()=="EURGBP" )  
     {
     
     return(0);
   
     
     }
         else 
{
      while(OrdersTotal()<2)
      {
         if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) 
         {
            switch(OrderType())
            {
               case OP_BUY       :OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),NULL,Violet); break;
               case OP_SELL      :OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),NULL,Violet); break;
               case OP_BUYLIMIT  :OrderDelete(OrderTicket()); break;
               case OP_SELLLIMIT :OrderDelete(OrderTicket()); break;
               case OP_BUYSTOP   :OrderDelete(OrderTicket()); break;
               case OP_SELLSTOP  :OrderDelete(OrderTicket()); break;
               default           :Alert("Unknown order type: ",OrderType()," of trade ticket ",OrderTicket());
            }
                  
         }
     }
 
   return(0);
  }}
kod ma za zadania zamykać wszystkie pozycje gdy nie ma otwartych pozycji na parze EURGBP a gdy jest otwarta ma siedzieć "cicho" ;D

problem w tym że działa nawet jak jest para EURGBP otwarta

Wie ktoś jak to rozwiązać

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Używając twojego kodu:

Kod: Zaznacz cały

for(cnt=0;cnt<total;cnt++) 
 { 
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 
         if(OrderSymbol()=="EURGBP" )  return(0); 
}


//a tutaj zamykanie wszystkich
...
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

rrozak
Stały bywalec
Stały bywalec
Posty: 76
Rejestracja: 19 mar 2010, 16:43

Nieprzeczytany post autor: rrozak »

I lepiej w pętli dekrementuj. Nie ma to znaczenia przy jednym zleceniu, ale przy dwóch już może mieć ;)

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

proponuje zroc to w osobnych funkcjach

najpierw jedna funkcja sprawdzic czy jest otwarta pzycja na wybranej parze walutowej
a dopiero po tem po spelneniu warunkow dwolac sie do funkcji zamykajacej transakcje

bo w takim ukladzie jak wyzej moze byc problem gdy zmieni sie kolejnosc otwartych zlecen;)

pzdr Andrzej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

ODPOWIEDZ