Mierzenie czasów realizacji zleceń

Kategoria: Repozytorium kodu MQL4 | 18 grudnia 2009 o 00:25 | Odpowiedzi: Brak | Permalink

Wśród funkcji MQLa znajduje się jedna, której nazwa wcale nie sugeruje tego, czym ta funkcja się zajmuje. Mowa o GetTickCount().
Nie liczy ona nadchodzących ticków jakby sugerowała nazwa, za to liczy milisekundy od startu systemu - dzięki czemu można ją wykorzystać praktycznie do badania czasu realizacji poszczególnych partii kodu, w szczególności do pomiaru czasów realizacji zleceń.

Czytaj dalej »


Named pipes z poziomu MT4

Kategoria: Repozytorium kodu MQL4 | 9 grudnia 2009 o 16:18 | Odpowiedzi: Brak | Permalink

Dzisiaj na Forex Factory znalazłem jeden z najbardziej przydatnych mi kawałków kodu - kod umożliwiający obsługę named pipes prosto z pliku z kodem MQL tylko i wyłącznie poprzez import z kernel32.dll.

Aby niepotrzebnie nie przedłużać, odsyłam do oryginalnego wątku:

Named pipes for MT4

Rozwiązanie zdążyłem już przetestować, działa wyśmienicie, teraz tylko pozostaje zrealizować wszystkie fajne pomysły, w których brakowało mi właśnie fragmentu odpowiedzialnego za komunikację między MT4 a zewnętrznymi programami.


Timer

Kategoria: Repozytorium kodu MQL4 | 7 października 2009 o 23:24 | Odpowiedzi: Brak | Permalink

Analizując słowa kluczowe wpisane w wyszukiwarkach znalazłem tematy na kolejnych kilka postów. Dzisiaj opiszę mechanizm timera, który nazywam także “trybem asynchronicznym”. Jak to działa? Już tłumaczę.

Standardowo EA posiada trzy funkcje:

  • init - wywoływaną podczas inicjacji EA
  • deinit - wywoływaną podczas usuwania EA
  • start - wywoływaną przy nadejściu każdego ticku

Czasami jednak rozwiązanie z funkcją start nie wystarcza, na przykład w EA, które handlują na bazie korelacji kilku par lub też we wszelakiego rodzaju news traderach. W tego typu przypadkach nie można sobie pozwolić na beztroskie oczekiwanie na następny tick, ponieważ może on nadejść zbyt późno.

Rozwiązaniem jest wywoływanie asynchronicznie (w sensie niezależnie od nadchodzących ticków) pożądanego kodu.

Czytaj dalej »


Zdalnie sterowany EA

Kategoria: Poradniki i FAQ, Repozytorium kodu MQL4 | 31 sierpnia 2009 o 22:00 | Odpowiedzi: 2 | Permalink

Astra nie tak dawno temu wspominał na swoim blogu o genialnym narzędziu jakim jest Dropbox. Napomknął także o tym, że Dropboxa można wykorzystać jako podstawę do budowy zdalnie sterowanego EA.

W tym wpisie pokażę przykładowe rozwiązanie, dzięki któremu możliwa będzie zmiana parametrów EA ze zdalnego komputera, bez konieczności stosowania rozwiązań typu Remote Desktop, za to przy użyciu Dropboxa.

Czytaj dalej »


Przyspieszanie testera

Kategoria: Repozytorium kodu MQL4 | 19 sierpnia 2009 o 00:09 | Odpowiedzi: 5 | Permalink

Często zachodzi potrzeba testowania EA na testerze w trybie wizualnym np. gdy testujemy wskaźniki harmoniczne lub też potrzebujemy zobaczyć na bieżąco czy EA składa zlecenia prawidłowo, ale nie zależy nam zbytnio na historii wizualnej zleceń.

Istnieje bardzo łatwa metoda przyspieszenia działania testera - usunięcie zbędnych (tzn. tych dotyczących historii transakcji) obiektów z wykresu. Poniżej prezentuję przykładowy kod do tego służący: Czytaj dalej »


MT4 i eksport danych do pliku

Kategoria: Repozytorium kodu MQL4 | 22 lipca 2009 o 12:53 | Odpowiedzi: 1 | Permalink

Na Forum Nawigatora padło dzisiaj po raz kolejny pytanie o eksport danych z MT4 do plików, aby nastepnie analizować te dane np. w Excelu. Pora więc rozwiązać ten problem raz na zawsze :)

Sprawa jest prosta, zarówno jeśli chodzi o dane na temat notowań jak i o dane z wskaźników.

Poniżej prezentuję przykładowy kod, który realizuje nam eksport: Czytaj dalej »


Lepsze komentarze na wykresie

Kategoria: Repozytorium kodu MQL4 | 5 lipca 2009 o 00:21 | Odpowiedzi: 5 | Permalink

Nie trzeba długo programować w MQLu, aby zacząć narzekać na domyślny mechanizm nanoszenia komentarzy na wykres. W przypadku większej ilości danych, które chcemy wyświetlić na wykresie eleganckim posunięciem będzie stworzenie sobie do tego celu funkcji pomocniczych.

Czytaj dalej »


Liczenie zleceń w arkuszu - wersja z referencjami

Kategoria: Repozytorium kodu MQL4 | 11 czerwca 2009 o 21:12 | Odpowiedzi: Brak | Permalink

Temat liczenia zleceń w arkuszu już kiedyś poruszałem w artykule “Sprawdzanie ilości zleceń w arkuszu“, nie mniej jednak chciałbym to tego wrócić w kontekście referencji, którym poświęciłem ostatnio osobnego posta.

Kod z poprzedniego artykułu jest jak najbardziej poprawny i działa zgodnie z zamierzeniami. Jednakże w przypadku, gdy chcemy dokładnie określić liczebność każdego rodzaju zlecenia w arkuszu zleceń użycie kodu z poprzedniego artykułu sprawi, że nieco stracimy na wydajności. Czytaj dalej »


Handel w wyznaczonych godzinach

Kategoria: Repozytorium kodu MQL4 | 29 maja 2009 o 22:47 | Odpowiedzi: 5 | Permalink

Czasami zachodzi potrzeba ograniczenia godzin, w których EA ma handlować. Moża robić to na różne sposoby, ja jednak pokażę chyba najbardziej elegancki i najbardziej elastyczny - czyli definiowanie czasu jako stringa (pozwala na definiowanie minut a nawet sekund) oraz całość w postaci osobnej funkcji. Czytaj dalej »


MQL i referencje

Kategoria: Repozytorium kodu MQL4 | 23 maja 2009 o 18:18 | Odpowiedzi: Brak | Permalink

Często (głównie w celach optymalizacyjnych) byłoby dobrze, gdyby funkcja MQL potrafiła zwrócić kilka wartości.

Niestety MQL nie obsługuje programowania obiektowego, nie ma też struktur. Sytuacja jednak nie jest do końca beznadziejna, bowiem do uzyskania podobnego efektu można użyć mechanizmu przekazywania parametrów przez referencję. Czytaj dalej »