Как выгрузить котировки акций в excel с финам
Если у Вас еще нет графика какой-либо ценной бумаги, то для начала в программе Downloader нужно создать базу данных, на содержимом которой будет строиться график. (Базы данных можно и не создавать. Downloader может создавать их автоматически. О том как воспользоваться этим свойством программы мы расскажем ниже, в разделе "Конвертация данных в "Metastock" ).
-
В меню программы выберите "File -> New -> Security" (или нажмите комбинацию клавиш "Ctrl+N"; или нажмите кнопку и выберите "Security");
Наберите название бумаги в поле Name.
Наберите тикер (символ) бумаги в поле Symbol (Внимание! Тикер должен совпадать с обозначением бумаги на странице нашего сайта "Экпорт данных". Для того чтобы не возникло путаницы, советуем сразу заглянуть на эту страницу, выбрать нужную бумагу и посмотреть её обозначение в поле "Имя контракта". Это обозначение и следует занести в поле "Symbol" окна, которое мы в данный момент рассматриваем. В нашем примере тикером акций обыкновенных "РАО ЕЭС России" будет "EESR.MICEX").
Выберите периодичность, которую Вы хотите наблюдать на графике, в поле Periodicity. Периодичность может быть внутридневной ("Intraday"), дневной ("Daily"), недельной ("Weekly") и месячной ("Monthly"). В случае выбора дневной периодичности, например, каждый бар (или свеча) на Вашем графике будет соответствовать одному дню. В случае выбора внутридневной периодичности Вы сможете наблюдать более подробные движения цены на бумагу внутри дня. Т.е. один бар будет соответствовать одной, или пяти и т.д минутам, в зависимости от того, какой интервал Вы выбрали.
В поле "Units" выбираем "Decimal".
В поле Optional fields оставляем отмеченным "Opening prices" и убираем галочку напротив "Open Interest".
Для внутридневного графика выбираем интервал (поле Interval).
В полях Start time и End time (они будут видны только в случае выбора внутридневного типа графика) выставляем, соответственно начало и конец торговой сессии (наш совет оставить 00:00 в обоих полях).
Нажимаем кнопку "OK".
База данных готова. Но она пока пуста. Чтобы наполнить её, нужно будет проделать ту же процедуру, которая проводится и в случае её пополнения. Перейдем к описанию этой процедуры.
Здесь все просто.
Выбираем секцию рынка
В поле "Контракт" выбираем ценную бумагу (или индекс), которая нас интересует. Можно воспользоваться функцией "Поиска контракта", нажав мышкой на соответствующей надписи. Тогда мы увидим следующее окно:
Набрав в поле "Название" часть названия нужной нам бумаги (в нашем случае "рао"; соответственно, ищем мы "РАО ЕЭС России"), и нажав кнопку "Искать", найдем все бумаги, содержащие в своем названии данное сочетание букв:
Теперь кликом мышки выбираем нужную нам бумагу и нажимаем кнопку "Выбрать" (можно также просто сделать двойной клик на нужной бумаге).
Обратите внимание, что поменялось не только содержимое поля "Контракт", но и полей "Имя выходного файла" и "Имя контракта". Содержимое этих двух полей Вы можете менять по своему усмотрению. Не забывайте одного: в поле "Имя контракта" должен быть точно такой же символ бумаги, какой у Вас был прописан при создании базы данных для этого эмитента в программе "Downloader" (в поле "Symbol").
(Примечание. Существует возможность выбрать расширение файла, с каким он будет скачан с сайта. По умолчанию выбран тип "txt". В некоторых случаях содержимое выходящего текстового файла с таким расширением может появляться непосредственно в окне вашего интернет-браузера (это зависит от настроек браузера). Для того чтобы этого не происходило, и Вам предлагалось бы сохранить файл на жесткий диск, - Вы можете либо поменять настройки браузера, либо выбрать другое расширение для файла – "csv".)
Выберите периодичность графика в поле "Периодичность".
В полях "Формат даты", "Формат времени", "Разделитель" и "Разделитель разрядов" оставьте те значения, которые там проставлены по умолчанию (за исключением случаев, когда Вы хотите использовать данные из получаемого на выходе файле не для экспорта в "Метасток", а для других целей).
В поле "Формат записи в файл" Вы можете выбрать: какие данные попадут в выходящий файл, а какие – нет. Здесь обозначения следующие:
- TICKER - символ ценной бумаги, используемый Downloader’ом;
- PER - число, обозначающее периодичность баров данных;
- DATE - дата;
- TIME - время, соответствующее строке данных;
- OPEN, HIGH, LOW, CLOSE, VOL - соответственно, цена открытия, максимальная, минимальная цены , цена закрытия и объем сделок, заключенных за данный период времени, в бумагах.
Совет: оставить вариант, выдаваемый по умолчанию, или выбрать аналогичный, но с объемом сделок (VOL).
Оставьте отмеченным квадратик напротив надписи "Добавить заголовок файла". В этом случае в текстовом файле, который мы получим, первой строкой будет написано примерно следующее (в зависимости от того что Вы выбрали в поле "Формат записи в файл"): ,,,,,,,, (Эта строка необходима для того чтобы Downloader понял какие данные в какую колонку базы данных ему нужно распределять).
Опция "Заполнять периоды без сделок" предназначена для того чтобы при построении графиков цен малоликвидных бумаг не происходили искажения в графиках. Такие искажения происходят когда не в каждом периоде, на которые разбита вся торговая сессия совершаются сделки.
Например.
Мы скачивает часовые данные по бумаге "Неликвид". Получаем вот такой график:
Теперь посмотрим как будет выглядеть график, если "пустые" периоды заполнить:
Как видим, графики различаются. А на больших промежутках времени такое различие может быть значительным.
Нажимаем кнопку "Получить" и сохраняем файл в какую-нибудь папку для временных файлов.
Повторяем действия, описанные в пп. 1-7 для всех нужных Вам бумаг.
Конвертация данных
В меню программы "Downloader" выберите "Tools -> Convert"
(или нажмите кнопку )
В появившемся окне:
-
в разделе "Source": в поле "File type" выбираем формат "ASCII Text"; нажимаем кнопку "Browse…" и находим ту папку, в которую сохранили текстовые файлы с данными для экспорта. Если этих файлов не видно (например, если Вы скачали файлы в формате "csv"), в поле "Files of type" выберите "All files (*.*)"
выбираем нужные нам файлы (удерживая клавишу "Control" на клавиатуре кликаем по очереди на каждом из них)
и нажимаем кнопку "Open". При этом мы возвращаемся в окно "Convert Securities".
в разделе "Destination": в поле "File type" выбираем "MetaStock"; нажав кнопку "Browse…" выбираем папку, в которой находятся данные для графиков MetaStock (или в которой будут созданы файлы с этими данными после конвертации). (В нашем примере мы создавали базу данных для РАО ЕЭС в папке D:\MetaStock Data\Intraday – см. Раздел I "Создание базы данных по ценной бумаге для Metastock"); нажимаем кнопку "Save", при этом снова возвращаемся в окно "Convert Securities".
Нажимаем в этом окне кнопку "Options". Попадаем в окно с названием "Conversion Options".
На вкладке "Source":
выбираем начальную и конечную даты;
"Periodicity" - выбираем "Intraday";
В поле "Minutes per bar" ставим какое-нибудь число от 0 до 60 (в нашем случае это все равно);
На вкладке "Destination":
В разделе "If file exists" ("Если файл существует"):
Выбираем "Append data to end file", если хотим чтобы данные пополнили уже существующие базы MetaStock
Например. Вы имеете график, оканчивающийся 1 сентября 2001 года. Но Вы не уверены в том что за последний месяц (с 1 августа по 1 сентября) он отражает реальное поведение ценной бумаги. В этом случае Вы скачиваете со страницы "Экспорт данных" нашего сайта данные, начинающиеся датой 1 августа и заканчивающиеся сегодняшним днем; на вкладке "Source" окна "Conversion Options" ставите в поле "Start date" - 01.08.00, в поле "Last date" - сегодняшнюю дату; на вкладке "Destination" отмечаете галочкой "Replace matching dates". Теперь старые данные за август будут уничтожены и заменены новыми. При этом Ваш график пополнится данными вплоть то последнего дня.
Если Вы хотите чтобы ВСЕ старые данные по бумаге, содержащиеся в файлах MetaStock, были уничтожены и записаны лишь новые, отметьте "Replace existing file".
Если у Вас еще нет графиков какой-либо бумаги, но Вы их хотите создать, минуя процедуру, описанную в Разделе I, - отметьте опцию "Create new files". В этом случае базы данных MetaStock по выбранным бумагам будут автоматически созданы в назначенной Вами папке.
Дальше нажимаем кнопки "ОК". И если вы все сделали правильно, то в окне, которое Вы увидите, напротив названий ценных бумаг будут проставлены галочки зеленого цвета:
Рассмотрим настройку экспорта на примере RAO EES.
Нажимаем ссылку на файл EESR под столбцом 1 мин
Cохраняем его в папку C:\Metastock Data
Разархивируем файл EESR.zip с помощью программ Winzip или Winrar
Запускаем сначала Transaq потом Metastock. При первом запуске Метатока возникнет табличка .
Нажимаем кнопку ОК. После этого выбираем папку Transaq на диске С:
В метастоке открываем график.(нажав в метастоке File ->New -> Chart) и выбрав тикер в поле Symbol
На вопрос Metastock'а о подключении папки в обновление в режиме реального времени отвечаем YES.
Теперь проверим подключен ли экспорт РАО ЕЭС в Transaq.Выбираем в Transaq'е пункт «Файл»/«Экспорт сделок рынка».
Проверяем чтобы стояла галочка «в системы теханализа» и точка на «с начала сессии». Находим строку с РАО ЕЭС и нажимаем на неё 2 раза левой кнопкой мыши.
И прописываем в поле «Список тикеров для инструмента» тикер из поля Symbol в местатоке(См. рис.7)
Затем нажимаете кнопку «сохранить» .
В таблице «Экспорт сделок рынка» (См. рис.9)нажимаете кнопки «сохранить» и затем «запустить». И нажимаем кнопку «закрыть». Возвращаемся к местатоку и наслаждаемся видом экспортируемого графика.
New -> Chart) На вопрос Metastock'а о подключении папки в обновление в режиме реального времени отвечаем YES.
Теперь проверим подключен ли экспорт РАО ЕЭС в Transaq. Выбираем в Transaq'е пункт "Файл"/"Экспорт сделок рынка". Находим строку с РАО ЕЭС и нажимаем на неё 2 раза левой кнопкой мыши.
Рассмотрим вывод данных из торговой системы Quik в систему технического анализа в реальном времени. Наиболее удобно пополнять уже существующую историю в Метастоке. Для этого понадобиться скачать исторические данные с нашего сайта
Cохраняем его в папку C:\Metastock Data
Разархивируем файл EESR.zip с помощью программ Winzip или Winrar
В итоге на диске ‘C ’ должна появиться папка C:\Metastock Data\EESR.
Далее переходим в программу Quik.
В разделе Экспорт Данных/Данные для технического анализа
Далее в разделе "Экспортируемые ценные бумаги" проверяем что в списках бумаг присутствует РАО ЕЭС с обозначением "EESR"
Обозначение экспортируемой бумаги в Квике обязательно должно совпадать с обозначением бумаги в Метастоке. Это одно из главных условий экспорта данных из торговой системы в систему технического анализа.
То обозначение, которое бумага имеет в системе тех анализа можно посмотреть при ее открытие в Метастоке.
Запускаем Метасток. Далее заходим в раздел File/Open, выбираем папку с историческими данными EESR, входим в нее . Тип открываемого файла (Files of type) должен быть Smart Charts.
В разделе "Symbol" и будет обозначение бумаги, которое должно совпадать с обозначением бумаги в Квике.
После того, когда исторические данные будут скачены, Quik настроен переходим непосредственно к эскпорту данных.
Сначала запускается торговая система Quik. Затем запускается Метасток. Далее в Метастоке открываем график, переходим в Quik в раздел Экспорт данных/Данные для технического анализа
И нажимаем кнопку "Начать вывод". После данной процедуры график в Метастоке должен обновляться в режиме реального времени.
Omega Tradestation
Перед экспортом символов желательно настроить расписание биржи которую Вы будете использовать в дальнейшем. Для этого нужно зайти в меню Tools и выбрать подменю Edit Exchange List
В открывшемся окне выбрать биржу BERSE – Berlin Stock Exchange
В открывшемся окне настроить расписание работы биржи - время и дни недели, желательно поставить галочки на всех днях недели так как возможны переносы праздников и т.п.
После чего нажать кнопку Edit Daylight Saving и настроить отклонение текущего времени на Вашем компьютере от Гринвича в минутах
Подтвердить настройки нажатием кнопок Ок.
Файлы можно взять в Интернете на сайте в разделе Экспорт данных-OMEGA.
Файлы с данными необходимо сохранить в какую-либо папку. Для этого выбрав в таблице данных по Омеге интересующую Вас бумагу и период нажать на соответствующий крестик левой клавишей мыши. В открывшемся окне нажать кнопку Save (Сохранить)
Выбрать папку в которой Вы будете хранить файлы данных и нажать кнопку Save (Сохранить)
После того как скачивание файла будет окончено закрыть окно на котором показывался индикатор закачки кнопкой Close (Закрыть)
Таким образом сохранить все интересующие бумаги по периодам.
Теперь необходимо экспортировать полученные файлы в Global Server. Для этого запустите Global Server.
Удалите все существующие бумаги (они нам не интересны и данных по ним все равно не будет): зайти в меню “Edit” и нажать “Select All”
В программе должны выделиться строчки со всеми бумагами. После того как все выделилось нажмите кнопку Delete на клавиатуре и подтвердите удаление нажав левой клавишей мыши на кнопку Yes в открывшемся диалоге.
Далее нужно зайти в меню File выбрать Import Data затем GlobalServer format
В открывшемся окне нажать кнопку Browse
затем выбрать папку в которую вы сохранили файлы с данными, выделить все данные: удерживая клавишу Control на клавиатуре нажать по каждому файлу один раз левой клавишей мыши
Нажать кнопку Open.
Далее нажать кнопку Next
в следующем окне выбрать опцию All symbols и опять нажать Next
Далее везде нажимать Next в конце экспорта нажать кнопку Finish. В появившемся диалоге нажать кнопку Yes.
В результате у Вас должны появится строки с бумагами по которым Вы сохраняли историю с сайта.
QUIK позволяет экспортировать данные из таблиц в программу MS Excel. Для вывода в Excel доступны практически все таблицы, в частности текущая таблица инструментов, таблицы заявок и таблицы сделок.
Перед тем, как начинать экспорт данных, необходимо открыть программу MS Excel и открыть в ней тот файл, в который вы собираетесь передавать данные из таблицы. Если вы создаете новый файл Excel, то предварительно его следует сохранить, но при этом он должен оставаться открытым!
Начать вывод данных из таблицы можно несколькими способами:
- Сделать активной нужную таблицу (например, кликнув на ней левой кнопкой мыши) и на панели инструментов нажать кнопку
- В разделе «Экспорт данных» главного меню выбрать пункт «вывести в Excel»
- Кликнуть на таблице правой кнопкой мыши и в контекстном меню выбрать пункт «вывести в Excel»
В результате откроется следующее диалоговое окно:
Рис.65. Окно настройки экспорта данных в Excel.
В верхней части окна указана таблица, которую вы хотите экспортировать. В нашем примере это текущая таблица параметров.
В этом окне вы должны заполнить следующие поля:
- Рабочая книга – название того файла типа *.xls, в который будут добавляться данные
- Лист – название рабочего листа в файле *.xls,
- Ряд и колонка – номер строки и номер столбца, координаты начальной ячейки для передачи данных
- выводить таблицу, начиная со строки – здесь можно установить, начиная с какого номера строки, выводить в Excel строки таблицы. Может применяться для сокращения времени повторного вывода таблиц.
- вывод после создания – если стоит этот флаг, то функция экспорта данных активизируется сразу после открытия программы QUIK
- вывод при нажатии Ctrl+Shift+L - при установленном флаге экспорт из таблицы может быть активизирован нажатием приведенной комбинации клавиш
- С заголовками строк – если стоит этот флаг, то в качестве первого столбца в Excel выводятся заголовки строк таблицы
- С заголовками столбцов – если стоит этот флаг, то в качестве первой строки в Excel выводятся заголовки столбцов таблицы
- Формальные заголовки – при установленном флаге в качестве заголовков будут выводиться служебные наименования
- выводить пустые ячейки вместо нулей – при установленном флаге ячейки, содержащие нулевые значения, будут оставаться пустыми. Этот флаг рекомендуется ставить в том случае, если вы хотите строить графики средствами MS Excel (в ином случае линии графика будет «проваливаться» в местах, где данные отсутствуют)
Теперь нажмите кнопку «Начать вывод» и данные начнут выводится в указанный рабочий лист файла MS Excel. Теперь можно закрыть окно настройки экспорта данных, в случае, если экспорт уже начат, он будет осуществляться в фоновом режиме. Чтобы остановить вывод данных, нужно нажать кнопку «Остановить вывод». Кнопка «вывести сейчас» предназначена для разового вывода данных.
Всем привет, написал макрос небольшой, который качает котировки в авто режиме и сохраняет в txt. Папку сами укажите которую нужно. Надеюсь кому-то будет полезен.
а зачем они в тхт?
В txt — универсальный мне показался. Лично я сразу все в MatLab сую, либо в Ami. На странице «настройки» выставите необходимые параметры, укажите номер рынка. Московская биржа фьючи — 14, выберите интервал. И все.
В ячейку «тикеры» вводите например: SPFB.RTS, нажимайте на синюю кнопу «определить идентификаторы», в ячеке справа где «идентификаторы» выводится цифра, в данном случае 17455, после этого жмете «экспорт»
Grossmend, возможно ли изменять «Формат записи в файл», например, «ticker, per, date, time. » и разделитель на табуляцию?
Можно чтобы и в эксель сохранял, можно даже чтобы на один лист сразу сохранял массивы, по close допустим. Возможно все, но нужно реализовывать. Вообще VBA плохо для этого предназначен. Перенесите на нормальный язык, там 10 минут работы)
sep = 1, поиграйтесь с данным параметром от 1 до 3, может еще больше
igorvbeer, как из полученного текстового файла убирать название тикера? вручную не хочу каждый раз удалять эти буквы. из-за этого названия тслаб не может распознать файл.
В одной из прошлых заметок мне нужно было скачать исторические котировки по 650 активам. Часть из них на российском рынке, часть крипта и большая часть на рынке США. Всё, что касается крипты, валют и американского рынка качал с yahoo finance. Российский рынок качал с финама. Естественно качал с помощью питона. Дальше расскажу как это можно повторить.
Yahoo finance и python
Можно качать не только дневные данные. Интервалы из документации: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo На практике данные меньше дневных сильно ограничены. Например, часовые доступны за 60 последних дней.
Перейдём к делу, как качать котировки:
import yfinance as yf
data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30»)
Как добавить интервал:
data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30», interval='1h')
Данные скачиваются в датафрейм. Датафрейм можно сохранить в csv:
Для тикеров с московской биржи нужно добавить постфикс .ME. То есть SBER и GAZP превращаются в SBER.ME и GAZP.ME Для валют тикеры выглядят вот так RUBUSD=X Для криптовалют BTC-USD
Finam и python
В отличии от яху финанс можно качать даже тиковые данные за любой срок! Правда где-то читал, что за слишком большой срок данные могут качаться несколько дней. Я пока не придумал как использовать тиковые данные.
Сам пакет не так хорошо продуман, как предыдущий. Иногда приходится поломать голову.
Как тут качать? Минимальный набор:
from finam import Exporter, Market, Timeframe
exporter = Exporter()
ticker = 'SBER'
asset = exporter.lookup(name=ticker, market=Market.SHARES)
asset_id = asset[asset['name'] == ticker].index[0]
data = exporter.download(asset_id, market=Market.SHARES)
Ищем айдишник тикера в финаме и по нему скачиваем котировки.
Вот так можно задавать другие параметры:
data = exporter.download(asset_id, market=Market.SHARES, start_date=datetime.date(2017, 1, 1), end_date=datetime.date(2018, 1, 1), timeframe=Timeframe.DAILY)
Особенности finam-export
Иногда в строчке asset = exporter.lookup(name=ticker, market=Market.SHARES) нужно name заменить на code, будет вот так asset = exporter.lookup(code=ticker, market=Market.SHARES) Хрен его знает что от этого меняется, но иногда работает так иногда так.
В константах может не быть рынка, который вам нужен. Например для биткоина айдишник рынка 520. Его нет в константах. Я пробовал его добавлять руками, но котировки всё равно не качались. Если знаете как скачать, напишите.
Если качать много тикеров, то нужно задавать задержку между заросами в одном тикере и между тикерами, инче будет 403 ошибка. Я прописывал через рандом в запросе: data = exporter.download(asset_id, market=Market.SHARES, start_date=datetime.date(2017, 1, 1), end_date=datetime.date(2018, 1, 1), timeframe=Timeframe.DAILY, delay=random.randint(3,5)) И в цикле: time.sleep(random.randint(3,5))
Как скорость?
Да в целом норм. Дневные данные по 650 тикерам с января 2007 года вчера скачались примерно за час.
ОТКРЫТО РАСПРОСТРАНЯЕМАЯ И БЕСПЛАТНАЯ программа для автоматического скачивания исторических данных и их динамической догрузки в текстовом формате:
Поддерживаемые источники:
Форматы конвертации:
Текстовый формат: .txt
Очень удобная в обращении, легко настраивается.
Запускаете файл Программы:
Далее, чтобы скачать котировки по нужному вам инструменту, нажимаете в окне программы кнопку «Добавить»
В появившемся окне в разделе рынок — выбираете из какого раздела нужен инструмент:
Далее выбираем Инструмент, Таймфрейм, С какой даты по какую надо вам скачать. А также Ставим галочку По открытию, если данные для программы TSLab, не ставим галочку, если для Wealth-Lab.
Обновление всех инструментов раз в 5 минут.
Программа смотрит последнее время в файле и обновляет только оставшийся период. Также обновляет 2 последних строчки.
Данные скачиваются в таком формате:
Автору «Андрею Спиридонову» передаем благодарность за проделанную работу!
СКИДКИ
Готовые торговые роботы
© 2022 Школа по созданию торговых роботов · Обучение и готовые роботы для TSLab, QUIK, МТ5, Binance, OKEx, BitMex
Читайте также: