OrderSend() - minimalny sl. Problem

O jezykach programowania w platformach i nie tylko.
flogum
Stały bywalec
Stały bywalec
Posty: 73
Rejestracja: 02 lis 2013, 15:21

OrderSend() - minimalny sl. Problem

Nieprzeczytany post autor: flogum »

Witam. Mam pewien problem z funkcją "OrderSend()". Byłbym wdzięczny jakby ktoś poświęcił pewnie około minuty :) na to żeby mi pomóc. Wyjaśnię o co chodzi. Mój broker (XM) umożliwia ustawienie sl oraz tp w minimalnej odległości 4 pipsów od ceny rynkowej. Jak składam zlecenie ręcznie a następnie ustawiam mu sl oddalony o 4 pipsy to wszystko jest ok. Ten sl uwzględnia spread co dla mnie w miarę ważne bo wtedy mogę sobie łatwo wyliczyć tp który ma być 4 razy większy czyli w moim przypadku 16 pipsów. No i wszystko śmiga. Chciałem sobie zrobić EA który mi to będzie robił automatycznie ale za nic w świecie nie mogę poprzez "OrderSend()" ustawić minimalnego sl. Czy ktoś mógłby napisać poprawne wywołanie "OrderSend()" tak aby ustawiała minimalnego sl (uwzględniającego spread) oraz 4 razy większego tp. Byłbym naprawdę wdzięczny.

Pozdrawiam

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

Re: OrderSend() - minimalny sl. Problem

Nieprzeczytany post autor: personov »

Tak w skrócie, najprościej :

Kod: Zaznacz cały

double TP=16;
double SL=4;
OrderSend(Symbol(),OP_BUY,lot,Ask,2,Ask-SL*Point,Ask+TP*Point,"",MagicNumber,0,Green);
OrderSend(Symbol(),OP_SELL,lot,Bid,2,Bid+SL*Point,Bid-TP*Point,"",MagicNumber,0,Red);
Solą życia jest kasa.

Awatar użytkownika
Pablo90
Pasjonat
Pasjonat
Posty: 1215
Rejestracja: 10 cze 2007, 15:36

Re: OrderSend() - minimalny sl. Problem

Nieprzeczytany post autor: Pablo90 »

Powinno być:

Kod: Zaznacz cały

double TP=160;
double SL = 40;

flogum
Stały bywalec
Stały bywalec
Posty: 73
Rejestracja: 02 lis 2013, 15:21

Re: OrderSend() - minimalny sl. Problem

Nieprzeczytany post autor: flogum »

Dzięki za odpowiedzi. Faktycznie powinno być 40 i 160 bo notowania mają pięć cyfr. Nie zmienia to faktu, że dalej i tak nie wiem dlaczego jak wysyłam zlecenie to muszę zawsze doliczyć spread. Czyli w moim wypadku SL = 40 + spread i to może być minimalny SL. I jeszcze miałbym jedno pytanie. Jak sprawdzić czy ostatnia zamknięta pozycja była zyskowna czy stratna? Próbowałem w sposób znaleziony gdzieś w necie ale jest chyba błędny:

Kod: Zaznacz cały

OrderSelect(0, SELECT_BY_POS, MODE_HISTORY);
bo za każdym razem zwraca mi to samo. To nie jest tak samo jak z tickami, że 0 to ostatni?

Pozdrawiam

ODPOWIEDZ