Navigation Panel

Po ile sprzedać energię firmie? - Struktura cen

Godzinowa terminowa struktura cen energii (ang. HPFC = Hourly Price Forward Curve) jest wykorzystywana m.in. do wyznaczenia aktualnej wartości portfela energii. Jest konieczna również – o czym pisałem w poprzednim poście – do wyceny profilu klienta. Jak więc powstaje HPFC? O jednej z metod jej wyznaczania – metodzie algebraicznej – jest ten artykuł.

Czym jest HPFC? Jest to uporządkowany w pewnym przedziale dat godzinowy szereg cen energii. Na przykład dla roku 2020 byłyby to 8784 wartości. HPFC najczęściej wyznacza się na podstawie cen godzinowych na rynku natychmiastowym (spot). W tym wypadku jest to prognoza cen, jakie spodziewamy się zaobserwować na tym rynku, wziąwszy pod uwagę zarówno przeszłe wartości godzinowych cen spot, jak i aktualne ceny produktów terminowych. Taka prognoza (lub projekcja) ma jednocześnie uwzględniać:

1) obserwowane cykle, tj. cykl roczny, tygodniowy i dobowy,
2) kalendarz, tj. przeciętnie niższe ceny dla świąt państwowych i dni z nimi sąsiadujących,
3) bieżący poziom cen produktów terminowych (brak arbitrażu),
4) zmiany w strukturze wynikające z rosnącego udziału generacji z odnawialnych źródeł energii.

Dwa pierwsze punkty oraz ostatni dotyczą kształtu krzywej cen, trzeci dotyczy spodziewanego poziomu cen tej projekcji. W tym artykule skupię się na trzech pierwszych punktach.

Kształt krzywej

Jak wyznaczyć godzinową terminową strukturę cen, by odzwierciedlała cykle i kalendarz świąt? Potrzebujemy do tego historycznych godzinowych cen spot. Im dłuższy ma być okres, na który prognozujemy, tym dłuższy powinien być szereg historycznych cen. Na ogół sprawdza się następująca reguła kciuka, że okres danych historycznych powinien być co najmniej dwa razy dłuższy od okresu prognozy. Załóżmy, że chcemy stworzyć projekcję cen na lata 2020-2021.  Historyczne dane godzinowe mogą wtedy być wzięte np. z lat 2015-2019.


Uśrednianie po latach
Wykres poniżej przedstawia w uproszczeniu zaobserwowane ceny w postaci trójwymiarowej macierzy dla lat 2015-2019, dla 52 kolejnych tygodni roku i 9 typów dni (Mo – poniedziałek, Tu-Th – „wtorko-czwartek”, tj. albo wtorek, albo środa, albo czwartek, Fr – piątek, Sa – sobota, Su – niedziela, Ho – święto państwowe, Be – dzień przed świętem państwowym, Af – dzień po święcie państwowym, Br – dzień pomostowy, tj. dzień albo pomiędzy świętami, np. w Polsce 2. maja, albo dzień pomiędzy świętem a sobotą lub niedzielą, np. w Polsce piątek po Bożym Ciele). Możliwe są oczywiście inne podziały na typy dni. Wymiar godzin jest „zwinięty”, tzn. każdy punkt tej trójwymiarowej przestrzeni mieści w sobie 24 wartości cen odpowiadające 24 godzinom doby. Dla uproszczenia, w przypadku wiosennej zmiany czasu wartość dla brakującej godziny można zastąpić średnią z wartości sprzed i po zmianie czasu, zaś w przypadku jesiennej zmiany czasu wartość z dodatkowej godziny można uśrednić z wartością z godziny tuż przed zmianą czasu.


