Notowania bossa.pl

OpenWrt jest alternatywnym oprogramowaniem dla routerów. Dzięki OpenWrt nasz router przekształca się mały komputer działający pod kontrolą Linuksa. Możliwości takiego routera są ograniczone zatem jedynie wielkością pamięci i szybkością procesora. Instalację OpenWrt z bardzo wygodnym i całkowicie spolszczonym interfejsem webowym Gargoyle opisałem w artykule Gargoyle – instalacja, aktualizacja, usuwanie.

W tym wpisie pokaże, jak dzięki routerowi z OpenWrt / Gargoyle możemy automatycznie, codziennie ściągać notowania end of day papierów wartościowych z serwisu bossa.pl. Notowania te są w tekstowym formacie PRN, który bezproblemowo można importować do najpopularniejszych programów służących do przeprowadzania analizy technicznej, takich jak Metastock, AmiBroker czy Omega. Oczywiście nic nie stoi na przeszkodzie, aby poniższy skrypt po drobnych modyfikacjach uruchamiać w jakiejkolwiek dystrybucji Linuksowej czy nawet Windowsie z zainstalowanym Cygwinem czy GNU On Windows.

Konfiguracja nośnika USB w OpenWrt / Gargoyle

Wymaganiem wstępnym, oprócz samego routera z OpenWrt jest podpięcie jakiegoś nośnika USB (pen-drive, karta pamięci, dysk USB) do routera i skonfigurowanie dostępu do niego przez sieć. Jeśli jeszcze tego nie zrobiłeś zaloguj się do swojego OpenWrt / Gargoyle i przejdź na System -> Nośniki USB. Tutaj w razie potrzeby, zmieniamy nazwę grupy roboczej z domyślnej na naszą, ale myślę, że w większości przypadków pozostanie tu domyślna nazwa grupy WORKGROUP. Dalej możemy dodać użytkownika (-ów). Pozwoli to na zróżnicowanie praw dostępu do współdzielonych zasobów. Przykładowo, możemy zrobić tak, że udostępniony zasób jest dostępny do odczytu dla wszystkich w sieci, ale tylko niektórzy użytkownicy mają prawo zapisu (modyfikacji, usuwania).

Teraz przechodźmy do właściwego dodawania współdzielonego dysku / folderu. Najważniejsze opcje jakie musimy podać, to: dysk (nawet jeśli nasz router ma tylko jedno złącze USB, można zastosować huba z własnym zasilaniem i do niego podpiąć kilka urządzań), nazwę udziału, typ udziału oraz prawa dostępu, przykładowo:

Dodawanie współdzielonego dysku w OpenWRT

Dodawanie współdzielonego dysku w OpenWRT

Tak skonfigurowany dysk jest widoczny zarówno w tzw. otoczeniu sieciowym Windows jak i przez klienta FTP.

Skrypty ściągające notowania z bossa.pl

Teraz proponuję na udostępnionym dysku założyć 2 katalogi: bin, w którym umieścimy nasz skrypt oraz Notowania, gdzie będą ściągane notowania z serwisu bossa.pl.

Poniżej przedstawiam 2 skrypty, pierwszym z nich ściągniemy całą bazę notowań:

Efektem działania powyższego skryptu jest utworzenie 2 plików baza.prn zawierającego całą bazę notowań oraz spis.txt zawierającego spis wszystkich walorów w bazie.

A drugi ze skryptów służyć będzie do aktualizacji bazy o bieżące notowania:

Ten skrypt natomiast utworzy plik notowania.prn zawierający notowania z kilku ostatnich dni.

W zależności od potrzeby skrypty można, a nawet należy zmodyfikować, tak więc kilka słów komentarza.

Komenda cd /tmp/usb_mount/dev_sda3/notowania zmienia aktualny katalog na ten gdzie mają być umieszczane notowania. Komendy wget ściągają interesujące nas pliki z notowaniami – w serwisie bossa.pl dostępne są następujące pliki notowań:

Lp. Plik notowań Plik bazy Opis
1 sesjacgl.prn mstcgl.zip Notowania ciągłe – akcje, akcje NFI i indeksy GPW
2 sesjafut.prn mstfut.zip Rynek kontraktów terminowych i opcji GPW
3 sesjancn.prn mstncn.zip Rynek NewConnect
4 sesjaf2.prn mstf2.zip F2 – System jednolitego kursu dnia – papiery dwukrotnie notowane GPW
5 sesjaobl.prn mstobl.zip Notowania ciągłe – obligacje GPW i Catalyst
6 sesjazgr.prn mstzgr.zip Indeksy giełd zagranicznych
7 sesjanbp.prn mstnbp.zip Waluty w NBP
8 sesjafun.prn mstfun.zip Wartości netto jednostek funduszy inwestycyjnych
9 sesjaofe.prn mstofe.zip Wartości jednostek funduszy emerytalnych
10 sesjafx.prn mstfx.zip Forex

Jeszcze jedna komenda wymaga komentarza, otóż papier o nazwie PEKAO występuje zarówno w plikach sesjacgl.prn jak i sesjaofe.prn, a zatem aby odróżnić akcje od jednostek funduszu emerytalnego konieczna była komenda sed -i 's/PEKAO/OFEPEKAO/g' 20*.prn.

Zapisujemy nasz zmodyfikowany skrypt nadajemy mu prawa wykonywania i testujemy go. Logujemy się do routera przez SSH i wydajemy komendy:

lub podobne w zależności od ścieżki dostępu. Połączone notowania powinny znaleźć się w pliku notowania.prn. Jeśli nie ma błędów przechodzimy do ostatniej części.

cron – automatyczne, codzienne aktualizacje notowań

Teraz nie pozostaje nam nic innego jak użycie cron-a do automatycznych, codziennych aktualizacji notowań. Zatem odpalamy komendę:

i dopisujemy na końcu linijkę:

dzięki której skrypt /tmp/usb_mount/dev_sda3/bin/notowania będzie uruchamiany codziennie od poniedziałku do piątku o godzinie 21:05.

Brak możliwości komentowania.