Skip to content

itorK/SPAN-margin-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kalkulator depozytów SPAN® dla MySQL lub MariaDB

Kalkulator depozytów SPAN® jako przykład użycia procedur składowanych w MySQL lub MariaDB.
Implementacja algorytmu według przepisów na stronie KDPW
http://www.kdpwccp.pl/pl/zarzadzanie/span/Strony/O-SPAN.aspx

Algorytm zwraca wartości identyczne z Kalkulatorem KDPW
http://www.kdpwccp.pl/pl/zarzadzanie/Strony/kalkulator.aspx

Jeśli chciałbyś wersję w PL/SQL, PL/pgSQL, lub w Javie skontaktuj się z autorem :)

Instalacja

  1. Należy pobrać i zainstalować bazę danych MariaDB/MySQL
    https://downloads.mariadb.org/ (rekomendowana a najlepiej w wersji większej niż 10.0.8)
    lub
    http://dev.mysql.com/downloads/mysql/

  2. Pobieramy 3 pliki -> kalk_schema.sql , import_span.sql, kalkulator_derywaty.sql

  3. Odpaliamy konsolę MySQL w scieżce gdzie znajdują się pobrane pliki z punktu 2, a następnie wpisujemy 3 komendy:

MariaDB [(none)]> source kalk_schema.sql;
MariaDB [kalkulator]> source import_span.sql;
MariaDB [kalkulator]> source kalkulator_derywaty.sql;

Użycie - Import

Należy zmienić/dodać w pliku my.ini (plik konfiguracyjny MySQL) wartość

[mysqld]
max_allowed_packet = 50M 
  1. Sciągamy plik ze strony KDPW
    http://www.kdpwccp.pl/pl/zarzadzanie/Parametry/SPAN/RPNJI_ZRS.xml
  2. W konsoli MySQL wpisujemy komendę
MariaDB [kalkulator]> INSERT INTO b (col1) VALUES ( LOAD_FILE('RPNJE_ZRS.xml'));


Dla sprawdzenia poprawności załadowania pliku

MariaDB [kalkulator]> SELECT count(*) FROM b WHERE col1 IS NOT NULL;


Powinno zwrócić wartość 1, jeśli 0 to należy wprowadzić poprawną ścieżkę do pliku RPNJE_ZRS.xml 3. Uruchamiamy import

MariaDB [kalkulator]> call prImportuj();

######UWAGA Proces może długo trwać(w moim przypadku 30 minut).

Użycie - Kalkulacja

  1. Czyścimy pozycje
MariaDB [kalkulator]> call prCzysc();
  1. Dodajemy pozycje do kalkulatora, gdzie 1 parametr to Nazwa Intrumentu, 2 parametr to ilość pozycji, 3 parametr to cena(w przypadku kontraktów jest ignorowana, w przypadku opcji wpływa na premię opcyjną)
MariaDB [kalkulator]> call prDodajPozycje('FW20Z1420',8,4.5);
MariaDB [kalkulator]> call prDodajPozycje('FW20U1520',-2,4.5);

Można wpływać na wysokość depozytu zmieniając parametr Price Scan Range

MariaDB [kalkulator]> call prKorygujPSR('FW20U1520',-0.036);


Wynikiem właściwym Price Scan Range jest suma zaimportowanego Price Scan Range i 2 parametru funkcji prKorygujPSR.
W tym wypadku współczynnik PSR zostanie obniżony o wartość 0.036.
3. Uruchamiamy właściwą kalkulację

MariaDB [kalkulator]> call prOblDep;
  1. Odczyt parametrów
MariaDB [kalkulator]> select @depozyt,@NOD, @DPNO, @premia, @pno;


Właściwym wynikiem jest @depozyt.

Źródła

KDPW SPAN

Autor

Karol Przybylski
[email protected]

About

Kalkulator depozytów SPAN

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published