Na wykresie dla prostoty zaznaczyłem jedynie pięć punktów w postaci kul – każda z nich ma odzwierciedlać wagę, jaką przypisuję obserwacji cen w kolejnych latach. Tak więc, im starsza obserwacja, tym mniejszą ma ona wagę. W sumie wszystkich punktów powinno być 2 340 = 5 lat x 52 tygodnie x 9 typów dni. Tak jednak nie będzie, tzn. nie wszystkie miejsca (punkty) w macierzy będą wypełnione ze względu na ruchome święta, które mogą przypadać w różnych tygodniach roku. Dotyczy to zresztą nie tylko samych świąt, ale także dni z nimi graniczących. Zamiast podziału na 52 tygodnie można użyć podziału na 12 miesięcy, ale i to nie rozwiąże problemu – np. święta wielkanocne mogą przypadać i w marcu, i w kwietniu. Jak sobie z tym poradzić – opisałem w kolejnej sekcji. Przy granulacji tygodniowej sporadycznie występujący 53. tydzień warto dołączyć albo do 1., albo do 52. tygodnia ze względu na zbyt małą liczbę obserwacji.

Zasadniczo, algorytm wyznaczania struktury cen na kolejne lata (na razie bez dostosowania jej poziomu) sprowadza się do przepisania uśrednionych wartości z lat poprzednich dla danego tygodnia roku (ew. miesiąca) i typu dnia. Zauważmy, że przy generowaniu projekcji na przyszłe lata nie potrzebujemy już wymiaru lat. Gdy będziemy chcieli wyznaczyć ceny dobowe np. dla 1 stycznia 2020 r., będziemy potrzebować jedynie uśrednionych cen dla święta (Ho) przypadającego w pierwszym tygodniu (ew. miesiącu) roku. Dlatego trójwymiarową macierz można „spłaszczyć”, pozostawiając jedynie dwa wymiary, tj. wymiar tygodni (ew. miesięcy) oraz wymiar typów dni. Przy uśrednianiu po latach trzeba pamiętać o wagach, które przypisujemy kolejnym latom.


Uśrednianie po tygodniach
W wyniku „spłaszczania” opisanego w poprzedniej sekcji otrzymamy dwuwymiarową macierz o 468 elementach = 52 tygodnie x 9 typów dni. Zasadniczo, każdy element powinien zawierać 24 wartości, a każda z nich będzie uśredniona po latach i po typie dnia (np. dla ‘wtorko-czwartków’ w tygodniu bez świąt spodziewamy się 3 dni, a np. w Polsce, w pierwszym tygodniu roku mogą wystąpić dwa święta – Nowy Rok i Objawienie Pańskie).

Nie wszystkie 468 punkty będą więc wypełnione danymi. Dodatkowo, niektóre z nich mogą zawierać anomalie (nietypowe obserwacje), a które prawdopodobnie nie powtórzą się w tym samym tygodniu i dla tego samego typu dnia w przyszłości. Z pomocą przychodzi nam ruchome uśrednianie względem sąsiadującym tygodni (ew. miesięcy). Każdy punkt, tj. każdy zestaw 24 wartości może być uśredniony przy użyciu stosownych wag tygodniowych lub miesięcznych z sąsiadujących punktów. Naturalne wydaje się przypisanie największej wagi węzłowi centralnemu i odpowiednio mniejszych węzłom sąsiadującym. Na wykresie powyżej zaznaczyłem je tylko dla wybranego elementu, tj. dla typu dni „święto” przypadającego w 30. tygodniu roku. Wartości dla 30. tygodnia są wynikiem uśredniania wartości od 27 do 33 tygodnia roku. Średnice punktów odzwierciedlają wielkość wag przypisanych do odpowiednich tygodni.

Na brzegach obszaru, tj. w okolicach 1. i 52. tygodnia roku można użyć elementów odpowiednio z poprzedniego lub z kolejnego roku (zszycie obszaru). Jeśli wyżej opisany algorytm uśredniający nie sprawi, by wszystkie elementy macierzy zostały uzupełnione, brakujące dane można estymować na podstawie innych typów dni, np. dla świąt można przyjąć wartości z niedziel, a dla dni graniczących ze świętami – wartości z typowych dni niebędącymi ani sobotą, ani niedzielą. Ten sam sposób postępowania można zastosować także w przypadku, gdy zażądamy, by dany element zawierał uśrednione dane z minimalnie, powiedzmy, trzech dni (obserwacji), i gdy jednocześnie ten warunek nie będzie spełniony. Innymi słowy możemy uznać, że trzy obserwacje to za mało, by stanowiły podstawę do utworzenia prognozy. Wtedy możemy zastąpić brakujące dane z takiego punktu, który ma najbardziej zbliżoną charakterystykę.

W wyniku powyższych operacji otrzymamy „stempel”, który będziemy przykładać do każdego dnia okresu prognozowanego. Po określeniu dla takiego dnia jego typu oraz numeru tygodnia roku (ew. miesiąca roku), będziemy w stanie podać dla niego 24 wartości uśrednione po kolejnych latach i typach dni.

Rysunek poniżej przedstawia projekcję cen na lata 2020 i 2021, jeszcze bez sprowadzenia ich do poziomu cen produktów terminowych aktualnie obserwowanych na rynku. Warto na nim zauważyć cykl roczny, tj. podobieństwo kształtu krzywej w roku 2020 do kształtu w roku 2021.

Przy odpowiednim przeskalowaniu wykresu (2. i 3. tydzień 2020 r.) dostrzec można także cykl tygodniowy. Dodatkowo, 6. stycznia 2020 r. (święto przypadające w poniedziałek) ma znacząco niższy poziom ceny od poziomu ceny z kolejnego poniedziałku z 13. stycznia  2020 r.
Cykl dobowy przedstawiłem dla przykładu dla dwóch dni 13. i 14 stycznia 2020 r.:

Poziom struktury cen

Projekcja struktury cen obliczona w sposób opisany powyżej nie będzie odzwierciedlać poziomów cen produktów terminowych, co przedstawiłem schematycznie na wykresie poniżej (poziom projekcji cen jest za niski w związku z zaobserwowanym wzrostem cen na przestrzeni bieżącego roku):
Linie pomarańczowe to poziomy cen wynikające z kwotowań produktów terminowych w połowie września 2019 r. W tym czasie na rynku polskim na dostawę w latach 2020-2021 dostępne są kwotowania kontraktów z dostawą:
  • w pierwszym kwartale 2020 roku,
  • w całym roku 2020,
  • w całym roku 2021.
Dla uproszczenia na wykresie uwzględniłem tylko kwotowania pasma, a pominąłem kwotowania szczytu. Cena w kwartałach od drugiego do czwartego 2020 r. została obliczona tak, by razem z ceną w pierwszym kwartale była równa kwotowaniu dla całego roku 2020 po uśrednieniu po wszystkich godzinach dostawy. Oczywiście, to kolejne uproszczenie – warto wyznaczać ceny implikowane (sztuczne) produktów terminowych np. na podstawie uśrednionych obserwacji relacji cen produktów kwartalnych do cen produktów rocznych.

W celu spełnienia warunku na brak arbitrażu, wszystkie wartości projekcji cen (niebieska linia) należy sprowadzić do takiego poziomu, by ich średnie w odpowiednich okresach dostawy odpowiadały aktualnym poziomom cen produktów terminowych (pomarańczowe linie). Można to zrobić dwiema metodami: multiplikatywną lub addytywną. Pierwsza sprowadza się do przemnożenia – w każdym okresie obowiązywania ceny, której wymagamy – każdej wartości ceny przez pewną liczbę tak, aby osiągnąć wymagany poziom ceny. Metoda addytywna zaś – zamiast na przemnożeniu przez pewną liczbę – polega na dodaniu pewnej liczby do każdej ceny. I jedna, i druga metoda ma swoje wady i zalety, których nie będę tu opisywał.

Na poniższym rysunku przedstawiłem projekcję ceny sprowadzoną do poziomu cen produktów terminowych metodą multiplikatywną.
Średni poziom projekcji cen odpowiada na nim poziomom wynikającym z cen produktów terminowych. Tym samym otrzymałem prognozę cen, która spełnia warunek na brak arbitrażu, tj. odpowiada aktualnie kwotowanym na rynku kontraktom na rynku terminowym.

Na koniec dodam, że HPFC powinno się wyznaczać co najmniej raz w ciągu dnia roboczego, głównie ze względu na zmienność cen produktów terminowych.

W przypadku pytań i uwag – zapraszam do pozostawienia komentarzy i do kontaktu.

Brak komentarzy:

Publikowanie komentarza