Перейти к основному содержимому

Настройка автоматических цен в Beancount

Подключите управляемые источники цен к вашему размещённому реестру Beancount, выберите валюту оценки и разберитесь с обновлениями, ручными переопределениями и локальной совместимостью.

Используйте Live Prices, чтобы добавить автоматически обновляемые цены оценки в размещённый реестр Beancount.io. Управляемые источники предоставляют датированные директивы price для поддерживаемых криптовалют, акций, фондов и иностранных валют. Вы продолжаете записывать покупки, продажи и переводы как обычно.

Выбор источников цен

  1. Откройте выбор источника цен.
  2. Выберите валюту, в которой вы хотите оценивать свои активы.
  3. Выберите активы из быстрых ссылок или найдите по тикеру, например BTC или AAPL. Вы также можете вставить фрагмент реестра, чтобы найти его активы; фрагмент остаётся в вашем браузере.
  4. Убедитесь, что каждый тикер актива совпадает с товаром в вашем реестре. Выбор генерирует include для перечисленных пар. Неперечисленная пара может поддерживать вывод по запросу, но выбор оставляет её за пределами результата до подтверждения поддержки.
  5. Скопируйте сгенерированные include. Войдите в Beancount.io, чтобы использовать размещённый реестр и просмотреть источники, требующие аутентификации.

Выбирайте валюту оценки для своих книг, а не для языка этой страницы. Выбор валюты котировки не переименовывает товары и не изменяет ваши транзакции.

Включение источников в размещённый реестр

Вставьте сгенерированные строки в main.bean или в другой файл, который уже включён в ваш реестр. Каждая строка идентифицирует один источник цен. Например, размещённый include для биткоина в долларах США показан ниже закомментированным, чтобы этот пример оставался безопасным для загрузки в upstream Beancount:

; Hosted Beancount.io ledger: remove the leading semicolon to enable this feed.
; include "https://beancount.io/prices/BTC-USD"

Удалите ведущий ; при добавлении строки в размещённый реестр. Include с URL — это расширение Beancount.io. Обычные локальные include по-прежнему принимают имена файлов, как описано в разделе поддержка нескольких файлов.

Откройте ваш реестр как обычно. Его загрузчик преобразует управляемые источники в ценовые записи только для чтения. Он проверяет наличие новых данных при загрузке реестра после пятиминутного окна обновления. Обновление цен не перезаписывает ваши исходные файлы и не создаёт коммиты реестра. Управляемые ценовые записи не учитываются в лимите записей вашего реестра.

Чтение цен и оценок

Источник содержит датированные цены и может включать метаданные price-source, price-kind, observed-at и provisional. Проверяйте время наблюдения и вид цены при оценке котировки. Время обновления загрузчика — это не время наблюдения провайдера.

Это автоматически обновляемые цены оценки, а не потоковые торговые котировки. Отчёту нужна цена для соответствующей товарной пары на дату оценки или раньше неё. Сегодняшняя цена не может заполнить пробел в более раннем отчёте.

Цены делают возможной рыночную оценку в инструментах и отчётах, использующих директивы price. Представление счёта, показывающее себестоимость, всё равно будет показывать себестоимость; подключение источника не переключает это представление на рыночную стоимость. См. руководство по запросам, чтобы понять разницу между себестоимостью и рыночной оценкой.

Обновление цен не изменяет количества, стоимости покупки, денежные потоки, комиссии или реализованную прибыль, записанные в вашем реестре. Оно также не заполняет @ цену или {cost} транзакции. Записывайте их из самой транзакции. Оценка недвижимости, вымышленные примерные товары и активы без поддерживаемого источника по-прежнему требуют ваших собственных датированных цен.

Переопределение управляемой цены

Напишите свою собственную датированную директиву price в редактируемом файле реестра, когда вам нужна конкретная оценка. Для одной и той же даты и товарной пары ваша цена имеет приоритет над управляемым источником. Это также относится к обратной паре и не зависит от порядка include.

Ручная цена — это не постоянная блокировка: управляемая котировка на более позднюю дату всё ещё может использоваться для более поздней оценки. Сами управляемые записи доступны только для чтения. Отредактируйте свою собственную директиву price или удалите include, чтобы прекратить использование этого источника.

Использование цен с локальными инструментами

Где вы загружаете реестрКак предоставить цены
Размещённый Beancount.ioИспользуйте управляемые include с URL из средства выбора.
Совместимая версия CLI beaСледуйте инструкциям CLI по управляемым ценам для разрешения URL и экспорта локальных файлов цен.
Upstream Beancount или FavaЗагружайте локальные файлы цен; эти инструменты сами не загружают include с URL.

Для поведения CLI, зависящего от версии, используйте руководство по управляемым ценам bea. Совместимые версии предлагают bea price status, bea price refresh и bea price export --output audit. Используйте bea --offline balance для чтения только из кэша или bea --strict-prices check, чтобы отклонять устаревшие или недоступные источники. См. справочник по CLI для подробностей и альтернативного локального рабочего процесса Beanprice.

CLI загружает данные без учётных данных и отклоняет перенаправления. Источник, который перенаправляет на страницу входа размещённого сервиса, недоступен для свежего запроса CLI, даже если вы вошли через браузер. Используйте доступный поддерживаемый источник или локальные датированные цены. Более старые версии CLI могут воспринимать любой include с URL как несовпадающий шаблон файла.

Сохраняйте локальные файлы датированных цен, когда вам нужен воспроизводимый офлайн-отчёт. Один коммит реестра не фиксирует ревизию управляемого источника, использованную для прошлой оценки. Сохраняйте цены, использованные вместе с реестром и отчётом.

Для интеграций со службой цен обратитесь к справочнику по API цен. Его эндпоинты отделены от добавления include в размещённый реестр.

Устранение отсутствующей или неожиданной оценки

СимптомЧто проверить
Каталог не загружаетсяПовторите попытку в средстве выбора. Не угадывайте URL include по неподдерживаемому тикеру.
Выбранный актив не попал в скопированные includeПроверьте поддержку этого актива в выбранной валюте котировки и сопоставьте тикер из реестра.
Открытие источника перенаправляет на входВойдите, чтобы просмотреть его в размещённом рабочем процессе. CLI не отправляет эту сессию и отклоняет перенаправления.
Цены выглядят устаревшимиСравните время наблюдения с датой отчёта. Неудачное обновление может сохранить ранее проверенный кэшированный источник; кэшированные данные могут быть устаревшими.
Цена недоступнаБез проверенной кэшированной цены книги всё равно могут загрузиться, но у позиции может отсутствовать рыночная оценка. При необходимости укажите подходящую ручную цену.
Ваша ручная цена игнорируетсяПроверьте точную дату и пару. Более поздняя управляемая котировка может применяться к более позднему отчёту.
Локальный загрузчик сообщает о несовпадающем includeИспользуйте совместимую версию bea или замените include с URL на локальный файл цен.
Стоимость счёта не измениласьПроверьте, показывает ли представление себестоимость и есть ли в отчёте цены, покрывающие его дату оценки.

См. справочник по синтаксису цен для ручных директив и рабочие примеры реестров для статических воспроизводимых записей об инвестициях.

Источник: https://beancount.io/ru/docs/live-prices