Dlaczego moja strategia (EA) nie działa? Nie mogę wysłać zlecenia!  

Część dających się znaleźć w Internecie strategii (EA) działa tylko jeżeli tryb realizacji zlecenia zdefiniowany jest przez dom maklerski jako „Egzekucja natychmiastowa”. W powyższym trybie realizacji, charakterystycznym dla domów maklerskich działających w modelu Market Maker, funkcja OrderSend() umożliwia jednoczesne składanie zlecenia i ustawianie wartości ST/TP. Z tego powodu w sieci często napotkać można poniższy kod:

    OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, SL, TP, "Moje zlecenie")

Platforma mForex Trader korzysta natomiast z tzw. trybu „Egzekucji rynkowej”, w którym zlecenia przekazywane są bezpośrednio do dostawców płynności, co jest równoznaczne ze zrealizowaniem transakcji po najlepszych cenach oczekujących zleceń przeciwstawnych. W trybie egzekucji rynkowej parametry SL/TP w funkcji OrderSend() powinny być ustawione na 0. Po złożeniu zlecenia należy je zmodyfikować ustawiając pożądane parametry, co możemy osiągnąć posługując się poniższym kodem:

// Zloz zlecenie I sprawdz czy zostalo poprawnie zrealizowane
    ticket =OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, 0, 0, "Moje zlecenie");     

    // orderSend zwraca -1 w przypadku bledu
    if(ticket >=0)
    {
    // Sproboj zaznaczyc zlecenie
    if(OrderSelect(ticket, SELECT_BY_TICKET)==TRUE)
    {

      // Modyfikuj zlecenie i sprawdz, czy modyfikacja zakonczyla sie pomyslnie
      if(OrderModify(OrderTicket() ,OrderOpenPrice(),  SL, TP ,0)==FALSE)
      {
        Print("Błąd w modyfikacji zlecenia : ",GetLastError());
      }
      }
      else
      {
        Print(“Błąd w wybieraniu zlecenia : ”, GetLastError());
      }
    }
    else
    {
      Print("Błąd w zleceniu  :",GetLastError());
    }

Dobrą praktyką jest sprawdzanie zwracanych przez funkcje wartości w celu obsługi ewentualnych błędów.

Co to jest mLibrary?  

mLibrary jest biblioteką rozszerzającą znacząco możliwości języka MQL4.

Oferuje ona m.in:

  • Dostęp do głębokości rynku z poziomu MQL'a
    Stanowi to unikatową na rynku polskim możliwość pisania automatów transakcyjnych opartych na najlepszych ofertach kupna i sprzedaży od dostawców płynności mForex (ponad dziesięć największych banków inwestycyjnych, w tym m.in. Bank of America, CommerzBank Goldman Sachs, Nomura czy UBS).
  • Animowane okno powiadomień spójne ze stylistyką Smart Orders

Każda z nowych funkcji znajdujących się w bibliotece mLibrary jest szczegółowo opisana w dostępnej dokumentacji, którą można pobrać tutaj

Gdzie zacząć naukę MQL'a?  

Źródła anglojęzyczne:

 Źródła polskojęzyczne: