Блог им. Replikant_mih

Мож у кого есть код на Питоне как из формата "Si" получить формат "SiM2" для актуального контракта?

Привет. 

Или там просто? По идее там 4 диапазона дат (без года), смотря куда попали — такая и буква, цифра от года. Или там нюансов много?

 

Не обязательно Питон, можно любой другой или просто схема, алгоритм.

Si — пример. А так желательно для всех фьючей. Я так понимания, там есть только с экспирацией раз в месяц и раз в 3, так что это, видимо, 2 ветки и список фьючей с разбиением по веткам.

    ★2
    19 комментариев
    Качайте не si а каждый фьюч отдельно и склеивайте сами. Это проще и надежней. Особенно на питоне. 
    avatar
    SergeyJu, Да мне имя текущего актуального. Дальше за скобками уже имя как-то задействуется.
    avatar
    У меня есть функции на MQL, которые делают символы в формате XX-YY.ZZ, то есть для Открытия. Ничего сложного там нет, обычная работа с переменной String.
    Дмитрий Овчинников, черт, я вначале  даже не понял, что вопрос всего лишь об именах. Тем более, что «актуальны» сразу несколько контрактов и, если по уму, то переход с контракта на контракт тоже над кодировать в алго. 
    avatar
    SergeyJu, Ну да, под «актуальным» имею в виду «текущий», ну который самый ликвидный).
    avatar
    Replikant_mih, ну так если речь идет о ликвидности — используйте дневные обороты. 
    avatar
    SergeyJu, Ну кстати да, простой вариант, сгенерить все возможные варианты, в пределах текущего года, и видимо, пары соседних и обороты подгрузить и сравнить, действительно.
    avatar
    Дмитрий Овчинников, Да со string-то всё понятно, хочется автоматически получать имя актуального контракта. Подаешь в функцию «Si» на выход выдает имя актуального контракта, например: «SiM2». Откуда в этом имени брать часть «Si» и часть «2» понятно, а буква — там надо на срок жизни период жизни и т.д. смотреть — посложнее.
    avatar
    Replikant_mih, 
    у меня задачи этих функций немного иные, но для вашей задачи надо просто перебрать несколько контрактов, получить инфо по дате экспирации и выбрать тот, у которого она ближе всего, но не сегодня/завтра ;)

    Как вариант.

    Я вот так получаю последний день контракта.


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

    avatar
    Андрей К, Спасибо. Есть подозрение, что пока проще руками)).
    avatar
    Андрей К, а что это за платформа или как коннектиться? Я кроме сокетов и т.д. ничего не знаю
    Алик Нурилович, это питон с установленным apimoex. 
    wlm1ke.github.io/apimoex/build/html/getting_started.html

    Наша биржа распротраняет данные через сервис iss (moex iss). apimoex умеет подрубаться и качать от туда.
    avatar
    На сайте биржи есть список тикеров для конкретного фьюча с датой запуска и датой экспиры. Ближайший — это тот (из торгующихся) где дата экспиры ближе всего.

    «По идее там 4 диапазона дат (без года), смотря куда попали — такая и буква, цифра от года. Или там нюансов много?»

    Нет, даты гуляют. Для ближайшего — вариант АндреяК или календарь парсить, для склейки истории — только календарь парсить.
    avatar
    quant_trader, Понял, спасибо. В какой-то момент, бывает, понимаешь, что профит от задачи не окупит гемор при её реализации)).
    avatar
    Replikant_mih, могу скинуть код парсера календаря в текстовый файл :)
    avatar
    Календарь

    код фьюча moex_fut_id
    {'BR': '114', 'Eu': '116', 'GK': '395', 'GM': '24', 'GZ': '2', 'LK': '4', 'MX': '241', 'RI': '31', 'Si': '8', 'SR': '94'}

    date_str=datetime.date.today().strftime("%Y%m%d")
    futures_list_url='https://www.moex.com/ru/derivatives/st-selectcontract.aspx?r='+moex_fut_id+'&day1=20010101&day2='+date_str

    дальше качаем, парсим итд

    avatar
    quant_trader, спасибо.
    avatar

    теги блога Replikant_mih

    ....все тэги



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