problem z zamykaniem pozycji po swiecy

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
pietra997
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 30 paź 2007, 16:00

problem z zamykaniem pozycji po swiecy

Nieprzeczytany post autor: pietra997 »

Problem polega na tym, iż nie zamyka pozycji w miejscu, w ktorym powinno a mianowicie jak otworzy SELL na spadkowej swiecy to jezeli nastepna otworzy powyzej zamkniecia wczesniejszej to automatycznie zamyka pozycje

Kod: Zaznacz cały

...
m15=iClose("EURUSD",PERIOD_M15, 1);
o=iOpen("EURUSD",PERIOD_M15, 0);
...

  int totalorders = OrdersTotal();

OrderSelect(ticket1, SELECT_BY_TICKET);     

      if (OrderType()==OP_SELL&&OrderCloseTime()==0)
                     {
                      if(m15<o)//zamykanie pozycji
              
                         { //4 zamknij sell
                       OrderClose(ticket1,OrderLots(),NormalizeDouble(Ask,Digits),3,Red);
                       } //4
                    
           RefreshRates(); 
                  if(OrderType() == OP_BUY&&OrderCloseTime()==0)
                   { //2 zamknij BUY
                         if(m15>o)//zamykanie pozycji
                      {//3
                      OrderClose(ticket1,OrderLots(),NormalizeDouble(Bid,Digits),3,Blue);
                      } //3
                  
                   }//2  

}
z gory dziekuje!
Panie rozswietl umysly inwestorów, pozbądz ich chciwosci,strachu,nadziei
daj im duzo zdrowia,sczsesia osobistegi i pieniedzy aby nie musieli zarabiac na giełdzie

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Re: problem z zamykaniem pozycji po swiecy

Nieprzeczytany post autor: CoVal »

pietra997 pisze:Problem polega na tym, iż nie zamyka pozycji w miejscu, w ktorym powinno a mianowicie jak otworzy SELL na spadkowej swiecy to jezeli nastepna otworzy powyzej zamkniecia wczesniejszej to automatycznie zamyka pozycje

Kod: Zaznacz cały

...
m15=iClose("EURUSD",PERIOD_M15, 1);
o=iOpen("EURUSD",PERIOD_M15, 0);
...

  int totalorders = OrdersTotal();

OrderSelect(ticket1, SELECT_BY_TICKET);     

      if (OrderType()==OP_SELL&&OrderCloseTime()==0)
                     {
                      if(m15<o)//zamykanie pozycji
              
                         { //4 zamknij sell
                       OrderClose(ticket1,OrderLots(),NormalizeDouble(Ask,Digits),3,Red);
                       } //4
                    
           RefreshRates(); 
                  if(OrderType() == OP_BUY&&OrderCloseTime()==0)
                   { //2 zamknij BUY
                         if(m15>o)//zamykanie pozycji
                      {//3
                      OrderClose(ticket1,OrderLots(),NormalizeDouble(Bid,Digits),3,Blue);
                      } //3
                  
                   }//2  

}
z gory dziekuje!
niezbyt jasno opisales problem, ale z tego co widze, to....
1. sprawdzasz cene zamkniecia poprzedniej swiecy i otwarcia obecnej swiecy (czyli sprawdzasz czy jest luka)...
2. porownujesz je i jesli obecna swieca otwarla sie ponizej zamkniecia poprzedniej swiecy, to usilujesz zamknac shorta....
3. analogicznie, jesli Open[0]>Close[0] to zamknac jakiegos longa...

nie napisales w jaki sposob otwierasz te pozycje i czy ticket number kazdej nowej pozycji (bo rozumiem, ze moze ich byc kilka otwartych rownoczesnie) jest przypisywany do zmiennej ticket1....
jesli tak, to zawsze ci wybierze i zamknie ta pozycje ktorej ticket jest przypisany do zmiennej ticket1.

ODPOWIEDZ