Блог им. Ho_Chu

где можно скачать котировки фьючерсов, кроме Финама?

    • 03 октября 2024, 18:42
    • |
    • Ho_Chu
  • Еще

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

Вот, например, по недавней экспирации 19.09.24… Финам склеивает фьючи в ночь с 17 на 18 сентября, т.е. в 23:49:59 выдеается фьюч 9.24, а утром 18-го в 10:00:00 выдается котировка 12.24-го...

А мне нужны разные, чтобы можно было смоделировать перезаход из уходящего фьюча в будущий.
Раньше это можно было сделать, скачав просто разные фьючи в разное время и склеив их не в ночь, а, например, в. А теперь такой возможности нет.

Можно организовать другую склейку, отличную от склейки финама… тогда тоже можно поставить последовательно 2 фьюча и в момент склейки переложиться… момент склейки мы знаем, значит можно закрыть прошлую по закрытию и открыть новую по открытию след.периода

например, склеиваем в день, предшествующий экспирации, т.е. не 19.09, не в ночь с 17 на 18.09 как это делает финам, а 18.09, например в 11:40 заканчивается 9.24, а в 11:45 начинается 12.24… дату/время склейки мы знаем, перезайти — только ночь не поспать ))

но для этого нужны котировки
а их нет ((

★3
20 комментариев
Не помню точно, но что-то вроде до 11-12гг
должно быть тут
iss.moex.com/iss/reference/
https://www.moex.com/a2193
avatar
Влад Л., 

увы, я ненастоящий сварщик и не понял, где там фьючерсы ((
avatar

Ramha, 

увы, с МФД ничего не скачаешь

или что, у нас разные сайты?

 

avatar
Ho_Chu,  сам догадаешься какие цифры в строках исправить 
avatar
Ramha, 

ну скажите же ))) я весь в нетерпении, проект стоит, не хватает данных
avatar
Ho_Chu, наверно в древних только дневки или через подписку отдадут историю. Напиши им в поддержку.
avatar

Ramha, 

 

Вы на эти цифры намекаете? на даты? так тоже бесполезно, я сразу проверил ))

 

avatar

«iss.moex.com/iss/engines.xml» — список рынков

«iss.moex.com/iss/engines/stock/markets.xml» — список инструментов(фьючерсы, опционы и т.д.)

(вот для срочного ошибочка выше вышла)«iss.moex.com/iss/engines/futures/markets.xml»


это за текущий день

«iss.moex.com/iss/engines/futures/markets/forts/trades.xml»

чтобы историю качать, надо на сайте Вам смотреть(лет 10 назад отсюда качал не помню как называется и там выдаёт порциями максимум 5000 строк вроде как, надо отправлять запрос, получать данные и следующий запрос с аргументом +5000, так повторять пока не кончатся данные)

так для свечей но раньше качал тики(весь срочный рынок), не знаю сейчас осталось или нет.
iss.moex.com/iss/history/engines/futures/markets/forts/securities.xml?date=2010-11-22



avatar
__rtx, 

и что обычный крестьянин должен делать с этим счастьем?

avatar
Ho_Chu, всё что соизволит. Если имеете ввиду что нужно писать код, это да, но есть чат гпт. Ему можно написать примерно так:

Вадим вот ссылка — «iss.moex.com/iss/history/engines/futures/markets/forts/securities.xml?date=2010-11-22» напиши код на питоне чтобы он это всё превратил в текстовый/csv/или ещё какой файл.

avatar

__rtx, 

 

а превратите для примера таким образом… даже интересно стало )))
жаль, что там сразу нет кнопки «Бабло» ))

avatar
Ho_Chu, как запускать питон файл в терминале надо показывать?)
avatar
__rtx, 

увы, надо, я же написал, что я ненастоящий сварщик )))

просто приведите пример того, что получается на выходе и как Вы это получили?
avatar
Ho_Chu, сохраняете текст который я написал выше в файл с названием например iss.py открываете терминал и запускаете -->> python3 iss.py он создаст текстовый файл который можно открыть например в экселе. Эксель слишком умная программа поэтому чтобы она не форматировала время такое 19:00:00.073 в такое 19:00:00 можно переименовать файл .csv тогда по моему будет как надо.

