Rateflow

О проекте

Что показывает Rateflow, откуда берёт данные и как считает точность прогнозов

Что это

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

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

Откуда данные

ИсточникСайтЧто берёмГлубина истории
Банк России cbr.ru Официальный курс рубля — им же проверяем, сбылись ли прогнозы с 1999 года
open.er-api.com open.er-api.com Международная сводка курсов на сегодня только текущий день
Currency API github.com/fawazahmed0 Ещё одна международная сводка, умеет отдавать курс на выбранную дату последние два года
АПЭКОН apecon.ru Котировка на сегодня и прогноз по месяцам вперёд прогноз вперёд, без архива

У источников разная глубина истории — это нормально и так и задумано. Банк России хранит архив за десятилетия, международные сводки живут «здесь и сейчас», а АПЭКОН смотрит вперёд. Вместе они дают и длинную историю, и несколько независимых мнений о сегодняшнем дне.

Как обновляется

Данные обновляются автоматически, несколько раз в сутки — вручную ничего нажимать не нужно. Источники опрашиваются по очереди, а не все разом: так мы не создаём лишнюю нагрузку на чужие сайты, которыми пользуемся бесплатно.

Каждое обращение к каждому источнику записывается в журнал: когда, к кому, сколько заняло, что ответили. Журнал открыт целиком — его видно на странице «Источники».

Если какой-то источник не отвечает, остальные всё равно отрабатывают: одна неудача не останавливает обновление. В таком случае сайт показывает последние сохранённые данные и честно пишет их дату — ничего не выдумывает и не подставляет вместо пропуска соседнее значение.

Про прогнозы

Прогнозов на сайте два. Первый — от АПЭКОН: это внешний источник, он публикует ожидаемый курс по месяцам вперёд. Второй — собственная модель Rateflow: она продолжает график на неделю вперёд, беря среднее значение курса за последние семь дней. Модель нарочно простая, она нужна как точка отсчёта: с чем-то же надо сравнивать чужие прогнозы.

Каждое обновление прогноза сохраняется отдельным снимком. Благодаря этому на странице «Прогнозы» можно проиграть историю как запись, посмотреть все версии сразу — веером — и увидеть, как менялось предсказание на одну конкретную дату по мере того, как она приближалась.

Как считается точность

Берём только те прогнозы, срок которых уже наступил: если предсказание было на 1 июня, а первое июня давно прошло, его есть с чем сравнить. Сравниваем с фактическим курсом Банка России на тот же день и смотрим, насколько разошлись цифры. Прогнозы, которым ещё предстоит сбыться, в счёт не идут.

Почему числа разбиты по горизонтам. Предсказать курс на завтра гораздо легче, чем на год вперёд, и ошибка на длинном сроке всегда будет больше — у любой модели. Поэтому результаты разложены по группам: до недели, до месяца, дальше месяца. Сравнивать имеет смысл только внутри одной группы; общая средняя ошибка «за всё сразу» смешала бы лёгкую задачу с трудной и никому ничего бы не сказала.

Чем отличается измерение у двух источников. У АПЭКОН считаются настоящие, когда-то опубликованные прогнозы — мы сохраняли их по мере появления. У собственной модели цифры получены иначе: она прогоняется по прошлым данным задним числом, день за днём, и на каждый день видит только то, что было известно к тому моменту. Это честный расчёт, но всё же пересчёт по истории, а не публичное обещание, данное заранее. Прямо сравнивать две колонки поэтому не стоит.

Важно

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

Как сделано

Это открытый учебный проект: он сделан, чтобы разобраться самому и показать другим, как устроены данные о курсах. Написан на Ruby on Rails, графики нарисованы библиотекой Chart.js.

Исходный код можно посмотреть целиком: github.com/RisaGithub/Rateflow.

Контакты

Нашли ошибку или хотите что-то предложить — напишите: rateflow.app@proton.me.