Ustawienie OrderSend na wskaźniku
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Ustawienie OrderSend na wskaźniku
wystarczy ze spread się zwiększy i już nie będzie , po za tym jak masz slippage ustawione tez może dawać taki błąd
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Ustawienie OrderSend na wskaźniku
Brokerem jest Admiral Markets, ponoć spread nie powinien się zmieniać. A co do wartości slippage to jak się ustawi np. 10 to powinno wyeliminować ten problem? Czy może można wyłączyć tę opcję, nie wiem czy 0 ustawia brak możliwości poślizgu czy wyłącza opcję.
Re: Ustawienie OrderSend na wskaźniku
W katalogu ..\experts\logs masz z aktualną datą najnowszy plik logów, w którym są błędy wykonania włączonych strategii. Proponuję przejrzeć i poszukać w googlach co oznaczają poszczególne kody błędów. Debugowanie mql4 nie jest proste. Błąd typu nieprawidłowy sl/tp oznacza zazwyczaj tak jak pisze Andrzej albo zbyt ciasne ustawienie, albo nieprawidłowe - typu sl dla longa powyżej aktualnej ceny Bid, albo całkiem absurdalne, np. próba ustawienia sl dla EURUSD na wartość 10.
W celu łatwiejszego debugowania kodu proponuję korzystać z komentarzy
Argumenty funkcji Comments(...) to lista zmiennych dowolnego typu. Komentarz wyświetla się w lewym górnym rogu na wykresie. Np.:
Spowoduje wyświetlenie aktualnej wartości zmiennych tp i sl wyliczonych przez program przed wywołaniem funkcji OrderSend().
PS. Skasowanie komentarza z wykresu wymaga użycia Comments(""); (np. w funkcji deinit())
W celu łatwiejszego debugowania kodu proponuję korzystać z komentarzy
Argumenty funkcji Comments(...) to lista zmiennych dowolnego typu. Komentarz wyświetla się w lewym górnym rogu na wykresie. Np.:
Kod: Zaznacz cały
Comments("SL: ", sl, ", TP: ", tp);
PS. Skasowanie komentarza z wykresu wymaga użycia Comments(""); (np. w funkcji deinit())
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Ustawienie OrderSend na wskaźniku
jeżeli np. sl i tp masz oddalone o 5 pisów i ustawisz slippage na 3 pipsy i dojdzie do takie poślizgu to wtedy sl będziesz miał oddalony o 8 pipsów i tp o 2 pisy i dostaniesz błąd invalid sl & tp
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Ustawienie OrderSend na wskaźniku
Czyli pasowałoby najpierw ustalić gołe OrderSend, a dopiero później OrderModify z ustalonymi sl/tp?Pierz Andrzej pisze:jeżeli np. sl i tp masz oddalone o 5 pisów i ustawisz slippage na 3 pipsy i dojdzie do takie poślizgu to wtedy sl będziesz miał oddalony o 8 pipsów i tp o 2 pisy i dostaniesz błąd invalid sl & tp
Edit: zauważyłem, że w tych logach to jest mniej niż w Dzienniku. Teraz zlecenie też nie weszło ale żadnych błędów nie mogłem zlokalizować. Zobaczę jutro jak będzie więcej ruchu.
Ostatnio zmieniony 29 lip 2013, 22:40 przez Biertago, łącznie zmieniany 1 raz.
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Ustawienie OrderSend na wskaźniku
można tak sprubowac lub zwiekszyc tp i sl a dopiero później modyfikować
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Ustawienie OrderSend na wskaźniku
Ten ostatni sposób jest niezbędny w przypadku brokerów ECN/STP.
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Ustawienie OrderSend na wskaźniku
już nie , pozmieniali cos w MT4 i można slac zlecenia od razu z ustawionymi wartościami tp i sl
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Ustawienie OrderSend na wskaźniku
Próbowałem najpierw zlecić gołe, a następnie modyfikację, ale dość długie opóźnienia powstają.
Nie wiem, czy ta modyfikacja jest dobrze zrobiona, ale chciałem żeby za wszelką cenę weszło.
Czy ten sposób może powodować opóźnienia?
Nie wiem, czy ta modyfikacja jest dobrze zrobiona, ale chciałem żeby za wszelką cenę weszło.
Kod: Zaznacz cały
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,10,0,0,"Buy",0,0,Blue);
while(true){
result = OrderModify(ticket, 0,Ask-sl*Point,Ask+tp*Point,0,Blue);
if (result != TRUE){
RefreshRates();
}
else {
break;
}
}
Re: Ustawienie OrderSend na wskaźniku
Po co tak, skoro można bezpośrednio do OrderSend wstawić tp i sl?
Parę wersji temu się nie dało, ale teraz można. Wyrzuć tę pętlę.
Parę wersji temu się nie dało, ale teraz można. Wyrzuć tę pętlę.