-
1. Data: 2010-01-04 19:40:28
Temat: XTB-Trader 4 + skrypt w mq4
Od: " sf" <s...@g...pl>
Witam,
Potrzebuje napisać skrypt w mq4, który będzie przechwytywał każdą akcję
sprzedaży oraz kupna dokonywaną przy użyciu programu XTB-Trader 4 i wysyłał ją
przez HTTP na wskazany serwer. Napisałem sobie skrypt, który wysyła na serwer
jakieś przykładowe dane, ale tylko i wyłącznie gdy uruchomię ręcznie skrypt ze
wskazaniem wykresu. Moje pytanie brzmi w jaki sposób dodać do programu
XTB-Trader 4 skrypt, który będzie czekał na zdarzenie i jeśli będzie ono
sprzedażą lub kupnem to wyśle dane na serwer.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
2. Data: 2010-01-05 00:28:41
Temat: Re: XTB-Trader 4 + skrypt w mq4
Od: Joachim <j...@o...pl>
sf pisze:
> Witam,
>
> Potrzebuje napisać skrypt w mq4, który będzie przechwytywał każdą akcję
> sprzedaży oraz kupna dokonywaną przy użyciu programu XTB-Trader 4 i wysyłał ją
> przez HTTP na wskazany serwer. Napisałem sobie skrypt, który wysyła na serwer
> jakieś przykładowe dane, ale tylko i wyłącznie gdy uruchomię ręcznie skrypt ze
> wskazaniem wykresu. Moje pytanie brzmi w jaki sposób dodać do programu
> XTB-Trader 4 skrypt, który będzie czekał na zdarzenie i jeśli będzie ono
> sprzedażą lub kupnem to wyśle dane na serwer.
>
Zdarzenia dotyczące zmian cen jednego instrumentu możesz przechwytywać
przy pomocy Expert Advisora, ale pewnie to wiesz i pewnie to wykorzystujesz.
Zdarzenia dotyczące zdarzenia zlecenia kupna/sprzedaży nie umiem
przechwycić, być może nie ma w ogóle takiej możliwości. Jeśli znajdziesz
taką możliwość, to wrzuć na forum, chętnie ją poznam.
Ale obejście tego problemu można zastosować następująco:
Sposób 1 - zaimplementować EA tak, żeby podczas składania zleceń
wykonywał jakąś twoją funkcję i żadne przechwytywanie zdarzeń nie byłoby
konieczne. Pewnie cię to nie satysfakcjonuje, bo pewnie już byś to stosował.
Sposób 2 - Który być może cię zadowoli, to uruchomienie skryptu w którym
będzie pętla, a pętla będzie mniej więcej wyglądała następująco:
1) sprawdzenie aktualnie otwartych zleceń
2) sprawdzenie czy aktualnie otwarte zlecenia są takie same, jak
podczas sprawdzania w poprzedniej iteracji pętli. Jeśli coś się
zmieniło, to obsługujesz taką sytuację;
3) wykonanie sleepa na kilkadziesiąt [ms]
4) goto 1
Ja czasem sposób drugi stosuję i on mnie satysfakcjonuje.
Stosuję takie podejście z pętlą w sytuacji reakcji na nowe zlecenia w
terminalu, oraz dlatego, bo nie znalazłem w MQL4 możliwości
przechwycenia zdarzenia zmiany cen z kilku instrumentów przez JEDEN
skrypt (z jednego instrumentu wiadomo jak przechwycić zmianę ceny, a z
wielu instrumentów prawdopodobnie się nie da).
J.
-
3. Data: 2010-01-05 10:08:00
Temat: Re: XTB-Trader 4 + skrypt w mq4
Od: " sf" <s...@g...SKASUJ-TO.pl>
Joachim <j...@o...pl> napisał(a):
> Sposób 2 - Który być może cię zadowoli, to uruchomienie skryptu w którym
> będzie pętla, a pętla będzie mniej więcej wyglądała następująco:
> 1) sprawdzenie aktualnie otwartych zleceń
> 2) sprawdzenie czy aktualnie otwarte zlecenia są takie same, jak
> podczas sprawdzania w poprzedniej iteracji pętli. Jeśli coś się
> zmieniło, to obsługujesz taką sytuację;
> 3) wykonanie sleepa na kilkadziesiąt [ms]
> 4) goto 1
Dziękuję za odpowiedź. Moja wiedza na temat zagadnienia jest zdecydowanie
niższa niż sądzisz bo dopiero wczoraj uruchomiłem pierwszy raz ten program.
Dostałem zlecenie wykonania strony, na której umieszczone byłyby informacje o
tym jak dana osoba gra.
Udało mi się dojść do tego sposobu drugiego tak jak to opisałeś. Czyli jestem
w stanie w pętli pobierać listę zleceń wyświetlającą się w terminalu.
Wystarczy sprawdzać czy pojawiło się nowe zlecenie i jeśli tak to wysłać za
pomocą POST dane na serwer.
Przykładowy kod o zdarzeniach znalazłem na stronie: http://articles.mql4.com/350
Wysyłkę na serwer: http://codebase.mql4.com/4428
Mam tylko nadzieję, że te zlecenia z terminalu pojawiają się w ułamkach sekund
od złożenia zlecenia.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/