Finanční výpočty v prostředí MATLAB (1)

Finanční profesionálové celosvětově využívají MATLAB a jeho nadstavbové knihovny pro vývoj a implementaci čím dál tím složitějších finančních modelů. Stal se pro ně nepostradatelným nástrojem pro analýzu vzrůstajících objemů dat a také pro práci v podmínkách utahující se regulace.

MATLAB je nejsnazší a nejproduktivnější výpočetní prostředí pro inženýry a vědce. Zahrnuje vlastní vysokoúrovňový programovací jazyk a finanční inženýři mohou využívat naprogramované, otestované a ověřené funkce, které jsou plně zdokumentovány, včetně algoritmů a příkladů použití. Díky svým grafickým aplikacím umožňuje MATLAB také interaktivní způsob práce. To je efektivní obzvláště ve fázi návrhu. Aplikace vždy umožňují vygenerovat uživatelskou funkci, která provede totéž, co bylo nastaveno v grafickém rozhraní. Ve výsledku tak lze automatizovat celý proces, který uživatel vykonal interaktivně.
Finanční výpočty jsou založeny na práci s vektory a maticemi, ať už se bavíme o statistice, datové analytice, či optimalizaci. Programovací jazyk prostředí MATLAB je na práci s maticemi postaven a ta, vyjádřena tímto jazykem, působí přirozeně. Příslušné výpočty jsou z toho důvodu velmi rychlé.
Finanční a statistické knihovny prostředí MATLAB obsahují funkce a aplikace, které finančním odborníkům zefektivňují práci. Veškeré knihovny jsou testovány společně a jsou navzájem kompatibilní.

Díky prostředí MATLAB a jeho nadstavbám mohou být v jednotném prostředí prováděny:

  • Načítání dat
  • Integrace s datovými zdroji a stávajícím softwarem
  • Zobrazení historických i živých dat
  • Předzpracování dat
  • Analýza dat a vytváření předpovědí
  • Odhadování, řízení a posuzování rizika
  • Vývoj, testování a implementace obchodních strategií
  • Výpočet cen
  • Stanovení peněžních toků
  • Tvorba, optimalizace a ohodnocování portfolií
  • Generování reportů
  • Zahrnutí numerické analýzy do podnikových aplikací (vývoj a nasazení aplikací do produkčních prostředí, na desktop, server a web)

Data

Základem každé analýzy jsou data. Z prostředí MATLAB lze přistupovat k datům mnoha různých formátů. Z hlediska finančních aplikací je hlavně zajímavý přístup k textovým souborům, tabulkovým formátům, databázím, finančním datovým serverům nebo webovým službám. Data lze do prostředí MATLAB načíst pomocí jednoduchých funkcí nebo interaktivně pomocí nástrojů, jako jsou Import Tool pro textová a tabulková data nebo Database Explorer pro data z databází. Pro automatizaci načítání dat umožňují tyto nástroje vygenerovat sadu příkazů, kterou stačí spustit.

Import Data

Obrázek 1: Import Data

Data načtená do prostředí MATLAB vidíme přehledně v okně Workspace. MATLAB má k dispozici množství datových typů. Pro zpracování tabulkových dat je nejvhodnější datový typ table. Ve svých sloupcích umožňuje držet data různých formátů – textová, číselná, datum. Pomocí Variable Editoru můžeme data v MATLABu zobrazit a interaktivně upravovat podobně jako v excelovské tabulce.

Big data

V datové analytice je pravidlem, že čím více máme k dispozici dat, tím jsou naše analýzy a modely přesnější. Chceme-li však zpracovávat příliš velké množství dat, můžeme narazit na jisté problémy. Některé softwary mají pevně dané omezení na množství dat, s kterým lze naráz pracovat. V případě, že software takovéto omezení nemá, narazíme na hranice hardwaru. Řešení spočívá v použití zcela jiných algoritmů, než při zpracování běžně velkých dat. Datům, pro jejichž zpracování je zapotřebí použití odlišných technik, říkáme big data.
Při práci s big data se setkáváme s problémy uvedenými v následující tabulce. MATLAB poskytuje jednotné a vysoce výkonné prostředí pro práci s big data.

 

Problém

Změny ve výpočtu

Příklad řešení v prostředí MATLAB

Data se nevejdou do paměti

Jiné algoritmy – funkce zpracovávají data po částech

Tall array / Tall table – používáme stejnou syntaxi jako při zpracování běžně velkých dat

Doba výpočtu je příliš dlouhá

Paralelizace

Beze změny kódu mohou výpočty probíhat na lokálním PC, GPU, clusteru i cloudu (sériově i paralelně)

Využití většího výpočetního výkonu

 

