Jak sprawdzić osiagniecie Stop Loss?

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
FaRa0n
Stały bywalec
Stały bywalec
Posty: 27
Rejestracja: 26 cze 2010, 16:03

Jak sprawdzić osiagniecie Stop Loss?

Nieprzeczytany post autor: FaRa0n »

Powiedzcie proszę, w jaki sposób mogę sprawdzić sposób/status zamknięcia pozycji które osiągnęły poziom stop loss? Jak to stwierdzić w EA, jest jakaś funkcja która zwracałaby taką informację?

Awatar użytkownika
thisredone
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 05 sie 2010, 17:07

Nieprzeczytany post autor: thisredone »

jeżeli to jest trade, który twój system zrobił to zachowujesz ticket, który zwróciła ci funkcja OrderSend() i potem zaznaczasz ten trejd za pomocą OrderSelect() i tutaj masz resztę funkcji do sprawdzenia co i jak.
Jeżeli to nie jest trejd, który twój system zrobił to musisz poszukać sobie przez OrderSelect() z trzecim parametrem ustawionym na MODE_HISTORY po kolei od 0 do OrdersHistoryTotal().

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

przeszukujesz wszystkie zamkniete zlecenia petla i zachowujesz te, ktorej order profit() == Order StopLoss(). Do zamiany orderprofit na format jak orderstoploss() uzylbym OrderOpenprice()-profit( double prof ) //dla buy; dla sell odwrotnie

Kod: Zaznacz cały

// double prof == OrderProfit()
int profit(double prof){

return ( NormalizeDouble( (prof/MarketInfo(Symbol(),MODE_TICKVALUE))/lots,digs)  );

}
Mam nadzieje, ze rozjasnilem. Pozdrawiam

zapomnialem dodac:

lots == loty, za ktore zostala otwarta pozycja.
digs == 4 || 5

Awatar użytkownika
FaRa0n
Stały bywalec
Stały bywalec
Posty: 27
Rejestracja: 26 cze 2010, 16:03

Nieprzeczytany post autor: FaRa0n »

Wielkie dzięki za odpowiedzi i za uszczegółowienie. Teraz już sobie poradzę.

Awatar użytkownika
El Coyote
Stały bywalec
Stały bywalec
Posty: 37
Rejestracja: 18 mar 2011, 05:06

Nieprzeczytany post autor: El Coyote »

crn pisze:uzylbym OrderOpenprice()-profit( double prof )
czyli stworzyłeś funkcję obliczającą OrderClosePrice() :wink:

Dla każdego zlecenia z historii trzeba przetestować czy OrderClosePrice() == OrderStopLoss(), ale jak wiadomo, czasem cena lubi sobie przeskoczyć SL i zlecenie zamknie się z poślizgiem, więc dokładniej dla longów sprawdzamy czy OCP() <= OSL(), a dla shortów OCP()>=OSL().

ODPOWIEDZ