Скачиваем котировки
Допустим, кто-то прочтя пару моих постов проникся идеями алготрейдинга, его преимуществами и решил вступить на этот путь Но с чего начать? Конечно, с исторических котировок — без них никакого анализа не выйдет. Можно, например, зайти на сайт брокера, вбить названия акций и, кликая пару тысяч раз на «скачать, собрать данные вручную. Но мы же с вами уважающие себя алготрейдеры, верно? Нам подавай автоматизацию (Ещё есть вариант порыскать по интернету и скачать уже готовые данные. Но мы простых путей не ищем). К тому же, настоящий охотник одним выстрелом бьёт сразу трёх зайцев. Так что давайте совместим приятное с полезным: автоматизируем процесс с помощью Python (заодно освоим циклы), разберёмся с парсингом сайтов (информации там море — надо уметь её добывать) и получим готовые котировки.
Как это работает?
Чтобы получить готовый файл нам нужно составить соответствующую гиперссылку. Например, вот такая громадина:
http://export.finam.ru/GAZP_20240101_20240321.csv?market=0&em=16842&code=GAZP&apply=0&df=1&mf=0&yf=2024&from=2024-01-01&dt=21&mt=2&yt=2024&to=2024-03-21&p=4&f=GAZP_20240101_20240321&e=.csv&cn=GAZP&dtf=1&tmf=1&MSOR=1&mstime=on&mstimever=1&sep=1&sep2=1&datf=1&at=1
Вставьте её в браузер, и вуаля — у вас 10-минутные котировки Газпрома с 1 января по 21 марта 2024 года. Каждая цифра и буква в этой гиперссылке что-то означает (Интервал, период, какие столбцы тид итп), но это мелочи, главная сложность откуда достать 16842 , ведь она уникальна для каждой акции. Как её найти? Идём на
https://www.finam.ru/quote/moex/gazp/export/, вбиваем тикер, жмём F12 (инструменты разработчика) и ищем "quoteId": 16842. Это ID для Газпрома. Повторяем для других бумаг. Но благо, добрые люди уже собрали списки таких ID и самостоятельно мучиться с этим не нужно.
Автоматизация на Python
А теперь чтобы не вставлять многочисленные гиперссылки в окошко браузера вручную, приспособим для этого Python. Ещё одно небольшое препятствие - брокеры не любят раздавать котировки большими кусками. Хотите 10-минутки? Тогда берите не больше трёх месяцев за раз. Но ничего страшного, используем двойной цикл:
• Первый цикл — пробегаемся по списку акций.
• Второй — шагаем по времени, собирая данные за три месяца.
А чтобы брокер не заподозрил в нас бота, добавим time.sleep() — маленькие паузы между запросами. И вот котировки у нас в кармане!
Что мы получили?
1. Готовые данные — котировки аккуратно лежат в файлах.
2. Навык автоматизации — циклы в Python теперь наш лучший друг.
3. Азы парсинга — сайты больше не загадка, а источник данных.
И это уже достаточно чтобы приступить к самому интересному - попробовать что-то вытащить из наших данных.
To be continued…
#алгоритмическая_торговля #исторические_котировки #получение_информации