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.
0 odpowiedzi do wpisu "Sprawdzanie ilości zleceń w arkuszu zleceń"