OrderClose?
OrderClose?
Chcę napisać OrderClose, ale nie wiem co trzeba wpisać w miejscu "Ticket"(unikalny numer zlecenia)? Jak napisać, żeby program brał pod uwagę każde aktualne zlecenie , zamykał je i otwierał kolejne?
pozdrawiam
pozdrawiam
- drapichrust
- Stały bywalec
- Posty: 73
- Rejestracja: 03 gru 2009, 11:22
- potrzebujący ;)
- Bywalec
- Posty: 17
- Rejestracja: 29 kwie 2012, 23:02
nie wiem po co Ci OrderCloseBy - to jest zbędnepotrzebujący ;) pisze:ja chciałbym aby przy otwarciu jednego zlecenia zamykane było zlecenie przeciwne... ale nie bardzo wiem jak użyć OrderCloseBy... Gdzie mam to wpisać i o co chodzi z tymi Ticket'ami?
po prostu przed otwarciem (albo po) zamykasz to zlecenie które chcesz przez OrderClose, a tak się składa że zlecenia identyfikuje po nr Ticket więc albo musisz go zapamiętać przy otwieraniu albo przeszukujesz wszystkie zlecenia celem znalezienia tego Twojego i pobrania jego nr Ticket
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Wydaje mi się, że funkcja OrderCloseBy() zamyka otwartą pozycje przez drugą pozycję, która jest zleceniem przeciwstawnym. Zamknięcie pozycji przez pozycję przeciwstawnią powoduje naliczenia spreadu tylko za jedną pozycję.Tig3r pisze:[
nie wiem po co Ci OrderCloseBy - to jest zbędne
Technika Ichimoku
w czesci globalnej inicjujesz sobie zmienna ktora bedzie ci przechowywala numer biezacego ticketu:bojgin pisze:Chcę napisać OrderClose, ale nie wiem co trzeba wpisać w miejscu "Ticket"(unikalny numer zlecenia)? Jak napisać, żeby program brał pod uwagę każde aktualne zlecenie , zamykał je i otwierał kolejne?
pozdrawiam
Kod: Zaznacz cały
int presentTicket=0;
Kod: Zaznacz cały
presentTicket=OrderSend(....);
Kod: Zaznacz cały
OrderSelect(presentTicket,SELECT_BY_TICKET);
posDirection=OrderType();
Kod: Zaznacz cały
OrderClose(presentTicket,.....);
Kod: Zaznacz cały
if(posDirection==OP_BUY) newDirection=OP_SELL;
else newDirection=OP_BUY;
Kod: Zaznacz cały
presentTicket=OrderSend(Symbol(),newDirection,....);
Oczywiscie w przypadku jesli planujesz miec wiecej niz jedna pozycje na danym instrumencie, to kod bedzie troche bardziej rozbudowany o wyszukiwanie okreslonej pozycji, itd.
pzdr,
CoVal
Dodano po 15 minutach:
Zgodnie z tym co jest napisane w helpie (czasem warto poczytac) to OrderCloseBy() zamyka jedna pozycje poprzez druga pozycje ALE tylko wtedy kiedy obie pozycje sa juz otwarte, a nie w przypadku kiedy chcesz zamknac jedna pozycje i zaraz otworzyc druga przeciwstawna.EduSystem pisze:Wydaje mi się, że funkcja OrderCloseBy() zamyka otwartą pozycje przez drugą pozycję, która jest zleceniem przeciwstawnym. Zamknięcie pozycji przez pozycję przeciwstawnią powoduje naliczenia spreadu tylko za jedną pozycję.Tig3r pisze:[
nie wiem po co Ci OrderCloseBy - to jest zbędne
Jednakze:
1. nie u wszystkich brokerow to dziala.
2. To moze miec zastosowanie w szczegolnych warunkach hedge-owania pozycji i to tylko przy zalozeniu, ze broker nie pobiera swojej calej prowizji w postaci spreadu przy otwieraniu pozycji a pobiera czesc przy otwieraniu i czesc przy zamykaniu.
3. No i hedge musi byc dozwolony u tego brokera...
Nie testowalem jednak tego nigdy w taki sposob, aby oba instrumenty byly rozne

- potrzebujący ;)
- Bywalec
- Posty: 17
- Rejestracja: 29 kwie 2012, 23:02
A co jeśli chce otworzyć dwie pozycje w tym samym kierunku i w tym samym momencie ale z różnymi parametrami, np. jedna będzie miała TakeProfit=200 a druga TakeProfit=300??
I jeszcze jedno (mam nadzieje, że to nie jest zbyt głupie pytanie nawet jak na dział dla początkujących
) jak zapamiętać ticket konkretnego zlecenia? Bo później obie pozycje będą miały różne TrailingStopy i domyślam się, że będę musiał tam to wykorzystać...?
Z góry dziękuje za Waszą nieocenioną pomoc
I jeszcze jedno (mam nadzieje, że to nie jest zbyt głupie pytanie nawet jak na dział dla początkujących

Z góry dziękuje za Waszą nieocenioną pomoc

5% z czegoś jest lepsze niż 100% z niczego 

1. otwierasz po prostu 2 kolejne pozycje w tym samym kierunku z roznymi parametrami TP.
2. albo ticket kazdej z pozycji zapamietujesz do innej zmiennej:
ticket1=OrderSend(..., TP1,...);
ticket2=OrderSend(...,TP2,....);
albo bawisz sie kazdorazowo w przeszukiwanie wszystkich otwartych pozycji i identyfikujesz je sobie np. po magic number albo po komentarzu.
2. albo ticket kazdej z pozycji zapamietujesz do innej zmiennej:
ticket1=OrderSend(..., TP1,...);
ticket2=OrderSend(...,TP2,....);
albo bawisz sie kazdorazowo w przeszukiwanie wszystkich otwartych pozycji i identyfikujesz je sobie np. po magic number albo po komentarzu.
- potrzebujący ;)
- Bywalec
- Posty: 17
- Rejestracja: 29 kwie 2012, 23:02