@domestozzzzz

Как использовать fetchTickers с параметром в CCXT?

Здравствуйте. Начал изучать node.js для написания бота в телеграмм, в котором должен выводится курс криптовалют, например (BTC,ETH). Как вывести не всю информацию о курсе, а только цену, например из info:
info: {
mid: '16552.5',
bid: '16552.0',
ask: '16553.0',
last_price: '16554.0',
low: '16493.0',
high: '16797.0',
volume: '1153.23504823',
timestamp: '1672263150.0189922'
}?

Знаю что для этого нужно использовать параметр, но как я не старался параметр не работает (или может только у меня не работает). В доментации описано что нужно делать так: fetchTicker (symbol, params = {})

В чем проблема?

bot.hears('Курс валют', ctx => {
    ctx.reply('Ожидайте ⌛');
    (async function test () {
    const ccxt = require ('ccxt')
    const exchange = new ccxt.bitfinex ()

    if (exchange.has['fetchTicker']) {
    console.log (await (exchange.fetchTicker ('BTC/USD','info = {last_price}')))
    }
    }) ()
    
});
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В браузере вот, каждые 5 сек обновляется курс с одной из бирж:

Не нужно передать никаких params. Из ответа вытаскивать свойство last (не знаю, откуда взялось last_price)

Документация публичного API
Документация JS-библиотеки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Kwinston
@Kwinston
Fullstack Web3 Developer
const ccxt = require ('ccxt')
const exchange = new ccxt.bitfinex ()

Для начала вынеси строки импорта ccxt и определения биржи для работы на верхний уровень, их не нужно определять в функции ответа на сообщения, иначе это будет происходить каждый раз когда будет вызвана команда "Курс валют".

if (exchange.has['fetchTicker'])
Убери эту проверку в ccxt у биржи bitfenix есть метод fetchTicker, не нужно проверять его наличие. Этот пример просто указан в документации ибо не у всех бирж реализован такой метод.

exchange.fetchTicker ('BTC/USD','info = {last_price}')

В примере документации вторым аргументом как params передается объект, не стоит передавать в него строку. CCXT типизирована и можно залезть внутрь функции fetchTicker и посмотреть какие типы должны быть у аргументов.

Как вывести не всю информацию о курсе, а только цену, например из info:

Смотри, вот какие данные хранятся в info, просто доставай их оттуда:
info: {
  mid: '16552.5',  // средняя цена между минимальной покупке/продажи
  bid: '16552.0',  // цена моментальной продажи
  ask: '16553.0',  // цена моментальной покупки
  last_price: '16554.0',  // цена последней сделки
  low: '16493.0',  // минимальная цена за 24 часа
  high: '16797.0',  // максимальная цена за 24 часа
  volume: '1153.23504823',  // объем торгов в BTC за 24 часа
  timestamp: '1672263150.0189922'  // время запроса информации
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы