Obliczenie"wspólnego" BE

O jezykach programowania w platformach i nie tylko.
GoAway
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 15 sty 2012, 22:34

Obliczenie"wspólnego" BE

Nieprzeczytany post autor: GoAway »

Załóżmy, że mam otwarte kilka zleceń (ten sam typ - BUY lub SELL). Każde innej wielkości.

W jaki najprostszy i najszybszy sposób można obliczyć "wspólną" wartość BE ?
(chodzi mi o taką wartość, że jak cena dojdzie do niej i w tym momencie zamknę wszystkie zlecenia to nic nie stracę i nie zyskam, czyli taka wartość globalna, wspólna dla tych zleceń)

Mam nadzieję, że wyraziłem się w miarę jasno :)

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

Nieprzeczytany post autor: Tig3r »

średnia ważona (ceny otwarć i lot)
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

grzesiek_pociejewski
Bywalec
Bywalec
Posty: 10
Rejestracja: 11 sty 2012, 21:07

Nieprzeczytany post autor: grzesiek_pociejewski »

gdzies na forum dokladalem rozszerzenie do lvoe ktore nie tylko liczy ale rysuje linie na poziomie wspolnego BE i wystawia tam stoplossa dla wszystkich pozycji :)

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

Nieprzeczytany post autor: personov »

Dla czterech pozycji otwartych :
(cena otwarcia pierwszego zlecenia*lot pierwszego)+(cena otwarcia drugiego zlecenia*lot drugiego)+(cena otwarcia trzeciego zlecenia*lot trzeciego)+(cena otwarcia czwartego zlecenia*lot czwartego).
I to wszystko dzielisz przez ( lot pierwszego+lot drugiego+lot trzeciego+lot czwartego).
I tak samo dla większej lub mniejszej ilości zleceń.
Wynikiem jest cena BE dla wszystkich zleceń.
Jeśli masz otwarte jednocześnie BUY i SELL to zlecenia się równoważą na pewnym poziomie i BE nie istnieje, ponieważ nigdy nie będziesz miał "0"
Solą życia jest kasa.

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

Nieprzeczytany post autor: personov »

A czy ktoś może mi podpowiedzieć jak takie dane wyciągnąć w kodzie ?
Chodzi mi o ceny otwarć i wielkość lota wszystkich otwartych pozycji ?
Solą życia jest kasa.

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

Nieprzeczytany post autor: Pierz Andrzej »

Kod: Zaznacz cały

double be(int cmd)
{
   double lot = 0;
   double sum = 0;
   for (int i = OrdersTotal()-1;i>=0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (Symbol() == OrderSymbol() && cmd ==OrderType())
      {
         RefreshRates();
         sum += OrderOpenPrice() * OrderLots();
         lot += OrderLots();
      }
   }
   if (lot != 0) return(sum / lot);
   return(-1);
}
pozdrawiam
Andrzej Pierz
z poważaniem
Andrzej Pierz
FOREX-SERVICE

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

Nieprzeczytany post autor: personov »

Dziękuję za pomoc. W wolnej chwili przeanalizuję tą funkcję.
Solą życia jest kasa.

ODPOWIEDZ