а в файле будет примерно такое:
BOARDID TRADEDATE SECID OPEN LOW HIGH CLOSE OPENPOSITIONVALUE VALUE VOLUME OPENPOSITION SETTLEPRICE SWAPRATE WAPRICE SETTLEPRICEDAY CHANGE QTY NUMTRADES INDEX TOTAL PAGESIZE
0 RFUD 2010-11-22 BRF1_2011 85.9900 83.7100 86.8600 83.9500 2.456042e+07 1.695376e+07 646.0 940.0 83.9900 NaN 84.3900 NaN -1.142 2.0 55.0 NaN NaN NaN
1 RFUD 2010-11-22 BRG1_2011 84.6800 84.6800 85.5000 85.5000 1.680561e+06 1.857277e+05 7.0 64.0 84.4100 NaN 85.2900 NaN 0.105 1.0 4.0 NaN NaN NaN
2 RFUD 2010-11-22 BRZ0_2010 84.5800 83.6800 85.4400 83.8900 2.841285e+09 1.358865e+09 51582.0 108874.0 83.8900 NaN 84.6800 NaN -1.073 6.0 2838.0 NaN NaN NaN
3 RFUD 2010-11-22 CBX0_2010 NaN NaN NaN NaN 6.779808e+06 NaN NaN 114.0 826.0000 NaN NaN NaN NaN NaN 0.0 NaN NaN NaN
4 RFUD 2010-11-22 CBZ0_2010 900.0000 890.0000 900.0000 890.0000 1.377293e+07 1.331760e+05 2.0 208.0 890.0000 NaN 895.0000 NaN -1.874 1.0 2.0 NaN NaN NaN
5 RFUD 2010-11-22 CHH1_2011 NaN NaN NaN NaN 5.406120e+05 NaN NaN 12.0 45051.0000 NaN NaN NaN NaN NaN 0.0 NaN NaN NaN
6 RFUD 2010-11-22 CHZ0_2010 45705.0000 45117.0000 45838.0000 45117.0000 2.239608e+08 1.096730e+07 241.0 4964.0 45117.0000 NaN 45507.0000 NaN 0.741 20.0 18.0 NaN NaN NaN
7 RFUD 2010-11-22 CPX0_2010 960.0000 960.0000 967.0000 967.0000 6.169267e+06 1.315709e+06 93.0 434.0 967.0000 NaN 962.0000 NaN -0.719 2.0 19.0 NaN NaN NaN
avatar
__rtx, 

спасибо, но боюсь, что это пока сложно для такого декханина как я (((
avatar
Ho_Chu, если Вам нужен файл с данными, то это оно и есть. Скрипт скачивает в .csv файл данные берёте их и куда надо используете. Завтра посмотрю как тики качать(с параметром который указывать для получения более 5000 строк) и сюда положу. А так вообще нужно самому привыкать работать.
avatar
__rtx, 

да тики и не нужны, минуток выше крыши, даже пятиминуток
avatar
Ho_Chu, вот почти готовый код(попросил гпт написать, его надо чуть доделать)

import requests
import pandas as pd
from bs4 import BeautifulSoup

url = «iss.moex.com/iss/history/engines/futures/markets/forts/securities.xml?date=2010-11-22»

response = requests.get(url)
response.raise_for_status() # Проверяем на ошибки

soup = BeautifulSoup(response.content, 'xml')

data = []
for row in soup.find_all('row'):
row_data = {}
for key, value in row.attrs.items():
row_data[key] = value
data.append(row_data)

df = pd.DataFrame(data)

# Преобразуем столбцы в нужные типы данных
for column in ['OPEN', 'LOW', 'HIGH', 'CLOSE', 'OPENPOSITIONVALUE', 'VALUE', 'SETTLEPRICE', 'SWAPRATE', 'WAPRICE', 'SETTLEPRICEDAY', 'CHANGE']:
df[column] = pd.to_numeric(df[column], errors='coerce')
for column in ['VOLUME', 'OPENPOSITION', 'QTY', 'NUMTRADES']:
df[column] = pd.to_numeric(df[column], errors='coerce', downcast='integer')

# Сохраняем в CSV
df.to_csv('securities.csv', index=False)

# Сохраняем в текстовый файл
with open('securities.txt', 'w') as f:
f.write(df.to_string())

print(«Данные успешно сохранены в файлы 'securities.csv' и 'securities.txt'»)

avatar

теги блога Ho_Chu

....все тэги



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