jak sprawdzić czy jest juz otwarte zlecenie?
- siersciuch
- Pasjonat
- Posty: 407
- Rejestracja: 06 kwie 2010, 20:31
jak sprawdzić czy jest juz otwarte zlecenie?
Jest jakaś funkcja która zwraca mi ilość lub rodzaj otwartych zleceń?
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.
http://www.forex.nawigator.biz/dyskusje ... 832#208832
Nie uwzględnia oczekujących ale łatwo to można zmodyfikować.
Nie uwzględnia oczekujących ale łatwo to można zmodyfikować.
Ostatnio zmieniony 21 mar 2011, 16:02 przez Tig3r, łącznie zmieniany 1 raz.
======================================================
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ć..
- siersciuch
- Pasjonat
- Posty: 407
- Rejestracja: 06 kwie 2010, 20:31
LowcaG pisze:OrderTotal() - ilosc
Dla rodzaju, musisz sobie przeleciec sie po nich wszystkich OrderSelect() i sprawdzic OrderType()
o dzięki, gdzieś mi się obiły te funkcje, ale znaleźć nie mogłem

jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.
To fakt, nie wiem czy chcesz totalna liczbe otwartych zlecen, czy tylkoTig3r pisze:Nie korzystaj z OrderTotal bo to poda Ci wszystkie zlecenia - nawet innego EA!
- na danej parze wtedy OrderSymbol()==Symbol()
- otwarte przez dane EA OrderMagicNumber()==MAGIC (jakis twoj)
Tig3r dal pomocnego linka.
(chociaz z OrderTotal i tak musisz skorzystac

- siersciuch
- Pasjonat
- Posty: 407
- Rejestracja: 06 kwie 2010, 20:31
chodzi poprostu, oto, ze jak mam juz otwarte zlecenie, zeby kolejnych nie otwierało
coś takiego?
coś takiego?
if(OrderSelect(ticket, SELECT_BY_TICKET)!=true)
{
if(warunek)
{
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bidsl*Point,Bid+takeprofit*Point);
}
}
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.
Jakiekolwiek zlecenie? czy na danej parze i okreslonym Magicu?siersciuch pisze:chodzi poprostu, oto, ze jak mam juz otwarte zlecenie, zeby kolejnych nie otwierało
Jesli chodzi o rade, to nie polecam robic tyle ifow w ifach, to pozniej kiepsko sie czyta i trudno wykrywa bledy.
dlatego. cala operacje otwierania pozycji zamknij w funkcji np.
(improwizuje, musze wyjsc, wiec na lapu capu

Kod: Zaznacz cały
void otworz_pozycje(){
if (!czy_moge_otworzyc()) return; //tu jest funkcja sprawdzajaca Twoje ordery
if (warunek){
OrderSend....
}
}
//a funckja moze wygladac tak
boolean czy_moge_otworzyc(){
int l_total = OrderTotal();
For(int i = 0;i<l_total;i++){
if(!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue; //jezeli tylko symbol
/ /tez z magicem jak chcez
return(false);
}
return(true);
}
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
a juz mialem sie zapytac czy cos dzisiaj pilesLowcaG pisze:(improwizuje, musze wyjsc, wiec na lapu capu Wink )

przepraszam za OT ale nie moglem sie powstrzymac
pozdrawiam
Andrzej
Dodano po 2 minutach:
tak wyglada moja funkcja

Kod: Zaznacz cały
int total(int cmd)
{
int sum = 0;
RefreshRates();
for (int i=0;i<=OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (Symbol()==OrderSymbol() && cmd==OrderType() && MagicNumber==OrderMagicNumber()) sum++;
}
return(sum);
}
Kod: Zaznacz cały
if (total(OP_BUY)==0 && Twoje_wrunki) Ordersend(.....,OP_BUY,......);

pzdr Andrzej
- siersciuch
- Pasjonat
- Posty: 407
- Rejestracja: 06 kwie 2010, 20:31