Skrypt Pythona do automatycznego pobierania danych o notowaniach instrumentów finansowych udostępnionych przez GPWInfoStrefę.
Źródła w Pythonie (rozmiar: 2.21 KB)
Pakiet pod Windows (rozmiar: 1.79 MB)
Parametry działania skryptu (zakres czasowy danych do pobrania oraz typy instrumentów) ustawia się w pliku conf.txt. Wersję pod Windows (z zaintegrowanym interpreterem Pythona) uruchamia się przez wywołanie gpwis.exe).
Pytania, sugestie itp. można wysyłać przez formularz kontaktowy lub przez komentarze na blogu.
Dostęp do pobieranych przez skrypt danych za pomocą interfejsu GPWInfoStrefy znajduje się tutaj.
Podpowiedź jak napisać to samo w dowolnym innym języku znajduje się w tym wpisie.
Skrypt zapisuje dane do plików w formacie identycznym jak ten serwowany przez GPWInfoStrefę (z wyjątkiem obcięcia legendy z pierwszej linii). Jeśli ktoś chciałby mieć format dostosowany do Swojego Ulubionego Programu Do Analizy Technicznej, to może śmiało pisać - odpowiednią modyfikację bardzo łatwo wprowadzić.
Zapisywanie do plików jest możliwe zarówno w/g nazw instrumentów (wpisywanie do tego samego pliku notowań różnych instrumentów o tej samej nazwie - np. wszystkich praw poboru danej spółki notowanych w żądanym okresie) lub w/g unikalnych kodów ISIN.
Aktualizacja 11/02/08
Poprawiłem drobną niedoróbkę.
Aktualizacja 5/03/08
Opcja zapisywania do jednego pliku wszystkich notowań z danej kategorii.
Aktualizacja 8/03/08
Funkcja pobierająca listę instrumentów (nazwa + ISIN) w PHP (rozmiar: 1.88 KB)

RSS

komentarze przez RSS




czy moglbys dostosowac te skrypty dla linuxa? pozdrawiam
xr5pl — luty 12, 2008 @ 23:01
Gdybyś tylko doprecyzował co masz na myśli.
Nie działa? Może po prostu nie masz zainstalowanego interpretera Pythona?
cebras — luty 12, 2008 @ 23:18
Chciałbym żeby notowania za dany okres dla danej kategorii (wszystkie akcje) wrzuciło mi do jednego pliku. Jest to możliwe?
tomek — luty 27, 2008 @ 21:06
no i jeszcze jedna sprawa… czy da się tak zmodyfikować programik, albo jakoś określić parametrem, żeby nie wrzucał do pliku ostatnich 3 kolumn - są puste..
tomek — luty 27, 2008 @ 21:46
Pewnie. W weekend dodam. W ten, chyba. :-)
cebras — luty 27, 2008 @ 22:14
Natomiast co do ostatnich kolumn - nie dla wszystkich instrumentów są one stale równe 0.
cebras — luty 27, 2008 @ 22:18
super, czekam z niecierpliwością :)
tomek — luty 27, 2008 @ 22:29
Zrobione. Opis w pliku conf.txt.
cebras — marzec 5, 2008 @ 6:23
super, dzięki!!
a słuchaj, jak można w stosunkowo łatwy sposób (np. korzystając z PHP) pobrać aktualną listę instrumentów z danej kategorii? Potrzebowałbym ISIN i nazwę instrumentu. Fajnie jakby to było można wszczepić w skrypt PHPowy, żebym mógł to z automatu odpalać i pobierać aktualną listę co jakiś czas…
tomek — marzec 7, 2008 @ 20:03
Można na przykład tak:
<?php function getInstruments($date_start, $date_end, $category) { $host = 'www.gpwinfostrefa.pl'; $path = '/palio/html.run?_Instance=cms_gpw.pap.pl&_PageID=21&_CheckSum=-1531858831'; $params = "data1=$date_start&data2=$date_end&category=$category"; $fp = fsockopen($host, 80); fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: " . strlen($params) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $params); while (!feof($fp)) { $data .= fgets($fp,128); } fclose($fp); $data = ereg_replace('<select name=\"_searchInstr\" id=\"_searchInstr\">', '', \ $data); $data = ereg_replace('</select>', '', $data); $data = ereg_replace('<option value=\"', '', $data); $data = ereg_replace('\">', ';', $data); $data = ereg_replace('</option>', '$', $data); $data = ereg_replace('^.*Connection: close', '', $data); $lines = split('\$', $data); $toret = array(); foreach ($lines as $line) { $toret[] = split(';', $line); } return $toret; } //Przykladowe uzycie $ret = getInstruments('2008-03-07', '2008-03-07', '10'); foreach ($ret as $r) { echo $r[0] . ' ' . $r[1] . '<br/>'; } ?>cebras — marzec 9, 2008 @ 12:43
Okej, widzę, że są problemy z kodem w komentarzach (w niektórych przeglądarkach ucina linie). Dlatego zamieściłem link do kodu w treści wpisu, pod “Aktualizacja 8/03/08″.
cebras — marzec 9, 2008 @ 13:02
Czy jest możliwość wyboru tylko kilku spółek?
kaczy44 — kwiecień 11, 2009 @ 16:50
Oczywiście tak, jest możliwe i nie jest to specjalnie trudne, ale, niestety, w tej chwili nie bardzo mam czas się tym zająć.
cebras — maj 4, 2009 @ 15:50