Matematyka finansowa w pakiecie Matlab



Podobne dokumenty
Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Przy dokonywaniu analiz ekonomicznych, np. sprzedażowych, bardzo

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Lekcja 1: Origin GUI GUI to Graficzny interfejs użytkownika (ang. GraphicalUserInterface) często nazywany też środowiskiem graficznym

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Tworzenie, zapisywanie oraz otwieranie pliku... 23

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Arkusz kalkulacyjny. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

1. Przekopiuj na dysk F bazę M5BIB.mdb z dysku wskazanego przez prowadzącego 2. Otwórz bazę (F:\M5BIB.mdb)

Jedną z ciekawych funkcjonalności NOLa jest możliwość dokonywania analizy technicznej na wykresach, które mogą być otwierane z poziomu okna notowań:

Fragment tekstu zakończony twardym enterem, traktowany przez edytor tekstu jako jedna nierozerwalna całość.

1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.

Kadry Optivum, Płace Optivum

Jak korzystać z Excela?

3 rodzaje wykresów Forex oraz jak je czytać

Dokumentacja Końcowa

Zastępstwa Optivum. Jak rozpocząć pracę z programem Zastępstwa Optivum w nowym roku szkolnym? Przewodnik. Zakładanie nowej księgi zastępstw

Analiza zależności liniowych

Stochastyczne Metody Analizy Danych. PROJEKT: Analiza kluczowych parametrów turbin wiatrowych

Import danych z plików CSV

najlepszych trików Excelu

WellCommerce Poradnik: Dodawanie języka i waluty. autor: Adrian Potępa (biuro@eclairsoaware.pl)

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Zadanie 1. Stosowanie stylów

4.Arkusz kalkulacyjny Calc

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

Programowanie aplikacji mobilnych

INFORMACJA UŻYTKOWNIKA DM Plaza 2014

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Podstawy MATLABA, cd.

w kalendarzu pracownika po wybraniu z menu podręcznego polecenia Dziennik zdarzeń pracownika

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Temat: Organizacja skoroszytów i arkuszy

Edytor tekstu OpenOffice Writer Podstawy

INFORMACJA UŻYTKOWNIKA DM Plaza 2014

Instrukcja obsługi programu SWWS autorstwa Michała Krzemińskiego

Po naciśnięciu przycisku Dalej pojawi się okienko jak poniżej,

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Sposób tworzenia tabeli przestawnej pokażę na przykładzie listy krajów z podstawowymi informacjami o nich.

Spis treści Panel kontrolny - parametry Wybór jednostek Kontrolka czasu Kontrolka wyboru zestawienia danych...

ROZPOCZĘCIE PRACY Z PLATFORMĄ INFRONT

Sekretariat Optivum. Jak przygotować listę uczniów zawierającą tylko wybrane dane, np. adresy ucznia i jego opiekunów? Projektowanie listy

EXCEL Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Jak rozpocząć pracę? Mapa

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

Qtiplot. dr Magdalena Posiadała-Zezula

Przedszkolaki Przygotowanie organizacyjne

Obliczenia iteracyjne

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

Tworzenie i modyfikowanie wykresów

Zakład Systemów Rozproszonych

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Przenoszenie, kopiowanie formuł

Krótka instrukcja opracowania danych w programie SciDAVis v. 1-D013-win

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

W prawym górnym rogu widoczna jest nazwa zalogowanego użytkownika.

MS Excel. Podstawowe wiadomości

Jak sprawnie filtrować i sprawdzać poprawność danych w Excelu? 1

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Podstawowe operacje i rodzaje analiz dostępne w pakiecie Statistica

Dlaczego stosujemy edytory tekstu?

Tabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Najpierw należy sprawdzić parametry rozliczenia urlopu - zakładka -Firma

Instrukcja użytkownika Platformy Walutowej

Instrukcja użytkowa programu INTERNET LAB-BIT

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Optymalizacja systemów

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Przykład rozwiązywania problemu w programie DSS1OPT

Wyniki operacji w programie

PRZEWODNIK PO ETRADER ROZDZIAŁ XII. ALERTY SPIS TREŚCI

etrader Pekao Podręcznik użytkownika Informacje rynkowe

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Rodzaje wykresów i zasady ich budowy

Krótki przewodnik po Open Calc

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ XVI. INFORMACJE RYNKOWE SPIS TREŚCI

