Блог им. hate2trd

#пора_граммировать [4] тики с сайта МосБиржи, ну и минутки тоже :)

Если закинуть вот такую строчку в браузер, то получим тики по SiZ7 текущей сессии
https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json
— если добавить 
?start=0&limit=100
то начиная с первой сточки (номер ноль) получим только первые 100 сделок:
https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json?start=0&limit=100
следующие 100 сделок:
?start=100&limit=100
Минутки получить можно так:
http://iss.moex.com/iss/engines/futures/markets/forts/boards/RFUD/securities/SiZ7/candles.json?from=2017-11-08&till=2017-11-08&interval=1&start=0
Если заменить .json --> .csv, то скачивается файл:

http://iss.moex.com/iss/engines/futures/markets/forts/boards/RFUD/securities/SiZ7/candles.json?from=2017-11-08&till=2017-11-08&interval=1&start=0
Программный пример:
using System;
using System.Net;
using System.IO;

namespace GetDataSmpl
{
    class Program
    {
        static void Main(string[] args)
        {   
            string link = "https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json?start=0&limit=10";
            string dataLine; 
            int count = 0;           
            using (WebClient wc = new WebClient())
            {  
                Stream stream = wc.OpenRead(link);
                StreamReader sr = new StreamReader(stream);                
                while ((dataLine = sr.ReadLine()) != null) {
                    if (count >= 14 && count <= 23) Console.WriteLine(dataLine);
                    count +=1;
                }                        
                stream.Close();             
            }                
        }
    }
}

D:\devel\net\ReadDataSmpl>dotnet run
                [1907299081, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59750, 5, "2017-11-08 10:00:00"],
                [1907299082, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59744, 81, "2017-11-08 10:00:00"],
                [1907299083, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59742, 2, "2017-11-08 10:00:00"],
                [1907299084, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59741, 1, "2017-11-08 10:00:00"],
                [1907299085, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59740, 1, "2017-11-08 10:00:00"],
                [1907299086, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59738, 3, "2017-11-08 10:00:00"],
                [1907299087, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59737, 1, "2017-11-08 10:00:00"],
                [1907299088, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59735, 1, "2017-11-08 10:00:00"],
                [1907299089, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59735, 5, "2017-11-08 10:00:00"],
                [1907299090, "RFUD", "SiZ7", "2017-11-08", "10:00:00", 59735, 1, "2017-11-08 10:00:00"]
rtfm


#учусьучить
★15
а зачем иметь тики в секундах? не проще из терминала тики взять с мс, если денег на оплату подключения к бирже нет?
avatar

Константин

Константин, 
1. это помогалка-информашка для легкого старта, а не комплексное решение. те максимальная простота и наглядность

2. многие не используют не только мс, но и вообще минутные чарты как основные рассматривают. 

3. деньги не решают, если нет своей технологии. если она не готова. деньги вторичны в этом случае.
avatar

crazyFakir

Архив бы вытянуть за год хотя бы. В мфд месяц ограничение, в финаме требуха, а не тики. Умней был бы — раньше бы экспорт и сохранение настроил, щас жди год, пока набежит :)
avatar

PSH

PSH, 
данные стоят денег.
это везде так.
в РФ еще не так злобно :) 
avatar

crazyFakir

PSH, хм, а почему вас финамовские тики не устраивают? Я сравнивал данные с квика — вроде все корректно. Правда период брал небольшой))

Анатолий Макаров, я вот прямо сейчас открыл скачанные сегодня данные с финама по фРТС и вижу там:
1) разница в количестве дневных тиков от >300 000 до <15 000 в разные дни
2) Многочасовые лакуны (например, отсутствует вся вечерка целиком

И это за сентябрь 17 года. Глубже не стал даже время тратить

avatar

PSH

PSH, ясноо. Я давно их данными пользовался. Щас то они уже не актуальны))). Но вы молодец. В правильном направлении рассуждаете. Смотрите тики внимательнее, они дадут ответы на многие вопросы))
PSH, Требуха? Например? (ниже прочитал)
Я сохраняю в квике каждый день все сделки на срочке и валютном рынке.
avatar

mr lab

mr lab, он про сайт истории от финам-а, а не про квик
avatar

crazyFakir

Все так, все так :)

Хочется горизонтальные объемы под рукой иметь за произвольный период, не сказать, что прям панацея, но приятный бонус. Без тиковых данных их, конечно, тоже можно построить, пусть и довольно приблизительно, хотя общую картину видно худо-бедно. Но внутренний перфекционист требует точности :)

avatar

PSH

PSH, 
если ты строишь профили на неделях, то минутки скорее всего подойдут с пропорциональным разделением. сам проверь разницу.
если это вдруг принесет тебе денег — то появится чем платить за тики из архива биржи :)



avatar

