Pipsometr by Lutkom

O jezykach programowania w platformach i nie tylko.
swer
Stały bywalec
Stały bywalec
Posty: 43
Rejestracja: 05 mar 2009, 13:13

Pipsometr by Lutkom

Nieprzeczytany post autor: swer »

Witam!
Korzystam ze wskaźnika Lutkoma - pipsometr.
Zalezy mi na tym aby po zarobieniu powiedzmy n-pipsow EA konczylo prace.
Przejrzalem kod ale nie za bardzo wiem jak to ogarnac, moglby mi ktos pomoc albo chociaz dac wzkazowke jak mniej wiecej to zrobic?

Awatar użytkownika
reptile
Maniak
Maniak
Posty: 2799
Rejestracja: 13 gru 2008, 13:48

Nieprzeczytany post autor: reptile »

Musisz przejrzec zlecenia w histori i policzyc od open do close do tablicy zaladwoac i jak wyjdzie ze wiecej to stop :roll:
Z tego idnyka tez mozna pewnie takei coś wyciąć..
R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)

swer
Stały bywalec
Stały bywalec
Posty: 43
Rejestracja: 05 mar 2009, 13:13

Nieprzeczytany post autor: swer »

Nabazgrałem cos takiego:

Kod: Zaznacz cały

int zyski()
{
 
 
 for(int i=0;i<OrdersHistoryTotal();i++) 
 {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
    {
    
    if(OrderType()==OP_BUY) 
      {
       p=(OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
      }
      
      if(OrderType()==OP_SELL) 
      {
       p=(OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT);
      }
      profit+=p;
    }
 } 
 return profit; 
} 

Cos tu nie gra

Dodano po 4 godzinach 33 minutach:

Dobra juz działa, jesli ktos by potrzebował czegos takiego to wklejam tu działającą funkcje

Kod: Zaznacz cały

double zyski(double &profit)
{
 
 profit = 0;
 for(int i=0;i<OrdersHistoryTotal();i++) 
 {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
    {
    
    if(OrderType()==OP_BUY) 
      {
       p=(OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
      }
      
      if(OrderType()==OP_SELL) 
      {
       p=(OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT);
      }
      profit = profit + p;
      
    }
 }
 Print("PROFIT: ", profit); 
} 
Teraz wystarczy tylko wywolac funkcje i dac warunek sprawdzajacy czy zwracana zmienna jest <> n
Pzdr

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

Nieprzeczytany post autor: Pierz Andrzej »

raz - dodaj jeszce ze funkcja zwraca wartość przez referencje ;) ....
dwa - przydalo by sie sprawdzanie czasu bo tu Ci policzyc cala historie

pozdrawiam
Andrzej Pierz
z poważaniem
Andrzej Pierz
FOREX-SERVICE

swer
Stały bywalec
Stały bywalec
Posty: 43
Rejestracja: 05 mar 2009, 13:13

Nieprzeczytany post autor: swer »

Z pierwszym sobie poradzilem funkcja zwaraca wartosc przez referencje.

problem mam z drugim za bardzo nie wiem jak sie za to zabrac czy wewnatrz funkcji dodac jakis mechanizm sprawdzajacy date (int Date() ) czy przed wykonaniem OrderSendow w jakies instrukcji warunkowej.

Date() czy cos lepszego do tego wykorzystac?
Z gory thx za kazda wskazowke.

Awatar użytkownika
reptile
Maniak
Maniak
Posty: 2799
Rejestracja: 13 gru 2008, 13:48

Nieprzeczytany post autor: reptile »

Mozesz sprawdzic tylko raz cała historie (pierwsze uruchomienie) pozniej tydzien nastepnie ostatni dzien jesli w zmiennej sprawdzajacej nie ma 1 czy cos.. bo historia moze byc duża.. co tick meczyc mt4 nie ma sensu.. tez kwestia czy to pod tester czy live.. ale to zalezy od twojej wizji na zarzadzanie
R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)

ODPOWIEDZ