Не вдохновлено ссылками ниже, но напомнило о выкладывании в публичный доступ.
smart-lab.ru/blog/620330.php
smart-lab.ru/blog/616708.php
Всем привет!
В ходе тестов калькулятора портфелей
github.com/Oppositus/CalculatorAA
возникло понимание, что его внутренние инструменты импорта котировок уже не работают. Так давайте напишем скрипт, который будет получать их через MOEX ISS API. Вывод скрипта-CSV файл.
Репозиторий github.com/helpau/MOEX_ETFs/blob/master/main.py
Тот же код:
tickers=["FXGD","FXUS","FXIT","SBSP","FXRL","FXRB","FXRU","SBCB","SBGB","SBRB"] import requests import apimoex import pandas as pd df=pd.DataFrame() for ticker in tickers: with requests.Session() as session: data = apimoex.get_board_history(session, ticker,board="TQTF") df1 = pd.DataFrame(data) df1.set_index('TRADEDATE', inplace=True) df.info() df[ticker]=df1["CLOSE"] df.to_csv("your_table.csv",sep=";")
P.S. Касательно самого калькулятора портфелей-полученный файл необходимо дополнительно обработать, чтобы на 1 год для 1 ETF было 12 записей. Особо пытливые могут исследовать, в какой день лучше проводить ребалансировку.
Навеяло этим постом от очередного энтузиаста: https://smart-lab.ru/blog/620330.php
Коллеги! Предлагается помнить, что нас довольно много, и ответственно относиться к предоставляемым возможностям бесплатно забирать данные с бирж и добрых брокеров.
Ну вставляйте вы вызовы sleep() в циклы, это же не ХФТ у вас!
С той стороны тоже могут сидеть не вполне пряморукие товарищи, которым может быть проще прикрыть эту всю халяву, чем делать так чтобы она всегда работала, кто бы какой своей поделкой в неё не долбил. Опять же чуть что начнёте возмущаться.
И если вы не в состоянии корректно написать закачивалку данных, то может вообще не стоит заниматься алготорговлей, это же минимум в сто раз сложнее!
Всем привет!
Вдохновился данным постом ( 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)
import requests import datetime import pathlib SECIDs = ["GAZP", "BANEP", "LKOH"] DISK = "E" for SECID in SECIDs: from_date = "2020-05-04" to_date = "2005-01-03" while str(to_date) != from_date: to_date = str(to_date) to_date = to_date.split('-') a = datetime.date(int(to_date[0]), int(to_date[1]), int(to_date[2])) b = datetime.timedelta(days=140) to_date = a + b pathlib.Path("{}:/{}/{}".format(DISK, "Database_MOEX", SECID)).mkdir(parents=True, exist_ok=True) filename = SECID + "_" + str(to_date) + ".csv" with requests.get("http://iss.moex.com/iss/history/engines/stock/markets/shares/boards/tqbr/securities/{}.csv?date={}".format(SECID, to_date)) as response: with open("{}:/Database_MOEX/{}/{}".format(DISK, SECID, filename), 'wb') as f: for chunk in response.iter_content(): f.write(chunk)Для начала пройдемся по его плюсам и минусам. Самый главный минус, что этот парсер качает только определенный период, который уникален для каждой акции, судя по всему для увеличения этого периода надо кинуть бирже на лапу:), и то что информация предоставляется за день, теперь перейдем к плюсам: можно выкачивать историю за определенный период для нескольких инструментов сразу (их количество ограничивается лишь количеством инструментов на мосбиржи), есть возможность назначать диск для сохранения информации, быстрота выгрузки данных.
Размещение нового выпуска на Московской бирже проходило с 27 марта по 13 апреля. Общий объем эмиссии — 50 млн рублей (RU000A101K30).
Заявки на покупку бондов «ГрузовичкоФ-Центр» подали 19 инвесторов. Средний объем заявки составил 263 бумаги. Чаще всего инвесторы приобретали около 1000 облигаций. Самый крупный объем заявки — 9,99 млн рублей.
Всего размещено 5 тыс. облигаций номиналом 10 тыс. рублей. Ставка купона — 14% годовых на весь срок обращения, который разделен на 36 купонных периодов продолжительностью 30 дней.
На вторичных торгах 27 марта-13 апреля облигации четвертого выпуска «ГрузовичкоФ-Центр» сформировали оборот в размере 2,5 млн рублей, что эквивалентно 206 тыс. рублей в день. Котировки в течение 12 торговых дней находились в диапазоне 100,01-101% от номинала.
Стратегия сервиса «ГрузовичкоФ» заключается в активной экспансии в регионы РФ, а также за пределы страны, в первую очередь в страны СНГ (Казахстан, Белоруссия). С января компания работает в Ташкенте (Узбекистан). На очереди Кызыл, Набережные Челны, Ногинск, Великие Луки, Гатчина, Всеволожск, Лобня, Зеленоград, Климовск, Курск, Йошкар-Ола — и все это планы только на 2020 год. Таким образом, за год планируется охватить Центральный, Северо-Западный, Сибирский и Приволжский федеральные округа. Глобальная цель сервиса — занять к концу 2025 года 30% российского рынка мувинговых услуг.
Еще одна немаловажная задача — запуск мобильного приложения к середине 2020 г. На данный момент услуги грузоперевозок компании можно заказать при помощи приложения «ТаксовичкоФ».
С 1го апреля 2020 года биржа CME Group поднимает плату за свои котировки.
Теперь котировки одной биржи из состава CME Group будут стоить $10 (вместе с биржевым стаканом — Depth of Market (DOM).
Цена за Bundle (все 4 биржи) — $30.
Пересмотрите при необходимости свои подписки и отпишитесь от лишних. Сделать это можно в личном кабинете на сайте брокера.