Блог им. AlekseyManin

Python. Как получить дату экспирации?

Пишу запросы на MOEX ISS, а там исторические данные(с прошедшей экспирацией) можно получить только с короткими названиями тикеров фьючерсов и опционов. Может кто-то уже писал код, чтобы вытащить дату экспирации из короткого названия тикера? Поделитесь пожалуйста.

Это один из запросов на MOEX:

<code>import requests

import apimoex
import pandas as pd

# request_url = ('http://iss.moex.com/iss/history/engines/futures/markets/options/securities.json?date=2021-12-01&assetcode=RIZ1')
request_url = ('http://iss.moex.com/iss/history/engines/futures/markets/options/securities.json?date=2021-12-01&assetcode=RTS')
arguments = {'securities.columns': (["BOARDID, TRADEDATE, SECID, OPEN, LOW, HIGH, CLOSE, OPENPOSITIONVALUE, VALUE, VOLUME, OPENPOSITION, SETTLEPRICE"])}

with requests.Session() as session:
    iss = apimoex.ISSClient(session, request_url, arguments)
    data = iss.get()
    df = pd.DataFrame(data['history'])
    df.set_index('SECID', inplace=True)
    print(df.to_string(max_rows=10, max_cols=15), '\n')
    df.info()</code>
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
667 | ★3
11 комментариев
Тебе на до за границу, питонщики сайтоделатели туда уехали
avatar
Старуха шепокляк, так я сайты не делаю ))) Да и что я там забыл в заграницах ваших )))
если никто не напишет, через минут30 скину
avatar
Андрей К, вот спасибо!!!
1) Нужно получить инфу по инструменту через apimoex.find_security_description

2) Обратиться к строке LSTTRADE у полученной таблицы.

Выглядит это примерно так. Тут я обращаюсь к константному номеру строки 6, но раньше вычислял эту строку автоматически (закомментил, наверное плохо работало)




avatar
Андрей К, всё получилось! Очень круто!!!



У меня так сделано:

from urllib.request import urlopen
import json

def get_date_of_last_trade(ticker):
url_str = 'https://iss.moex.com/iss/securities/{}.json'.format(ticker)
try:
j = urlopen(url_str)
except Exception as e:
print(e)
j_obj = json.load(j)
df_j = pd.DataFrame(j_obj['description']['data'], columns = j_obj['description']['columns'])
df_j = df_j[df_j['name'] == 'LSTTRADE']['value']
i = df_j.index[0]

return df_j.at[i]

avatar
Riskplayer, спасибо за ваш вариант!!!
Вы так хорошо знаете запросы к MOEX. Может можно сформировать запрос по фьючерсу, типа RIZ1, какие опционы на него торговались?
Или придется по дате экспирации опционов подбирать?
С этим не разбирался. Вроде как ранее обсуждалось вот это:
Вопрос по ISS Moex. Данные по опционам можно ли качать через ISS? (smart-lab.ru)
avatar
Riskplayer, историю опционов можно скачать. Меня интересуют итоги торгов за день с открытым интересом. Это есть.



Читайте на SMART-LAB:
Что делать инвестору на меняющемся рынке: ставка ЦБ, дорогая нефть и риск коррекции
Разбираемся в логике ЦБ: что важно понимать о ставке? Сохранится ли общий курс на ее снижение? Оцениваем макроэкономический фон: Brent дорожает,...
Фото
📊 Три полугодия роста: как бизнес-модель МГКЛ превращает масштаб в финансовый результат
За два года МГКЛ увеличила выручку в 8,7 раза, а чистую прибыль — почти в 2,5 раза. Это результат последовательного развития бизнес-модели,...
Фото
Выпуск облигаций ПКО "Вернём" (B|ru|, 170 млн., YTM 28,71%) - 17 сентября
❗️ Информация для квалифицированных инвесторов 💼 На четверг, 17 сентября, запланировано размещение нового выпуска облигаций ПКО...
Фото
Озон Фармацевтика МСФО 6 мес. 2026 г. - выручка +12%, прибыль +90%
Озон Фармацевтика за полугодие нарастила выручку на 12% до 14,8 млрд руб.  Валовая прибыль выросла на 29% до 7,4 млрд руб. при росте...

теги блога Алексей Манин

....все тэги



UPDONW
Новый дизайн