zamknięcie na niskim proficie

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

zamknięcie na niskim proficie

Nieprzeczytany post autor: personov »

W jaki sposób zamknąć pozycję z profitem np. 2 pipsów, kiedy TP jest zbyt blisko ceny otwarcia.
Mam pomysł , żeby sprawdzić wysokość profitu, albo różnicę ceny od ceny otwarcia zlecenia. Ten drugi sposób byłby nawet lepszy ponieważ volumen może być różny i profit może też się zmieniać więc nie zawsze to będzie 2 pipsy.
Zrobiłem tak :

Kod: Zaznacz cały

if(OrderSelect(0, SELECT_BY_POS)) 
double cena = OrderOpenPrice();
if (status==1 && (Bid-0.0002)>cena){
      ZamknijBuy();
      status=2;
      }
/////////////////////////////////////////////////////////////////////////
void ZamknijBuy() 
{      
   int i; 
    
   for (i = 0; i < OrdersTotal(); i++) 
   { 
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES); 
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) 
      { 
         if (OrderType() == OP_BUY) 
         { 
            OrderClose(OrderTicket(), OrderLots(), Bid,3, Aqua); 
         } 
      } 
   } 
} 
Status to zmienna, która jest przełączana przy otwieraniu i zamykaniu pozycji, w tym przypadku jest po to aby rozróżnić , że chodzi o pozycję BUY.
A jednak nie działa. Powiecie mi co jest źle ?
Solą życia jest kasa.

Awatar użytkownika
drapichrust
Stały bywalec
Stały bywalec
Posty: 73
Rejestracja: 03 gru 2009, 11:22

Nieprzeczytany post autor: drapichrust »

Po co komplikować sobie życie funkcja void, wystarczy to co napisales plus dodatkowy warunek

Kod: Zaznacz cały


   for (int i = 0; i < OrdersTotal(); i++)
   {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      {
         if (OrderType() == OP_BUY)
             {
             if(Close[0]>OrderOpenPrice()+2*Point)      
             {
             OrderClose(OrderTicket(), OrderLots(), Bid,2, Aqua);    //slippage 2 styknie
             }}
      }
    }
"Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona."
- Albert Einstein

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Nieprzeczytany post autor: personov »

A możesz sprecyzować co zostaje z tego co napisałem ?
Solą życia jest kasa.

Awatar użytkownika
drapichrust
Stały bywalec
Stały bywalec
Posty: 73
Rejestracja: 03 gru 2009, 11:22

Nieprzeczytany post autor: drapichrust »

dokładnie to co podałem
"Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona."
- Albert Einstein

ODPOWIEDZ