prosta baza danych (nawet trochę bardziej niż prosta) tworzenie dokumentów (zwłaszcza z dużą ilością tabel lub o tabularycznej

Księgowość Optivum. Jak sporządzić rachunek zysków i strat? Definiowanie grup paragrafów obejmujących konkretne rodzaje kosztów

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

Al. Akacjowa 16A Wrocław

I. Program II. Opis głównych funkcji programu... 19

Informatyka dla klas I wykresy funkcji

System imed24 Instrukcja Moduł Analizy i raporty

PROGRAM DO PLANOWANIA ZAKUPÓW wg CPV/CPC

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Klawiatura. Klawisze specjalne. Klawisze specjalne. klawisze funkcyjne. Klawisze. klawisze numeryczne. sterowania kursorem. klawisze alfanumeryczne

Techniki wstawiania tabel

( x) Równanie regresji liniowej ma postać. By obliczyć współczynniki a i b należy posłużyć się następującymi wzorami 1 : Gdzie:

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Transkrypt:

Matematyka finansowa w pakiecie Matlab Wykład 2. Wizualizacja danych giełdowych Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK Kurs letni dla studentów studiów zamawianych na kierunku Matematyka w ekonomii i finansach Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 1/44

Akcje wprowadzenie Papiery wartościowe (ang. securities) dokumenty potwierdzające istnienie określonego prawa majątkowego. Do najważniejszych papierów wartościowych zaliczane są obligacje i akcje. Akcja (ang. stock, share) dokument stwierdzający udział posiadacza akcji akcjonariusza (ang. stockholder, shareholder), w majątku spółki akcyjnej. Akcjonariusz ma prawo do uczestniczenia w podziale zysku spółki oraz ewentualnie w kierowaniu spółką. Przypadającą na każdą akcję część zysku przeznaczoną do podziału nazywamy dywidendą (ang. dividend). Wypłata dywidendy ani jej wysokość nie są gwarantowane. Zależy to od kondycji finansowej spółki oraz polityki prowadzonej przez jej władze. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 2/44

Giełda papierów wartościowych Obrót akcjami odbywa się głównie na giełdach papierów wartościowych (ang. stock exchange). Najważniejsze giełdy światowe: amerykańskie NYSE i NASDAQ, giełda tokijska oraz londyńska. W Polsce od 1991 roku funkcjonuje Giełda Papierów Wartościowych w Warszawie (GPW). Ceny akcji mają tendencje do wspólnych ruchów w górę (hossa) lub w dół (bessa). Wygodnym wskaźnikiem ogólnej sytuacji na rynku są indeksy giełdowe. Są to średnie arytmetyczne lub ważone wszystkich akcji będących w obrocie bądź ich reprezentatywnej części. Najbardziej znane światowe indeksy to: amerykańskie Dow Jones Industrial Average (DJIA), Nasdaq Composite oraz Standard and Poor s 500 (S&P 500), japoński Nikkei 225, brytyjski FTSE 100. W Polsce najważniejszymi indeksami są WIG i WIG20. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 3/44

Dane giełdowe STANDARD & POORS 500 O H L C 17-Feb-94 472.79 475.13 468.26 470.34 18-Feb-94 470.29 471.09 466.07 467.69 22-Feb-94 467.69 471.65 467.58 471.46 23-Feb-94 471.48 472.41 469.47 470.69 24-Feb-94 470.65 470.69 464.26 464.26 25-Feb-94 464.33 466.48 464.26 466.07 28-Feb-94 466.07 469.16 466.07 467.14 1-Mar-94 467.19 467.43 462.02 464.44 2-Mar-94 464.4 464.88 457.67 464.81 3-Mar-94 464.81 464.83 462.5 463.01 4-Mar-94 463.03 466.16 462.41 464.74 7-Mar-94 464.74 468.07 464.74 466.91 8-Mar-94 466.92 467.79 465.02 465.88 9-Mar-94 465.94 467.42 463.4 467.06 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 4/44

Dane giełdowe <TICKER>,<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL> APATOR,19970424,3.41,3.41,3.41,3.41,930600 APATOR,19970425,3.27,3.27,3.27,3.27,437250 APATOR,19970428,2.96,2.96,2.96,2.96,210386 APATOR,19970429,2.73,2.73,2.73,2.73,868263 APATOR,19970430,2.88,2.88,2.88,2.88,368346 APATOR,19970505,2.86,2.86,2.86,2.86,716221 APATOR,19970506,3.05,3.05,3.05,3.05,871794 APATOR,19970507,3.03,3.03,3.03,3.03,433389 APATOR,19970508,3.13,3.13,3.13,3.13,385330 APATOR,19970509,3.29,3.29,3.29,3.29,375122 APATOR,19970512,3.38,3.38,3.38,3.38,518947 APATOR,19970513,3.40,3.40,3.40,3.40,352649 APATOR,19970514,3.18,3.18,3.18,3.18,184327 APATOR,19970515,3.29,3.29,3.29,3.29,169708 APATOR,19970516,3.27,3.27,3.27,3.27,138721 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 5/44

Wizualizacja danych giełdowych Dane w postaci tekstowej są mało czytelne. Znacznie łatwiej jest analizować wykresy. Skupimy się na wizualizacji historycznych danych giełdowych. Nie będziemy natomiast prognozować przyszłych cen na podstawie danych historycznych, czyli zajmować się tzw. analizą techniczną. Pakiet Financial Toolbox zawiera wiele funkcji przeznaczonych do wizualizacji danych. Zanim jednak będziemy mogli z nich skorzystać musimy nauczyć się wczytywać do Matlaba dane umieszczone w zewnętrznych plikach tekstowych oraz zapoznać się z kwestią obsługi dat w Matlabie. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 6/44

Daty w postaci tekstowej Najczęściej używany sposób zapisu daty to przedstawienie jej w postaci tekstowej jako łańcucha znaków np. 1 czerwca 2010 roku. Niestety tę samą datę możemy przedstawić na wiele różnych sposobów, na przykład: 01-Jun-2010, 01/06/2010, 01/06/10, 01-06-10, 01.06.10, 2010.06.01, June 01, 2010. Różne państwa stosują różne sposoby zapisu dat, np. 12-08-1989 to w Polsce 12 sierpnia 1989 roku, a w USA 8 grudnia 1989 roku. Napisanie uniwersalnej funkcji operującej na danych kalendarzowych jest kłopotliwe. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 7/44

Numeryczny format zapisu daty W Matlabie wprowadzono wewnętrzny numeryczny format zapisu daty i czasu oraz udostępniono użytkownikowi wygodne funkcje pozwalające konwertować daty z różnych formatów tekstowych na format numeryczny i odwrotnie. W formacie numerycznym data kalendarzowa reprezentowana jest jako liczba dni, która upłynęła od pewnej ustalonej daty bazowej. W Matlabie datą bazową jest 1 stycznia 0000 roku naszej ery. Nie jest to oczywiście rzeczywista data, a pewien sztucznie ustalony punkt odniesienia. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 8/44

Konwersja dat między formatem tekstowym i numerycznym Dzisiejszą datę, uzyskujemy za pomocą polecenia today. > > today ans = 734323 Do zamiany tej daty na bardziej zrozumiały format tekstowy służy funkcja datestr > > datestr(734290) ans = 01-Jun-2010 Aby wrócić do formatu tekstowego używamy funkcji datenum > > datenum( 01-Jun-2010 ) ans = 734290 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 9/44

Konwersja dat między formatem tekstowym i numerycznym Funkcja datestr zwraca datę w postaci dzień-miesiąc-rok, gdzie miesiąc jest trzyliterowym skrótem angielskiej nazwy miesiąca, a rok jest podany w postaci czterocyfrowej. Jeżeli preferujemy inny format zapisu daty, musimy go podać jako drugi parametr polecenia datestr. za pomocą specyfikatorów wymienionych w poniższej tabeli. yyyy Rok w postaci czterocyfrowej 2010, 1945 yy Rok w postaci dwucyfrowej 87, 09 mmmm Pełna nazwa miesiąca June, August mmm Trzyliterowy skrót nazwy miesiąca Jun, Aug mm Miesiąc w postaci dwucyfrowej 06, 08 m Pierwsza litera nazwy miesiąca J, A dddd Pełna nazwa dnia tygodnia Monday ddd Trzyliterowy skrót nazwy dnia tygodnia Mon, Fri dd Dzień miesiąca w postaci dwucyfrowej 05, 31 d Pierwsza litera nazwy dnia tygodnia M, F Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 10/44

Konwersja dat między formatem tekstowym i numerycznym Przedstawimy w różnej postaci datę 734290 (czyli 1 czerwca 2010). > > datestr(734290, dd/mm/yy ) ans = 01/06/10 > > datestr(734290, mmmm dd, yyyy ) ans = June 01, 2010 > > datestr(734290, mmm dd, yyyy (dddd) ) ans = Jun 01, 2010 (Tuesday) Jeżeli to możliwe, rok należy podawać w postaci czterocyfrowej. Forma dwucyfrowa może powodować problemy z interpretacją 14 może oznaczać 1914 lub 2014. Matlab zakłada, że podana data leży w 100-letnim przedziale, którego środek znajduje się w aktualnym roku. Oznacza to, że 14 zostanie zinterpretowane jako 2014, a 80 jako 1980. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 11/44

Konwersja dat między formatem tekstowym i numerycznym Funkcja datenum potrafi rozpoznać kilkanaście tekstowych formatów zapisu daty i zamienić je na postać numeryczną. Dla pewności warto zawsze sprawdzić, czy format daty został poprawnie rozpoznany, wywołując na wyniku działania polecenia datenum funkcję odwrotną datestr. Jeżeli używamy danych z datami zapisanymi w formacie, który nie jest rozpoznawany poprawnie, musimy sami określić ten format. > > datenum( 12.09/2010 ) ans = Error using datenum... Cannot parse date 12.09/2010. > > datenum( 12.09/2010, dd.mm/yyyy ) ans = 734393 > > datestr(734393) ans = 12-Sep-2010 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 12/44

Czas Omówione funkcje pozwalają operować również na danych czasowych (godziny, minuty, sekundy, milisekundy). Aktualny czas możemy uzyskać za pomocą funkcji now. > > now ans = 7.342906263360648e+005 > > datestr(7.342906263360648e+005) ans = 01-Jun-2010 15:01:55 > > datestr(now, HH:MM:SS.FFF ) ans = 15:07:50.214 HH Godzina w postaci dwucyfrowej 23, 06 MM Minuty w postaci dwucyfrowej 15, 58 SS Sekundy w postaci dwucyfrowej 34, 07 FFF Milisekundy w postaci trzycyfrowej.024,.895 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 13/44

Inne funkcje związane z datą eomdate(rok,miesiąc) zwraca datę (w formacie numerycznym) ostatniego dnia w danym miesiącu i roku, w szczególności możemy sprawdzić ile dni miał luty w danym roku, lweekdate(dzień_tygodnia,rok,miesiąc) zwraca datę ostatniego wystąpienia danego dnia tygodnia w danym roku i miesiącu, czyli np. kiedy wypadnie ostatnia sobota w sierpniu 2056 roku, dzień tygodnia podajemy numerycznie: 1 = niedziela, 2 = poniedziałek itd. nweekdate(n,dzień_tygodnia,rok,miesiąc) zwraca datę n-tego wystąpienia danego dnia tygodnia w danym roku i miesiącu, czyli np. kiedy wypadł trzeci piątek września 1954 roku, weeknum(data) zwraca numer tygodnia, w którym występuje podana data, możemy np. dowiedzieć się, że 1 czerwca 2010 roku wypada w 23 tygodniu tego roku, Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 14/44

Dni robocze i święta W matematyce finansowej niezwykle ważne jest pojęcie dnia roboczego. Zazwyczaj w weekendy i święta państwowe giełdy są zamykane i często trzeba to uwzględniać w obliczeniach. W Matlabie zdefiniowana została lista świąt i innych dni wolnych od handlu na Nowojorskiej Giełdzie Papierów Wartościowych (NYSE). Listę tę można wyświetlić za pomocą polecenia holidays. Znajdują się tam dni świąteczne z lat 1950 2050. Listę tę można zmodyfikować za pomocą polecenia createholidays bądź edytując plik tekstowy holidays.m. Niektóre polecenia pozwalają na bezpośrednie podanie listy dni świątecznych jako jednego z argumentów. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 15/44

Dni robocze i święta Funkcja isbusday(dzień, święta, weekend) pozwala sprawdzić, czy dany dzień jest dniem roboczym. Przyjmuje ona trzy argumenty: data lub tablica dat, które chcemy sprawdzić, wektor zawierający daty dni świątecznych, jeżeli go nie podamy, Matlab skorzysta z domyślnej (amerykańskiej) listy świąt. (opcjonalnie) wektor 7 zer lub jedynek określający, które dni tygodnia należą do weekendu (0 oznacza dzień pracujący, 1 weekendowy.) Pierwszy element wektora to niedziela, drugi poniedziałek itd. Domyślnie wektor ten ma wartość [1 0 0 0 0 0 1] co oznacza, że weekend stanowią sobota i niedziela. Funkcja dla każdej badanej daty zwraca jedynkę, jeżeli jest to dzień roboczy, lub zero w przeciwnym wypadku. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 16/44

Liczba dni między dwiema datami Często w obliczeniach musimy wyznaczyć liczbę dni pomiędzy dwiema datami. Jeżeli korzystamy z numerycznego formatu daty wystarczy od daty końcowej odjąć datę początkową. Matlab udostępnia funkcję daysact, która wykonuje to obliczenie. Często bankowa definicja roku różni się od kalendarzowej. Niektóre banki nie uwzględniają lat przestępnych każdy rok ma 365 dni. W tym przypadku korzystamy z funkcji days365 Inne zakładają, że rok ma 360 dni jest to tzw. rok bankowy, a każdy miesiąc 30 dni (miesiąc bankowy). W tym przypadku korzystamy z funkcji days360. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 17/44

Liczba dni między dwiema datami Kolejną często wykonywaną operacja jest ustalenie jaką część roku stanowi przedział czasu między dwiema datami. Inaczej mówiąc, zamiana liczby dni na liczbę lat. Stosujemy wzór czas w dniach n = liczba dni w roku. Oczywiście wynik zależy od przyjętego sposobu liczenia dni oraz długości roku. Załóżmy, że chcemy wyrazić w latach liczbę dni od 14 czerwca 2010 do 20 listopada 2010. Wyznaczymy najpierw liczbę dni pomiędzy tymi datami. Kalendarzowa liczba dni wynosi: > > d1 = 14-Jun-2010 ; > > d2 = 20-Nov-2010 ; > > kd = daysact(d1,d2) kd = 159 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 18/44

Liczba dni między dwiema datami Jeżeli korzystamy z bankowej definicji miesiąca, to dni tych jest > > bd = days360(d1,d2) bd = 156 Otrzymane wyniki możemy podzielić przez długość roku kalendarzowego bądź bankowego. Możliwe są cztery kombinacje > > n1 = kd/365 n1 = 0.4356 > > n2 = kd/360 n2 = 0.4417 > > n3 = bd/365 bd = 0.4274 Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 19/44

Liczba dni między dwiema datami > > n4 = bd/360 n4 = 0.4333 Z powyższego przykładu wynika, że dla banku pożyczającego pieniądze najkorzystniejsze jest obliczanie dokładnej liczby dni i zamiana ich na lata bankowe. Jest to tzw. reguła bankowa (ang. banker s rule). Dla dłużnika najkorzystniejsze jest obliczanie liczby dni bankowych i zamiana jej na lata kalendarzowe. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 20/44

Wczytywanie danych polecenie load Proste pliki zawierające tylko dane liczbowe możemy wczytać za pomocą polecenia load. Załóżmy, że mamy plik dane.txt o następującej zawartości: 1 23 45.7-4566 0 10 23 45 78 23 1-0.9 2 3 45 78 9 0 Po wczytaniu tego pliku poleceniem load dane.txt w przestrzeni roboczej Matlaba pojawi się nowa zmienna o nazwie dane. Jest to macierz macierz o wymiarach 3 6, której elementami są liczby z pliku dane.txt. Polecenie load ma wiele ograniczeń, nie radzi sobie z różną liczbą danych w wierszach, nie rozpoznaje niektórych separatorów, nie pozwala też wczytywać innych typów danych np. tekstowych czy kalendarzowych. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 21/44

Wczytywanie danych kreator importu Znacznie bardziej funkcjonalnym narzędziem jest kreator importu (ang. Import Wizard), Kreator możemy uruchomić kilkoma sposobami: wybierając polecenie Import Data... z menu File, wpisując w oknie poleceń komendę uiimport -file, w oknie aktualnego katalogu klikając prawym przyciskiem myszy na odpowiedni plik i wybierając z menu podręcznego polecenie Import data. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 22/44

Wczytywanie danych kreator importu Załóżmy, że chcemy wczytać plik dane.txt: Moje wazne dane A B C 95 76 81 45 91 64 80 75 92 34 52 45 Po zaakceptowaniu wyboru pliku pojawi się pierwsze okno kreatora. Lewy panel pokazuje dane w postaci surowej. Prawy panel pokazuje dane w postaci w jakiej, zostaną zaimportowane. Matlab stara się rozpoznać typ danych i przypisać je do standardowych zmiennych: data macierz zawierająca wszystkie zaimportowane dane liczbowe, puste elementy są zapisywane jako NaN, textdata macierz zawierająca wszystkie zaimportowane dane tekstowe, puste elementy są zapisywane jako, colheaders wektor zawierający nagłówki kolumn, rowheaders wektor kolumnowy zawierający nagłówki wierszy. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 23/44

Wczytywanie danych kreator importu Rysunek: Pierwsze okno kreatora importu Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 24/44

Wczytywanie danych kreator importu W naszym przypadku zostały utworzone tylko trzy pierwsze zmienne. Ich zawartość możemy obejrzeć, wybierając odpowiednią zakładkę prawego panelu. Jeżeli wszystkie dane są tego samego typu, tworzona jest tylko jedna zmienna, której nazwa jest taka sama jak nazwa pliku, z którego importujemy dane (ale bez jego rozszerzenia). Matlab w większości przypadków prawidłowo rozpoznaje symbol oddzielający poszczególne kolumny danych. Zawsze możemy jednak ustalić ten symbol sami w górnej części okna kreatora. Często zdarza się, że na początku pliku znajduje się fragment tekstu opisujący jego zawartość. Tekst powinien zostać zignorowany przez program. W polu znajdującym się w prawym górnym narożniku okna możemy ustalić liczbę początkowych wierszy, które powinny zostać zignorowane (u nas są to dwa wiersze). Ostatni z tych wierszy uznawany jest za nagłówki kolumn i przypisywany do zmiennej colheads. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 25/44

Wczytywanie danych kreator importu Lewy panel drugiego okna kreatora zawiera listę zmiennych, które zostaną utworzone z naszych danych. Po kliknięciu wybranej zmiennej w prawym panelu pojawi się jej zawartość. Jeżeli nie chcemy importować którejś z nich, usuwamy znak znajdujący się przy jej nazwie. Jeżeli wolimy, żeby dla każdej kolumny utworzona była nowa zmienna o nazwie odpowiadającej nazwie tej kolumny, to musimy wybrać opcję Create vectors from each column using column names. Możemy też zmienić domyślne nazwy zmiennych klikając na nie prawym przyciskiem myszy i wybierając z menu podręcznego polecenie Rename variable. Wciśnięcie przycisku Finish powoduje zakończenie działania kreatora i import danych. W przestrzeni roboczej Matlab pojawiły się trzy nowe zmienne A,B,C zawierające dane z kolejnych kolumn naszego pliku. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 26/44

Wczytywanie danych kreator importu Rysunek: Drugie okno kreatora importu Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 27/44

Wizualizacja danych Załóżmy, że zaimportowaliśmy do Matlaba plik z notowaniami spółki Agora. Początek tego pliku wygląda następująco: <TICKER>,<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL> AGORA,19990420,49.90,49.90,46.10,47.10,214339 AGORA,19990421,47.00,47.20,46.50,46.70,160604 AGORA,19990422,47.00,49.90,47.00,49.10,155640 AGORA,19990423,49.40,51.00,49.10,49.70,164435 AGORA,19990426,49.50,49.80,49.00,49.00,90323 AGORA,19990427,48.50,48.50,47.50,47.80,84823 AGORA,19990428,47.50,47.50,46.00,46.20,51058 Dane umieszczone są w 7 kolumnach zawierających kolejno: nazwę spółki, datę notowania, cenę otwarcia, cenę najwyższą, cenę najniższą, cenę zamknięcia i obrót. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 28/44

Wizualizacja danych Załóżmy, że zaimportowaliśmy do Matlaba plik z notowaniami spółki Agora. Początek tego pliku wygląda następująco: <TICKER>,<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL> AGORA,19990420,49.90,49.90,46.10,47.10,214339 AGORA,19990421,47.00,47.20,46.50,46.70,160604 AGORA,19990422,47.00,49.90,47.00,49.10,155640 AGORA,19990423,49.40,51.00,49.10,49.70,164435 AGORA,19990426,49.50,49.80,49.00,49.00,90323 AGORA,19990427,48.50,48.50,47.50,47.80,84823 AGORA,19990428,47.50,47.50,46.00,46.20,51058 Dane umieszczone są w 7 kolumnach zawierających kolejno: nazwę spółki, datę notowania, cenę otwarcia, cenę najwyższą, cenę najniższą, cenę zamknięcia i obrót. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 29/44

Wizualizacja danych wykresy liniowe Dalej będziemy zakładać, że w przestrzeni roboczej Matlaba zdefiniowane są zmienne DATE OPEN, HIGH, LOW, CLOSE i VOLUME zawierające dane z tego pliku. Jeżeli daty są w formacie tekstowym, przekształcamy je do formatu numerycznego. Narysujmy najpierw wykres liniowy przedstawiający zmiany ceny otwarcia. > > plot(date,open) Jeżeli interesuje nas tylko część danych, np. tylko te z ostatnich 200 notowań, to wpisujemy polecenia > > plot(date(end-200:end),open(end-200:end)) Etykiety na osi X to daty notowań w formacie numerycznym. Matlab zawiera funkcję dateaxis, która etykietuje oś datami w formacie tekstowym. > > dateaxis( X,1) X to oś której etykiety chcemy zmienić. Drugi argument to format, w jakim ma być wyświetlona data, 1 oznacza, że będą to daty postaci 04-Mar-2009. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 30/44

Wizualizacja danych wykresy liniowe Rysunek: Wykres liniowy ceny otwarcia. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 31/44

Wizualizacja danych wykresy słupkowe Przyjęło się, że dane ze zmiennej VOLUME oznaczające dzienny obrót (czyli liczbę akcji, jakie zmieniły właściciela danego dnia) przedstawia się w postaci wykresu słupkowego. Do rysowania wykresów tego typu służy funkcja bar > > bar(volume) Jeżeli interesują nas dane z pierwszych 50 dni i dodatkowo chcemy, żeby oś X była etykietowana datami, to wpisujemy polecenia: > > bar(date(1:50),volume(1:50)) > > dateaxis( X,1) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 32/44

Wizualizacja danych wykresy słupkowe Rysunek: Wykres liniowy ceny otwarcia. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 33/44

Wizualizacja danych wykresy OHLC Funkcja highlow pozwalającej przedstawić na jednym wykresie ceny najwyższe, najniższe, zamknięcia i otwarcia Taki wykres nazywamy wykresem Open-High-Low-Close chart (OHLC)) Ograniczymy się do 50 pierwszych notowań, przy większej liczbie danych wykres może stać się nieczytelny. > > highlow(high(1:50),low(1:50),close(1:50),open(1:50)) > > dateaxis( X,1, 20-Apr-1999 ) Trzeci argument funkcji dateaxis określa datę odpowiadającą pierwszemu notowaniu. Wykres ma postać szeregu pionowych odcinków. Każdy odcinek odpowiada danym z jednego dnia. Górny koniec odcinka to cena najwyższa, a dolny najniższa. Krótki poziomy znacznik z lewej strony odcinka odpowiada cenie otwarcia, a ten z prawej cenie zamknięcia. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 34/44

