Sprawdzanie ilości zleceń w arkuszu zleceń

Każdego tygodnia średnio trzy do pięciu osób odsyłam do zajrzenia w kod któregoś z moich wskaźników w celu wydobycia funkcji countOrders, służącej do łatwego i szybkiego sprawdzania liczby otwartych pozycji – najwyższa więc pora wrzucić tę funkcję do Repozytorium kodu na tym blogu, najpierw jednak o tym, dlaczego używać mojej funkcji, zamiast OrdersTotal().

Problem z OrdersTotal jest taki, że nie oferuje ona filtrowania zleceń, a jedynie zwraca ilość zleceń w tablicy zleceń, przez co trzeba za każdym razem sprawdzać typ i magic number zlecenia. countOrders rozwiązuje ten problem elegancko i skutecznie pozwalając na elastyczny wybór dokładnie tych zleceń, jakie chcemy policzyć.

int countOrders(int oMagic,int oType) {

   int count=0;

   for(int i=0;i<OrdersTotal();i++) {
    if(OrderSelect(i,SELECT_BY_POS)) {
     if(OrderMagicNumber()==oMagic) {
      if(OrderSymbol()==Symbol()) {
       if(OrderType()==oType || oType<0) {
        count++;
       }
      }
     }
    }
   }

   return(count);

}

Funkcja przyjmuje dwa argumenty – oMagic, czyli magic number zleceń które chcemy policzyć oraz oType, czyli typ zlecenia wg notacji stałych MQLa (OP_BUY, OP_SELL itd). Aby policzyć liczbę wszystkich zleceń z danym magic number wystarczy podać wartość ujemną w parametrze oType.

Autor: Łukasz Tomaszkiewicz

Podziel się ze znajomymi:

Prześlij nam swoje uwagi

[contact-form-7 404 "Not Found"]
  • Facebook