Блог им. Mixashow

Как скачать много котировок акций РФ сразу.

Всем привет!

Вдохновился данным постом ( https://smart-lab.ru/blog/616708.php ) и решил немного подпилить код, пока карантин делать нечего.

Кто не знал как скачивать котировки по одной компании вручную — сайт для скачивания котировок по одному тикеру (финам):
www.finam.ru/profile/moex-akcii/gazprom/export/

Тут через питон скачиваем котировки из текстового файла, в который вносим желаемые тикеры компаний:
Как скачать много котировок акций РФ сразу.



Сайт для скачивания среды программирования Python (PyCharm), пойдет обычная версия:
www.jetbrains.com/ru-ru/pycharm/download/#section=windows

Файлы из видео, в том числе и со списком тикеров:
yadi.sk/d/R3BSbFjV3Pfydg

Код программы:

import requests
import datetime
import pathlib
import apimoex
import pandas as pd
 
board = 'TQBR'
 
with open("C:/PYEX/TICK.txt", "r") as TICKs:
    TICKs = [line.rstrip() for line in TICKs]
pathlib.Path("C:/PYEX/Database/{}".format(board)).mkdir(parents=True, exist_ok=True)
process = 0
with requests.Session() as session:
    for TICK in TICKs:
         process = process + 1
         print((process / len(TICKs)) * 100, ' %')
         data = apimoex.get_board_history(session, TICK, board=board)
         if data == []:
             continue
         df = pd.DataFrame(data)
         df = df[['TRADEDATE','CLOSE']]
         df.to_excel("C:/PYEX/Database/{}/{}.xlsx".format(board,TICK), index=False)




Не забывайте проверять пути файлов в программе и путь к файлу TICK.txt



Кому нужно подробней, смотрите видео:

 --------------------------------------------------

Кому было полезно, кликаем на кнопочку ХОРОШО и добавляем в избранное, чтобы не потерять :)

 
★36
22 комментария
Зачем это нужно когда можно все прекрасно скачивать с ФИНАМа?
avatar
Я не пью!, как с финама 200 тикеров скачать за 5 минут?
Спасибо за идею и механизм нахождения корреляционных взаимосвязей
Моя библиотечка пошла в массы.
avatar
И какой таймфрейм то качается? И с какой и по какую дату?
Или качаются все таймфреймы и за все время.
avatar
Sergeyka, качаются дневные цены закрытия за весь период обращения в указный период торгов, но можно и свои диапазоны выставить. По тайм фрейму, я понял, что есть возможность дневные, недельные, месячные цены закрытия скачивать. За экспорт функция отвечает, в нее вписывать параметры.
apimoex.get_board_history(session, TICK, board=board)
Кружок авиамоделистов, бл_ть ))
UnembossedName, Там слишком любят банить всех налево и направо. Невозможно задать вопрос по поводу данных по облигациям. Надо искать более прямой путь получения данных — с биржи напрямую.  
Как скачать много котировок
нужны данные типа B по неликвидным фьючерсам за 2015г-н.в.
Как?
P.S. Как сделать сложно и долго я знаю. Мне надо именно просто и быстро.
Дмитрий Овчинников, по идее также функцией 
data = apimoex.get_board_history(session, TICK, board=board)
Только вписать секцию с фьючами, а в файл, вместо тикеров акций поисковик для фьючей написать 

Михаил Titov, 
нет.

Я для интересующих меня облигаций сделал закачку с мосбиржи в гуглдок

docs.google.com/spreadsheets/d/1t_2w48dYnRP59OvkQ1H8mnCZWZ0DcGF8GjtBE8ZzLps/edit#gid=674522839

 

Там же все расчеты

Не удивлюсь, если Финам быстро прикроет этот источник ввиду того, что халявщиков войску прибыло. Скажите спасибо автору.
avatar
chizhan, алгоритм качает с мос.биржи, а с финама качать и так по запросу «скачать котировки» первое место финам, просто не удобно с него много скачивать руками. 
вот тут все прекрасно качается

http://stockchart.ru/ServiceNews/Details/8
avatar
StockChart.ru, а у вас есть биды аски опционов, или хотя бы заявки без сделок?
avatar
broker25, нет стакан не хранится
avatar

Не нашел в сервисе iss.moex.com/iss/reference/ информацию об амортизации облигаций хотя эти данные есть на сайте мосбиржи www.moex.com/ru/bondization/calendar

 

Не подскажите — как найти эту инфу через iss.moex.com ?

Вы не подскажете, почему ошибки выдает? Папку создал на диске С, путь правильный, библиотеки скачал. Но выдает в нижнем окне вот это: C:\Users\Pizzaboy\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/Pizzaboy/PycharmProjects/pythonProject/main.py 0.3424657534246575 % Traceback (most recent call last): File «C:/Users/Pizzaboy/PycharmProjects/pythonProject/main.py», line 22, in <module> df.to_excel(«C:/PYEX/Database/{}/{}.xlsx».format(board, TICK), index=False) File «C:\Users\Pizzaboy\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\generic.py», line 2189, in to_excel formatter.write( File «C:\Users\Pizzaboy\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\io\formats\excel.py», line 815, in write writer = ExcelWriter( # type: ignore[abstract] File «C:\Users\Pizzaboy\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\io\excel\_openpyxl.py», line 30, in _init_ from openpyxl.workbook import Workbook ModuleNotFoundError: No module named 'openpyxl' Process finished with exit code 1

теги блога Михаил Titov

....все тэги



UPDONW