Wizualizacja danych wykresy OHLC Rysunek: Wykres typu Open-High-Low-Close Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 35/44

Wizualizacja danych wykresy świecowe Wykresy świecowe również pozwalają przedstawić te cztery ceny na jednym wykresie. Tworzymy je za pomocą funkcji candle. > > candle(high(1:50).low(1:50),close(1:50),open(1:50)) > > dateaxis( X,1, 20-Apr-1999 ) Na otrzymanym wykresie ponownie widzimy pionowe odcinki, na które nałożone zostały prostokąty. Znaczenie odcinków jest takie samo jak w przypadku wykresów typu OHLC, górny koniec to cena najwyższa, dolny najniższa. Dolne i górne krawędzie prostokątów oznaczają ceny otwarcia i zamknięcia. Jeżeli jest on wypełniony oznacza to, że cena akcji w ciągu dnia zmalała, jeżeli pusty to, że wzrosła. Takie wykresy pozwalają zorientować się jaka jest tendencja kursu akcji. Jeżeli np. widzimy długi ciąg pustych prostokątów, to akcje idą w górę. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 36/44

Wizualizacja danych wykresy świecowe Rysunek: Wykres świecowy Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 37/44

Wizualizacja danych wstęga Bollingera Nazwa pochodzi od nazwiska Johna Bollingera, który pierwszy zaczął stosować to narzędzie na początku lat 80. XX wieku. Wstęga Bollingera składa się z trzech wykresów (wstęg): wstęgi środkowej będącej n-okresową średnią ruchomą danych (MA), wstęgi górnej będącej k-krotnością n-okresowego odchylenia standardowego powyżej środkowej wstęgi (MA + kσ), wstęgi dolnej będącej k-krotnością n-okresowego odchylenia standardowego poniżej środkowej wstęgi (MA kσ). Typowe wartości dla n i k to odpowiednio 20 i 2. n-okresowa średnia ruchoma to średnia arytmetyczna wartości z n ostatnich okresów. Na przykład dla ciągu (x k ) k=1,...,n i n = 5 średnią ruchomą obliczamy ze wzoru: MA 5 = x M 4 + x M 3 + x M 2 + x M 1 + x M 5 dla M = 5, 6, 7,..., N. Analogicznie definiujemy n-okresowe odchylenie standardowe. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 38/44

