Блог им. drbuzz

JS cкрипт для проверки значения котировки с API Московской биржы прямо в Браузере

Раз тут можно про скрипты и это сам Тимофей Мартынов всем подписчикам канала Smart-Lab в Telegram рассылает...

Предложу еще один скрипт который можно использовать для проверки последней цены котировки с Московской биржи прямо из любого современного браузера. 

Сам скрипт:

Объявление функции

async function moexTickerLast(ticker) {
  const json = await fetch('https://iss.moex.com/iss/engines/stock/markets/shares/securities/' + ticker + '.json').then(function(res) { return res.json()});
  return json.marketdata.data.filter(function(d) { return ['TQBR', 'TQTF'].indexOf(d[1]) !== -1; })[0][12];
}

Вызов функции

moexTickerLast('GAZP').then(console.log);

Что бы использовать в браузере нужно открыть браузерную JavaScript консоль объявить и использовать функцию там (см. скриншот):

JS cкрипт для проверки значения котировки с API Московской биржы прямо в Браузере



Скрипт можно использовать не только в браузере, но и например написать расширение для браузера или функцию для Excel в Google Docs

JS cкрипт для проверки значения котировки с API Московской биржы прямо в Браузере

Эта функция работает с богатыми данными API Московской биржи, как ими распоряжаться и какие поля данных читать можете решить сами.

Дерзайте!

★29 | ₽ 61
а как функцию moexTickerLast в гугл докс вставить?

Тимофей Мартынов, Там не так тривиально как в браузере. Путь примерно такой: Инструменты>Редактор скриптов 

Язык немного для апи excel отличается.

function moexTickerLast(ticker) {
var json = UrlFetchApp.fetch('https://iss.moex.com/iss/engines/stock/markets/shares/securities/' + ticker + '.json');
return JSON.parse(json).marketdata.data.filter(function(d) { return ['TQBR', 'TQTF'].indexOf(d[1]) !== -1; })[0][12];
}


Разница в методе UrlFetchApp.fetch 

А дальше:

habr.com/post/215843/

developers.google.com/apps-script/overview

avatar

DRBUZZ

DRBUZZ, Круто, спасибо!

Так это можно легко и быстро сделать интерактивный портфель
avatar

googlioner

DRBUZZ, я правильно понимаю, что данные всё таки он с 15 минутной задержкой берёт?
avatar

ANTI_Finsov

ANTI_Finsov, задержка присутствует 
avatar

DRBUZZ

в google-docs: инструменты -> редактор скриптов

function getPrice(ticker) {
    var response = UrlFetchApp.fetch("https://iss.moex.com/iss/engines/stock/markets/shares/securities/"+ticker+".json" );
    var w = JSON.parse(response.getContentText());
    data =w.securities.data
    for (var i = 0; i < data.length; i++) {
      if (data[i][1] == "TQBR") {
        return data[i][3]
      }
    }
  
  return 0
}

И далее используется, как обычная формула вида
=getPrice("BANEP")
avatar

Игорь Долгов

В Гугл докс можно котировки без скриптов подтягивать: 
=GOOGLEFINANCE(«AAPL»; «price»)

или для мос. биржи:
=GOOGLEFINANCE(«MCX:LKOH»; «price»)

(только кавычки другие, СЛ заменил их)

А iss.moex.com дает котировки в реальном времени или там задержка 15 сек?

avatar

Dmitryy

Dmitryy, GOOGLEFINANCE не умеет с нашими префами работать. Проверь SNGSP 

Апи биржи с задержкой, только для особых клиентов без задержки

avatar

DRBUZZ

DRBUZZ, вы правы, SNGS и не преф вообще не видит. Но думаю должен быть костыль, надо гуглить.

avatar

Dmitryy


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW