8 Funkcje predykcyjne

Wszystkie funkcje wymienione tutaj są obsługiwane w:

Kilka ogólnych uwag na temat parametrów funkcji:

  • Parametry funkcji są oddzielone przecinkiem
  • Opcjonalne parametry funkcji (lub części parametrów) są oznaczone jako < >
  • Specyficzne dla funkcji parametry są opisane przy każdej funkcji
  • Parametry /host/key oraz (sec|#num)<:time shift> nigdy nie powinny być umieszczane w cudzysłowiu
Wspólne parametry
  • /host/key to wspólny obowiązkowy pierwszy parametr dla funkcji, odnoszących się do historii pozycji hosta
  • (sec|#num)<:time shift> to wspólny drugi parametr dla funkcji, odnoszących się do historii pozycji hosta, gdzie:

Funkcje predykcyjne

FUNKCJA
Opis Parametry specyficzne dla funkcji Uwagi
forecast (/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>)
Przyszła wartość, maksimum, minimum, różnica lub średnia pozycji. Zobacz wspólne parametry.

time - horyzont prognozy w sekundach (mogą być używane przyrostki czasu); obsługiwane są wartości ujemne

fit (opcjonalny; musi być w podwójnych cudzysłowach) - funkcja używana do dopasowania danych historycznych

Obsługiwane parametry fit:
linear - funkcja liniowa
polynomialN - wielomian stopnia N (1 <= N <= 6)
exponential - funkcja wykładnicza
logarithmic - funkcja logarytmiczna
power - funkcja potęgowa

Uwaga:
linear jest domyślna, polynomial1 jest równoważne linear

mode (opcjonalny; musi być w podwójnych cudzysłowach) - żądane wyjście

Obsługiwane parametry mode:
value - wartość (domyślne)
max - maksimum
min - minimum
delta - max-min
avg - średnia

Uwaga:
value szacuje wartość pozycji w momencie teraz + time
max, min, delta i avg badają szacunkową wartość pozycji w przedziale między teraz a teraz + time
Obsługiwane typy wartości: float, int

Jeśli wartość do zwrócenia jest większa niż 1.7976931348623157E+308 lub mniejsza niż -1.7976931348623157E+308, zwrócona wartość jest przycięta odpowiednio do 1.7976931348623157E+308 lub -1.7976931348623157E+308.

Staje się nieobsługiwana tylko w przypadku niewłaściwego użycia w wyrażeniu (zły typ pozycji, nieprawidłowe parametry), w przeciwnym razie zwraca -1 w przypadku błędów.

Przykłady:
=> forecast(/host/key,#10,1h) → prognozuj wartość pozycji za godzinę na podstawie ostatnich 10 wartości
=> forecast(/host/key,1h,30m) → prognozuj wartość pozycji za 30 minut na podstawie danych z ostatniej godziny
=> forecast(/host/key,1h:now-1d,12h) → prognozuj wartość pozycji za 12 godzin na podstawie danych z godziny sprzed jednego dnia
=> forecast(/host/key,1h,10m,"exponential") → prognozuj wartość pozycji za 10 minut na podstawie danych z ostatniej godziny i funkcji wykładniczej
=> forecast(/host/key,1h,2h,"polynomial3","max") → prognozuj maksymalną wartość, jaką może osiągnąć pozycja w ciągu następnych dwóch godzin na podstawie danych z ostatniej godziny i wielomianu trzeciego stopnia
=> forecast(/host/key,#2,-20m) → oszacuj wartość pozycji sprzed 20 minut na podstawie ostatnich dwóch wartości (może to być bardziej precyzyjne niż użycie last(), szczególnie jeśli pozycja jest rzadko aktualizowana, np. raz na godzinę)

Zobacz także dodatkowe informacje na temat predykcyjnych funkcji wyzwalaczy.
timeleft (/host/key,(sec|#num)<:time shift>,threshold,<fit>)
Czas w sekundach potrzebny do osiągnięcia przez pozycję określonego progu. Zobacz wspólne parametry.

threshold - wartość do osiągnięcia (mogą być używane przyrostki jednostek)

fit (opcjonalny; musi być w podwójnych cudzysłowach) - zobacz forecast()
Obsługiwane typy wartości: float, int

Jeśli wartość do zwrócenia jest większa niż 1.7976931348623157E+308, zwrócona wartość jest przycięta do 1.7976931348623157E+308.

Zwraca 1.7976931348623157E+308, jeśli próg nie może być osiągnięty.

Staje się nieobsługiwana tylko w przypadku niewłaściwego użycia w wyrażeniu (zły typ pozycji, nieprawidłowe parametry), w przeciwnym razie zwraca -1 w przypadku błędów.

Przykłady:
=> timeleft(/host/key,#10,0) → czas do osiągnięcia przez wartość pozycji zera na podstawie ostatnich 10 wartości
=> timeleft(/host/key,1h,100) → czas do osiągnięcia przez wartość pozycji 100 na podstawie danych z ostatniej godziny
=> timeleft(/host/key,1h:now-1d,100) → czas do osiągnięcia przez wartość pozycji 100 na podstawie danych z godziny sprzed jednego dnia
=> timeleft(/host/key,1h,200,"polynomial2") → czas do osiągnięcia przez wartość pozycji 200 na podstawie danych z ostatniej godziny i założenia, że pozycja zachowuje się jak wielomian kwadratowy (drugiego stopnia)
Zobacz także dodatkowe informacje na temat predykcyjnych funkcji wyzwalaczy.