Práce s big data je v prostředí MATLAB snadná. I když pracujeme s daty, která se nevejdou do paměti, nebo chceme výpočty paralelizovat, naše práce v prostředí MATLAB se nezmění. MATLAB také umožňuje provádět výpočty v různých výpočetních prostředích (lokální PC, GPU, cluster, cloud) beze změny napsaného kódu.
Například datové typy Tall array a Tall table umožňují volat na big data ty samé funkce, které voláme na běžná data načtená do paměti. Samotné výpočty můžete také přenést na Hadoop cluster s technologií Spark.

Vizualizace a předzpracování dat

Poté, co data načteme, potřebujeme v nich získat přehled. Toho dosáhneme pomocí různých způsobů vizualizace. Stejně jako při načítání dat lze při vizualizaci postupovat jak interaktivně, tak pomocí příkazů.


Obrázek 2: Plots

Na obrázku 2 je vidět část nabídky vizualizací. Vizualizaci zvolených dat provedeme pouhým kliknutím. Sestrojený graf lze dále interaktivně upravit pomocí nástrojů Plot Tools. Můžeme například přidat název grafu, popisky os, legendu, změnit barvy, měřítka os, odstranit či zvýraznit odlehlé hodnoty, fitovat polynom atd. Následně graf uložíme nebo exportujeme do různých grafických formátů. Můžeme jej také přímo zkopírovat do Wordu, Excelu či PowerPointu. Chceme-li aplikovat stejnou formu vizualizace na různá data, vygenerujeme opět sadu příkazů a tím celý proces zautomatizujeme.


Obrázek 3: Plot Tools

Kromě vizualizací získáváme v datech přehled tvorbou souhrnů, výpočtem statistik a testováním hypotéz.
Ve finančních výpočtech velice často pracujeme s tabulkami, jejichž sloupce jsou časové řady a každý řádek přísluší jednomu časovému okamžiku. Pro zjednodušení práce s takovými daty je v MATLABu k dispozici datový typ timetable. Ten umožňuje snadnou synchronizaci více tabulek dle časové proměnné nebo změnu časové škály tabulky na různá časová období výpočtem souhrnných statistik. Data v timetable lze snadno vykreslovat do grafů. Při změnách měřítka časové osy se automaticky mění popisky hodnot přes roky, měsíce, dny, hodiny, minuty a sekundy.

V této chvíli již máme v hrubých datech přehled. Před samotnou analýzou je však téměř vždy zapotřebí data upravit. Předzpracování dat v sobě může zahrnovat detekci odlehlých hodnot, identifikaci chybějících údajů a jejich odstranění nebo nahrazení (např. pomocí interpolace). Další obvyklou úpravou je identifikace trendů a sezónních efektů, normalizace dat, transformace prediktorů nebo výběr významných prediktorů.
MATLAB spolu se Statistics and Machine Learning Toolboxem obsahují funkce pro předzpracování dat, které mají přirozenou syntaxi a díky úplné a přehledné dokumentaci jsou jednoduše a rychle aplikovatelné.
Dokumentace je jedna z velkých předností prostředí MATLAB. Obsahuje příklady, vysvětlení konceptů i návody pro aplikování jednotlivých postupů. Zároveň jsou v dokumentaci uvedeny použité algoritmy. Dokumentace tak umožňuje uživatelům efektivní práci a zvyšuje jejich produktivitu.

V příští části…

Díky prostředí MATLAB můžete provádět načítání, vizualizaci, předzpracování a analýzu dat, tvorbu reportů i nasazení vytvořených aplikací v jednom jediném prostředí. V příštím díle se zaměříme na finanční analýzu, modelování a sdílení výsledků.

Vyzkoušejte si…

Pokud Vás článek zaujal, můžete si nezávazně vyzkoušet software MATLAB v podobě časově omezené zkušební verze (trial).

Distributor produktů společnosti MathWorks v České republice a na Slovensku:
HUMUSOFT s. r. o.
http://www.humusoft.cz

humusoft-logo

mathworks-logo

Překvapující geometrická kouzla: Foton v zakalené vodě

Máme dvě skleničky, jednu s vodou čirou a druhou zakalenou. Do obou vyšleme paprsek světla. …

  • „MATLAB je nejsnazší a nejproduktivnější výpočetní prostředí pro inženýry a vědce.“ – Prostředí, kde se člověk neustále setkává s nutností vymýšlet rovnáky na ohejbáky, bych takto opravdu nenazýval.

    • Jan Studnička

      Děkuji za Váš komentář. Mohl byste prosím uvést nějaký konkrétní příklad? Předem děkuji, J. S.

Používáme soubory cookies pro přizpůsobení obsahu webu a sledování návštěvnosti. Data o používání webu sdílíme s našimi partnery pro cílení reklamy a analýzu návštěvnosti. Více informací

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close