Funkcje MQL4-Wskaźniki własne użytkownika-Indicator Counted w Forex-Słownik poleceń MQL4 - bossa.pl
2017.12.18, godz. 04:09

IndicatorCounted

Funkcja zwraca ilość słupków, które nie uległy zmianie od ostatniego przeliczenia wskaźnika. W większości przypadków wyliczenie wartości wskaźnika polega na przeliczeniu każdego słupka, oraz umieszczenie tej wartość w buforze. Wartości z tego bufora mogą być prezentowane w postaci wykresu. Jednocześnie, jak pamiętamy z poprzednich rozdziałów jeśli kwotowania nadchodzą zbyt często (częściej niż czas jednej iteracji obliczeniowej funkcji start()) to zostaną pominięte, dlatego funkcja IndicatorCounted idealnie nadaje się do optymalizacji obliczeń i skrócenia czasu obliczeń z oszczędnością mocy obliczeniowych komputera.

Dokonując obliczeń w pętli dla wszystkich wartości wykresu możemy posłużyć się funkcją IndicatorCounted i przeliczyć tylko te ostatnie słupki z wykresu, które się zmieniły. Należy jednak pamiętać, że niektóre algorytmy obliczeniowe pomimo zmiany jednego słupka powinny przeliczyć też słupki poprzednie, co należy uwzględnić w wyliczeniach.

Składnia:

int IndicatorCounted()
Parametry
brak
Wartość zwracana
Ilość słupków na wykresie, które uległy zmianie lub -1 jeśli błąd funkcji

Przykład:

// Korzystamy z funkcji IndicatorCounted() oraz Bars w celu określenia jaka
ilość słupków uległa zmianie, ile jst nowych słupków
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- sprawdź czy nie ma błędu
if(counted_bars<0) return(-1);
//---- sprawdzenie czy są nowe słupki
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- obliczenia w pętli dla nowych słupków
for(int i=0; i<limit; i++)
{
ExtBlueBuffer[i]=iMA(NULL,0,JawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
ExtRedBuffer[i]=iMA(NULL,0,TeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
ExtLimeBuffer[i]=iMA(NULL,0,LipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
}
return(0);
}
bos bank logo
Grupa kapitałowa
Nagroda specjalna i tytuł BROKERA ROKU 2015
Nagroda specjalna i tytuł BROKERA
ROKU 2015, przyznane przez GPW.

logo_FMR2017aktualny.jpg Finansowa Marka Roku: wyrazista marka promująca edukację, umocnienie pozycji lidera rynku kontraktów terminowych.

nagroda najlepszy dom maklerski 2015
Najwyższa ocena dla DM BOŚ w ankiecie czytelników Gazety Giełdy Parkiet 2015r.