Ustawianie czasu w zleceniach

O jezykach programowania w platformach i nie tylko.
damp
Stały bywalec
Stały bywalec
Posty: 24
Rejestracja: 02 lis 2010, 23:11

Ustawianie czasu w zleceniach

Nieprzeczytany post autor: damp »

Witam

Pisze właśnie swoje pierwsze EA i mam problem z ustawienie czasu ważności zlecenia tzn. ma wygasnąć jeżeli w ciągu minuty nie otworzy się zlecenie z określoną ceną

Kod: Zaznacz cały

OrderSend(Symbol(),5,ldLot,Bid-5*Point,Slippage,Bid+zapora*Point,ldTake,lsComm,(TimeCurrent()+60),clOpenSell); 
W czasie testowania EA wyrzuca błąd nr 3.
Z góry dzięki z pomoc

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

zapoznaj się z konstukcją funkcji OrderSend
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

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

Nieprzeczytany post autor: personov »

W nawiasie OrderSend() jest jakoś wszystko nie po kolei :roll:
Gdzie masz wogóle rodzaj zlecenia ?
Bo wiesz...czas wygaśniecia tyczy sie zleceń oczekujących czyli BUY_STOP, BUY_LIMIT itp.
Solą życia jest kasa.

damp
Stały bywalec
Stały bywalec
Posty: 24
Rejestracja: 02 lis 2010, 23:11

Nieprzeczytany post autor: damp »

Dzięki za zainteresowanie

Może się wytłumaczę o co mi właściwie chodzi. Napisałem EA, które rozpoznaje formacje świecowe i podpiera swoje decyzje wskaźnikami DeMarker i Force. Jednak zauważyłem, że nie zawsze (pomimo, że wszystkie dane wskazywałyby na zmianę kierunku ceny,) rynek zachowuje się zgodnie z oczekiwaniami. Dlatego chciałby wystawiać zlecenie oczekujące w kierunku, w którym wg mnie będzie podążał rynek. Ponieważ gram na M1 to zlecenie powinno wygasnąć po minucie.

Nie wiem jak zapisać parametr expiration i czy poniższy zapis kodu będzie poprawny.

OrderSend(Symbol(),OP_BUYSTOP,lot,Ask+5*point,Slippage,Ask-100*Point,ldTake,"Zlecenie",1234,expiration,clOpenBuy);
Ps.
W chwili obecnej, program realizuje to trochę inaczej, tzn. nie wystawia zleceń tylko czeka, aż kurs wzrośnie lub spadnie o konkretną wartość.

Z góry dzięki za pomoc.
Damian

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

Nieprzeczytany post autor: personov »

Teraz powinno być dobrze poza tym, że chcesz ustawić BUYSTOP 5 pips powyżej aktualnej ceny. Obawiam się, że nie będzie brokera, który pozwoli tak blisko postawić zlecenie oczekujące. Zazwyczaj jest jakiś limit stawiany przez brokera.
Z wygaśnięciem spróbuj dać

Kod: Zaznacz cały

CurTime()+60
Ale tamto w pierwszej wersji powinno też być dobre.
Solą życia jest kasa.

damp
Stały bywalec
Stały bywalec
Posty: 24
Rejestracja: 02 lis 2010, 23:11

Nieprzeczytany post autor: damp »

Ciągle zgłasza ten sam błąd. Zwiększyłem liczbę pipsów do 20 i czas do 5 minut i ciągle to samo :( .

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

Nieprzeczytany post autor: personov »

damp pisze:W chwili obecnej, program realizuje to trochę inaczej, tzn. nie wystawia zleceń tylko czeka, aż kurs wzrośnie lub spadnie o konkretną wartość.
To zależy co masz w warunku wystawienia zlecenia if(.....).
Ale kompiluje Ci się ?
A co to jest IdTake w miejscu TP ? Jesteś pewien, że ma wartośc większą od aktualnej ceny ?
Aha...ktoś pisał niedawno, że wygaśnięcie ma limit min. 10 lub 11 minut, ale nie jestem pewien. Spróbuj dać większą wartośc niż 10 minut.
Solą życia jest kasa.

damp
Stały bywalec
Stały bywalec
Posty: 24
Rejestracja: 02 lis 2010, 23:11

Nieprzeczytany post autor: damp »

Kompiluje się bez błędów i ostrzeżeń.

Gdy zmieniam parametr z OP_BUYSTOP na OP_BUY, usuwam datę ważności, cenę kupna z Ask+40 na Ask to zlecenia to zlecenie się otwiera.

A może problem polega na tym, że TimeCurrent() pobiera bieżącą datę a testujemy na danych historycznych.

Ale jeśli i tak nie będę mógł ustawić mniejszego czasu to pozostaną na tym rozwiązaniu co mam.

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

Nieprzeczytany post autor: personov »

damp pisze:A może problem polega na tym, że TimeCurrent() pobiera bieżącą datę a testujemy na danych historycznych.
Nie. To nie to. A co z tym TP ?
Solą życia jest kasa.

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

Nieprzeczytany post autor: Pierz Andrzej »

Witam

musze poszukac ale juz byl podobny temat ...
problem polaga na tym ze brokerzy nie pozwalaja ustawiac tak bliskiego czasu ...
jest jakies ograniczenie w minutach ..

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

ODPOWIEDZ