Intelligens portfólió menedzsment szoftver az energiakereskedelemben - Dmlab

Intelligens portfólió menedzsment szoftver az energiakereskedelemben

Szalóki Kristóf

2021.02.01. • olvasási idő:

Így építünk egy adatalapú portfólió menedzsment szoftvert, mely automatizáltan képes ellátni a napi feladatokat és kereskedni az energiatőzsdén.

Az energiakereskedelem világában is egyre kiemeltebb szerepet kapnak az adatok, így több cég is az adatvezérelt transzformáció útjára lépett, hiszen ráeszméltek, hogy az adataik megfelelő felhasználásával piaci előnyre tehetnek szert. Így döntött a partnerünk is a Central Energy Trade Zrt. (továbbiakban CET), akik szerettek volna egy modern, intelligens, adatalapú portfolió menedzsment szoftvert, mellyel a piaci helyzetüket megerősíthetik, és az innovatív gépi tanuláson alapuló előrejelző és kereskedő modulok segítségével jelentősen egyszerűsödnek a portfólió kezelési folyamataik. A CET számára készített szoftverben kezelünk napelem farmokat és különböző típusú fogyasztókat is, melyek együttesen adják meg a portfóliót és annak értékét.

De még mielőtt belevágnánk a témába egy kis kitekintés arra, hogy mivel is foglalkoznak a CET-nél és a megoldás, amit készítünk az miért is lesz hasznos számukra. A CET fő tevékenysége az energiakereskedelem, portfóliójában kétféle szereplő lehet; a fogyasztók, akik számára áramot biztosítanak, és a termelők, akiktől pedig átveszik az áramot. A képzeletbeli mérleg két oldala azonban koránt sincs mindig egyensúlyban. Az ő feladatuk, hogy a hiányt lefedezzék illetve a túltermelést értékesítsék az energiatőzsdén. Az áram ára korántsem fix ezen a szinten, az ő feladatuk, hogy az előre szerződött mennyiségű árammal a lehető legoptimálisabb módon kereskedjenek az energiatőzsdén. A projekt célja egy adatalapú rendszer készítése, mely automatizálja a mindennapi folyamataik egy részét és kezeli a portfóliójukat.

A projekt tervezésekor az igényeik alapján felállítottunk egy szempontrendszert, ami alapján kiválasztottuk a megfelelő technológiákat.

Technológiák és szempontok:

  • Modularitás: Microservice architektúra
  • Hatékonyság: Python alapú backend (fastapi)
  • Letisztult felhasználói felület: Angular frontend, ng-bootstrap 
  • Platformfüggetlenség és skálázhatóság: Docker & Kubernetes
  • Biztonság: JWT tokenes Azure Active Directory autentikáció
  • Interaktív adatvizualizáció: PowerBI

 

Az elkészített megoldás architektúrális rendszerterve

Adatgyűjtés

Az elkészített megoldás egyik legfontosabb része az adatgyűjtő modul, mely biztosítja, hogy a rendszerben mindig friss, aktuális adat legyen. Az ütemezett adatgyűjtés megvalósítására az Airflow-t használtuk, melyben külön DAG-ok (gráf alapú folyamat definíció scriptek futtatásánák ütemezésére) definiálásával és Python scriptek segítségével megvalósítottuk az adatok gyűjtését, tisztítását és injektálását az adatbázisba. Az adatok különféle formátumban és rendszerességel érkeznek, így az adatakvizíciós fázisban figyelmet kell szentelnünk arra, hogy azok helyesek-e, mind tartalmi, mind formátum szempontjából. Fontos ilyenkor figyelni arra is, hogy hogyan reagáljon a rendszer arra, ha az adatok a tervezett időpontban nem elérhetőek. 

Ahhoz, hogy minden napelemfarm esetén a legpontosabb előrejelzést tudjuk elkészíteni a várható termelésüket illetően, időjárás előrejelzési adatokra van szükségünk. Az ilyen adatok óránként kerülnek begyűjtésre minden egyes lokációra. Az energiatermelő napelemeken kívül rendszerünk energiafogyasztó egységeket, úgynevezett, POD-okat (Place of Delivery) is kezel, melyek termelési illetve fogyasztási adatai offline fájl formátumból kerülnek feldolgozásra napi rendszerességgel. Ezek mellett még sok-sok külső adatforrással dolgozunk melyek segítségével biztosítjuk a rendszer további moduljainak adatigényét.