crazyFakir

Лучше научите как оттуда вытащить цену последней сделки одной строкой
avatar

dimakor

dimakor, ok
avatar

crazyFakir

crazyFakir, ну в смысле чтобы в google sheets использовать, а то yahoo finance сломался :)
avatar

dimakor

dimakor, я понял.
следующий вариант с использованием Http запроса с авторизацией в максимально простом виде — в планах запостить.
вытащить цену последней сделки одной строкой
если добавишь 
&reversed=1
то последняя сделка в запросе будет всегда в 15 строке файла
...
чтобы перебрать все сделки за день проще, чем используяю потоки — это запилю, как появится время и желание.
avatar

crazyFakir

crazyFakir, мне нужно чтобы одно число возвращало — скрипты буду писать только в крайнем случае )
вот, кстати, описание интерфейсов, если не видел: iss.moex.com/iss/reference/
avatar

dimakor

dimakor, эта ссылка есть в посте.
avatar

crazyFakir

какая задержка по данным без аутентификации?
avatar

Vlad

Vlad, 15 мин
avatar

crazyFakir

При выполнении Вашего запроса на скачивание минуток за 2017-11-08
http://iss.moex.com/iss/engines/futures/markets/forts/boards/RFUD/securities/SiZ7/candles.json?from=2017-11-08&till=2017-11-08&interval=1&start=0

данные заканчиваются строкой со временем 18:24:59

[59673, 59670, 59677, 59662, 0, 1518, "2017-11-08 18:23:00", "2017-11-08 18:23:59"],
		[59671, 59663, 59676, 59661, 0, 957, "2017-11-08 18:24:00", "2017-11-08 18:24:59"]
	]
}}
Тоже самое происходит при указании других дат.

Получается что данные с Moex тоже кривые.
Видимо сессия у них заканчивается в 18:25.
avatar

_sg_

_sg_, прямее, чем на бирже ты вряд ли найдешь :)
это ограничение в 500 строк на страницу
сделай второй запрос на следующую порцию в 500 строк
iss.moex.com/iss/engines/futures/markets/forts/boards/RFUD/securities/SiZ7/candles.json?from=2017-11-08&till=2017-11-08&interval=1&start=500
avatar

crazyFakir

crazyFakir, то есть по этой технологии биржа ВСЕГДА отдает только 500 строк данных ?

А где посмотреть другие ограничения,
если они есть.
Где про них написано?
avatar

_sg_

_sg_, не биржа отдает, это просто разумный предел при запросе без параметров для одной страницы.
биржа отдает всё.
avatar

crazyFakir

_sg_, 
Где про них написано?
в посте есть все ссылки.
avatar

crazyFakir

crazyFakir, а в запросе для тиков
https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json?start=0&limit=100
можно получать данные только за текущую сессию?
или как-то можно указать другую дату?

Я попробовал в этом запросе указать параметры
from=2017-11-08&till=2017-11-08&start=0&limit=1000

Но данные возвращаются только за текущую дату 
avatar

_sg_

_sg_, только за текущую дату.
история тиков — в архиве биржи за деньги.
или у финама в нерабочее время, но там надо контролировать полноту — многие жалуются.
avatar

crazyFakir

crazyFakir, хотя 1,5-2 тыр за месяц тиков не выглядит так уж дорого, как по мне.
avatar

crazyFakir

crazyFakir, 1,5-2 тыс за месяц — только один инструмент

если нужно больше, то нужно уже 4,5 тыс платить

www.moex.com/ru/orders?historicaldata

Все сделки и все заявки — Тип А 
1 рынок (месяц / год ) – 15 000 руб. / 150 000 руб.
1 инструмент (месяц / год ) – 4 500 руб. / 45 000 руб.

Все сделки и лучшие заявки - Тип B 
1 рынок (месяц / год ) – 4 500 руб. / 45 000 руб.
1 инструмент (месяц / год ) – 1 500 руб. / 15 000 руб.

Ежедневные итоги торгов (архивы за прошлые периоды)  — Тип C 
Все рынки (месяц) – 2 700 руб.

Все цены указаны без учета НДС


И зачем платить, когда можно не платить?
avatar

_sg_

_sg_, щас я тебе один умный вещь скажу, только ты не обижайся ©
если ты не делаешь на одном, то два тебе тем более не нужно.
либо тебе не нужны тики.
имхо :)

пс: в ценовой политике биржи есть здравое зерно.
avatar

crazyFakir

_sg_, 
И зачем платить, когда можно не платить?
ну дык не плати.
я то тут причем? :) 

если есть технические вопросы -задавай,
остальное — не ко мне :) 
avatar

crazyFakir

crazyFakir, 
Спасибо за Ваши ответы.
Вы очень любезны.

avatar

_sg_


....все тэги
UPDONW