Блог им. dataserverdeveloper
import json, urllib,sys, pandas as pd #импортируем модули парсинга json, скачивание с инета, пандас from datetime import datetime as dt # импортируем модуль работы с датами Ndays=2000 #('stock','shares',57,'LKOH') # ('stock','bonds',58,'SU26220RMFS2') #('futures','forts',45, 'SiH9') #('currency','selt',13,'EUR_RUB__TOM') ('currency','selt',13,'USD000UTSTOM') # ('stock','shares',57,'GMKN') engine,market,boardgroup,ticker=('stock','shares',57,'GMKN') url='https://iss.moex.com/cs/' url=url+'engines/%s/markets/%s/boardgroups/%s/securities/%s.hs?s1.type=candles&interval=24&candles=%s' % (engine,market,boardgroup,ticker,Ndays) try: s = urllib.request.urlopen(url).read() except urllib.error.HTTPError as e: print('Ошибка скачивания:',e); sys.exit() dictslists=json.loads(s) #парсим текстовый документ из формата json в формат "dict&lists" listOHLC=dictslists['candles'][0]['data'] # выбираем только OHLC listV=dictslists['volumes'][0]['data']# выбираем только V dfOHLC=pd.DataFrame(listOHLC,columns=['Date','Open','High','Low','Close']) # парсим OHLC в таблицу(dataframe) пандаса dfV=pd.DataFrame(listV,columns=['Date','Volume']) # парсим V в таблицу(dataframe) пандаса if len(dfOHLC)==0: print('Нет данных'); sys.exit() dfOHLC.index=pd.to_datetime(dfOHLC['Date'],unit='ms') # кол-ку в ф-те UNIX(ms) конв-ем во внутр формат даты И ставим индексом dfV.index=pd.to_datetime(dfV['Date'],unit='ms') # кол-ку в ф-те UNIX(ms) конв-ем во внутр формат даты И ставим индексом dfOHLC=dfOHLC.drop('Date',axis=1) dfV=dfV.drop('Date',axis=1) dfOHLCV=pd.concat([dfOHLC,dfV],axis=1) # сваливаем OHLC и V в единую таблицу(dataframe) пандаса #dfOHLCV=dfOHLCV[dt(2010,1,1):dt(2018,1,1)] #раскомментировать, если нужно работать с диапазоном display(dfOHLCV[:3]) #посмотреть первые 3 значения display(dfOHLCV[-3:]) #посмотреть последние 3 значения dfOHLCV['Close'].plot(figsize =(14,6),title=ticker) # figsize=(,) это размеры по ширине и высоте dfOHLCV['Volume'].plot(secondary_y=True,kind='area'); # secondary_y=True рисовать на правой шкале
Но в любом случае — если кому то поможет, то хорошо. Спасибо.