Prediktív analitika

A prediktív analitikai modulra tekinthetünk úgy is, mint az elkészített rendszer agya. A modul az adatgyűjtő egység által szolgáltatott adatokból igyekszik a lehető legjobb előrejelzéseket elkészíteni arra vonatkozóan, hogy a portfólióban kezelt termelő és fogyasztó egységek fogyasztása és termelése hogyan alakul. Magán a predikciós modulon azért is van nagy felelősség, mert a rendszer a kereskedést az energiatőzsdén ennek a modulnak a javaslatai alapján fogja a jövőben végezni. 

A predikciós modul kialakítása során több különböző modellt építettünk az sklearn könyvtárban lévő machine learning algoritmusok segítségével, melyekkel akár egyesével is képesek vagyunk előrejelezni az egyes termelő és fogyasztó egységek jövőbeli viselkedését. A modelllezést azonban egy jelentős feature engineering fázis előzte meg, amikor is a meglévő adatokból újabb és újabb attribútumokat készítettünk a modell számára. A modell pontossága mellett figyelembe kellett vennünk annak válaszidejét egy-egy predikció elkészítéséhez, illetve az egész rendszer szempontjából a modell számára szükséges erőforrásokat is.

Automatizált feladatok

Az elkészített rendszer elsődleges célja az volt, hogy azokat a napi feladatokat, amelyek autómatizálhatóak, a rendszer megvalósítsa. Az automatizálási feladatok végrehajtása történhet igény szerint, tehát amikor a felhasználó szeretné, illetve ütemezetten is. Mindkét eset kiszolgálása könnyedén működött az Airflow, valamint a Microservice architektúra alapú megoldás elkészítésének köszönhetően. Portfóliószámítás esetén például a legfrissebb predikciók alapján kiszámítható a mérlegkör aktuális és jövőbeli egyenlegének értéke, és az ehhez kapcsolódó dokumentumok legenerálhatók vagy automatikusan beküldhetők a MAVIR célrendszerébe. A napon belüli kereskedelem segítségével a friss előrejelzések alapján felmerülő hiányok könnyen és szinte automatikusan kiegyenlíthetőek. Továbbá a számlázás is autómatizáltan működik a számlázz.hu API-n keresztül. Egy új ügyfél megjelenése esetén, a rendszerben egy partner- és egy szerződésfelvételt követően a rendszer automatizáltan képes működni.

Interaktív adatvizualizáció

Egy jó dashboard többet ér száz szónál is! A dashboardok segítségével gyorsan és könnyedén átfogó, de akár részleteibe menő képet is kaphatunk a cég aktuális állapotáról. Így tehát fontosnak tartottuk, hogy ne csupán a webes applikáción keresztül lehessen elérni az abban tárolt adatokat, hanem adjunk rá egy adatvizualizációs megoldást is. Magát a dashboard rendszert PowerBI segítségével valósítottuk meg, mely az adatbázishoz közvetlenül kapcsolódva a riportok számára létrehozott táblákból olvassa ki az adatokat. Maguk a riportok valós idejűek, így ha megtekintjük azokat, akkor a legfrisseb adatokat találjuk benne, legyen szó a napelemparkunk aktuális és várható teljesítményéről, vagy éppen az egész portfóliónk állásáról. A PowerBI dashboardok a webes applikáció frontendjébe vannak beépítve, ezért figyelnünk kellett rá, hogy az autentikáció során a megfelelő felhasználó csak a számára is nyilvános adatokat lássa a rendszerben.

Az intelligens portfólió menedzsment szoftver üzemeltetése

Az elkészített megoldás mellett kiemelt figyelmet szántunk annak hibatűrő működésére, az esetleges hibák minél hamarabbi észlelésére és javítására, így a rendszer monitorozásához sentry-t használtunk, mely a hibák esetén emailen, illetve slacken keresztül értesíti a csapatot. A rendszert jelenleg Azure-ben üzemeltetjük egy Azure Kubernetes Service segítségével, mely könnyen skálázhatóvá teszi az erőforrásokat, melyekre a rendszernek szüksége van.