HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
JustinSun

НОВОСТИ Пишем генератор рандомных акций Мосбиржи на JavaScript

BDFpromo
Оффлайн

BDFpromo

.
.
Регистрация
23.09.18
Сообщения
12.347
Реакции
176
Репутация
0
Идея появилась, после того как случайно увидел , где автор bash скриптом скачивает с FTP сервера сводный список американских бумаг и трансформирует его в JSON, состоящий из одних тикеров, а затем при помощи фреймворка bootstrap и чистого JavaScript выводит на экран рандомный биржевой тикер, одновременно давая ссылку на популярный ресурс Yahoo! Finance.


«Магия» платформы CodePen для Московской биржи

Код был адаптирован для российских реалий и помимо получения списка бумаг с Мосбиржи был сделан расчет доходности за последние n лет.
Дополнительный сервер не потребовался, потому что может делать выдачу сразу в формате JSON.

Что нужно для работы генератора случайных акций?


  1. Брать информацию с биржи
    //информация о торгуемых акциях на Московской бирже
    url = ' '
  2. Брать


    boardid = 'TQBR' //идентификатор режима торгов
    url = ' boardid +'/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME'
  3. Сверяться со
  4. Узнавать

    boardid = 'TQBR' //идентификатор режима торгов
    url = ' boardid +'/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOTE'
  5. Получать цену n лет назад на конкретную дату. Для этого в API Мосбиржи передаём boardid, SECID и дату, например:
    .


    boardid = 'TQBR' // идентификатор режима торгов
    SECID = 'SBER' // тикер
    date = '2015-01-10' // дата
    url = ' boardid +'/securities/'+ SECID +'.json?iss.meta=off&iss.only=history&history.columns=SECID,TRADEDATE,CLOSE&limit=1&from=' + date
  6. Сравнивать вчерашнюю цену актива и цену 5 лет назад, чтобы узнать доходность.

    curStock = 'AFKS'
    dateNow = '2020-03-06'
    datePre = '2015-03-06'
    fetch(getCost(curStock, datePre)).then(result => {
    return (result.json())
    }).then(res => {
    let costPre = res.history.data[0][2];
    return (costPre)
    }).then(costPre => {
    fetch(getCost(curStock, dateNow)).then(result => {
    return (result.json())
    }).then(res => {
    let costNow = res.history.data[0][2];
    console.log(costPre);
    console.log(costNow);
    console.log(parseInt((costNow * 100) / costPre, 10) - 100)
    })
    })

    function getCost(id, date) {
    let url = ` {id}.json?iss.meta=off&iss.only=history&history.columns=SECID,TRADEDATE,CLOSE&limit=1&from=${date}`
    return url;
    }

К коду не предъявлялось больших требований, важно было то, что он работает и выполняет свою задачу.

vmflxxzken0ojhlco0qti7bhgn8.gif

Гифка с демонстрацией работы генератора рандомных акций Мосбиржи на JavaScript

Почему-то API Мосбиржи выдает исторические данные только начиная с июня 2014 года, то есть не удается получить более ранние данные через запрос.

Полный код на и .

Итог


Генератор случайных акций с Московской биржи работает и выдает не только случайные бумаги, но и считает доходность за настраиваемый интервал времени.

Автор: .
Код: .

3 апреля 2020 г.
 
Сверху Снизу