Wizualizacja danych wstęga Bollingera Do rysowania wstęgi Bollingera służy funkcja bolling. Przyjmuje ona dwa obowiązkowe parametry: wektor z danymi i krotność średniej. > > bolling(close(1:250),20) > > dateaxis( x,1, 20-Apr-1999 Na wykresie widzimy 4 krzywe. Ta najbardziej postrzępiona to wykres ceny zamknięcia, ta najbardziej gładka to wstęga środkowa czyli średnia ruchoma. Dwie pozostałe to wstęgi górna i dolna. Widzimy, że wykres średniej ruchomej powoduje wygładzenie wykresu cen, pokazuje ogólną tendencję, pomijając okresowe wahania. Zauważmy też, że wszelkie ekstrema są przesunięte w prawo w stosunku do wykresu danych. Sposób liczenia średniej ruchomej powoduje, że jest ona opóźniona w stosunku do danych wejściowych. Odległość między wstęgą górną i dolną określa jak duża jest zmienność rynku. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 39/44

Wizualizacja danych wstęga Bollingera Rysunek: Wstega Bollingera Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 40/44

Szeregi czasowe Dane giełdowe, którymi zajmowaliśmy się w poprzedniej części skryptu, możemy traktować jako tzw. szeregi czasowe(ang. time series). Szeregiem czasowym nazywamy ciąg informacji uporządkowanych w czasie. Badaniem własności takich szeregów i prognozowaniem na ich podstawie zajmuje się analiza szeregów czasowych. Matlab zawiera szereg narzędzi służących do analizy i wizualizacji szeregów czasowych. Kiedyś tworzyły one osobny pakiet Financial Series Toolbox kilka lat temu zostały dołączone do Financial Toolbox. Omówimy tu tylko kilka podstawowych funkcji umożliwiających stworzenie szeregu czasowego i jego wizualizację. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 41/44

Szeregi czasowe W Matlabie istnieje specjalny typ danych reprezentujący szeregi czasowe, jest to tzw. financial time series object. Obiekty takie tworzymy za pomocą funkcji fints(czas,[dane1,dane2,...,danen], {etykieta1,etykieta2,...,etykietan}) Pierwszy parametr to wektor zawierający daty, drugi to tablica zawierająca kolejne serie danych (musimy podać przynajmniej jedną serię). Ostatni parametr jest opcjonalny, możemy tu określić etykiety serii danych. Utworzymy teraz szereg czasowy z wczytanych wcześniej danych giełdowych >> szereg = fints(date,[open, HIGH, LOW, CLOSE, VOLUME], { Open, High, Low, Close, Volume }) Do wizualizacji tak utworzonych szeregów czasowych służy funkcja chartfts > > chartfts(szereg) Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 42/44

Szeregi czasowe Funkcja ta wyświetla okno z osobnymi wykresami dla każdej serii danych (liniowe dla pierwszych czterech serii i słupkowy dla ostatniej). Kiedy wskazujemy kursorem dowolny punkt na wykresie, na dole okna pokazuje się data oraz odpowiadające jej wartości wszystkich serii danych. Możemy powiększyć dowolny fragment wykresu. Możemy też wyświetlić na jednym wykresie kilka serii danych. Matlab zawiera wiele innych narzędzi ułatwiających analizę finansowych szeregów czasowych. W szczególności warto zapoznać się z ftsgui graficznym interfejsem umożliwiającym analizę szeregów bez wpisywania poleceń z linii komend. Inne przydatne narzędzie to ftsttol. Pozwala ono tworzyć szeregi nie tylko z danych pochodzących ze zmiennych Matlaba czy z plików zewnętrznych. Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 43/44

Szeregi czasowe Rysunek: Okno programu chartfts Bartosz Ziemkiewicz Matematyka finansowa w pakiecie Matlab 44/44