Ustawienie OrderSend na wskaźniku

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Pierz Andrzej »

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

Biertago
Bywalec
Bywalec
Posty: 10
Rejestracja: 23 lip 2013, 17:23

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Biertago »

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ę.

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: z6yszko »

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.:

Kod: Zaznacz cały

Comments("SL: ", sl, ", TP: ", tp);
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())

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

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Pierz Andrzej »

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

Biertago
Bywalec
Bywalec
Posty: 10
Rejestracja: 23 lip 2013, 17:23

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Biertago »

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
Czyli pasowałoby najpierw ustalić gołe OrderSend, a dopiero później OrderModify z ustalonymi 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.

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

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Pierz Andrzej »

można tak sprubowac lub zwiekszyc tp i sl a dopiero później modyfikować
z poważaniem
Andrzej Pierz
FOREX-SERVICE

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: z6yszko »

Ten ostatni sposób jest niezbędny w przypadku brokerów ECN/STP.

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

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Pierz Andrzej »

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

Biertago
Bywalec
Bywalec
Posty: 10
Rejestracja: 23 lip 2013, 17:23

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: Biertago »

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.

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;
	}
}
Czy ten sposób może powodować opóźnienia?

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Ustawienie OrderSend na wskaźniku

Nieprzeczytany post autor: z6yszko »

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ę.

ODPOWIEDZ