Getting high
frequency and also real-time stock prices data (for US and Europe stocks in particular) with Python could be very
simple indeed! Just use the http://hopey.netfonds.no site. Here is a simple code for generating the url-address (depending
on ticker and date), reading and saving the data. Additionally, historical daily high-frequency
data is available back for several days (about 15 days).
The url- format for the high-frequency data is (the example uses OMV shares, traded on Vienna Stock Exchange): http://hopey.netfonds.no/tradedump.php?date=20150507&paper=E-OMVV.BTSE&csv_format=txt. While for the depth the url-format is http://hopey.netfonds.no/posdump.php?date=20150507&paper=E-OMVV.BTSE&csv_format=txt. However, it seems that depth data is not available for US shares.
Here is the code and enjoy the data:
import urllib.request
# urllib.request for Python 3.4 and urllib for Python 2.7, respectively change the def get_data(date,ticker,exchange) code below in read_url line
def get_data(date,ticker,exchange):
base_url = 'http://hopey.netfonds.no/tradedump.php?'
search_query = 'date={}&paper={}.{}&csv_format=txt'.format(date,ticker,exchange)
search_url = '{}{}'.format(base_url, search_query)
read_url=urllib.request.urlopen(search_url).read()
return read_url
# for Python 3.4: read_url=urllib.request.urlopen(search_url).read(); for Python 2.7: read_url=urllib.urlopen(search_url).read()
if __name__ == '__main__':
ticker = 'AAPL' # the code-format for US stocks is using directly the ticker, for instance 'AAPL' is Apple, 'MSFT' is Micrrosoft; the format for European shares is 'E-XXXX', for instance 'E-BAYND' - Bayer, 'E-TKAV' - Telekom Austria, 'E-LLOYL' - Lloyds Banking Group
date=20150507 # date format is YYYYMMDD
exchange='O' # 'O' - US shares, 'BTSE' - for European shares
data=get_data(date,ticker,exchange)
with open ("trades.txt", "wb") as f:
f.write(data)
No comments:
Post a Comment