Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Роман Бунин (Лаборатория данных), Полигон для визуализации финансовых данных, CodeFest 2017

CodeFest
January 31, 2018

Роман Бунин (Лаборатория данных), Полигон для визуализации финансовых данных, CodeFest 2017

https://2017.codefest.ru/lecture/1223

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

С первых дней проекта у нас не было ТЗ и чёткого плана, наша задача — гибко реагировать на быстро меняющиеся запросы заказчика, тестировать гипотезы и встраивать их в созданный ранее интерфейс.

Наш проект — это полигон для испытания новых подходов к оценке инвестиций и новых форматов визуализации финансовых данных.

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

Я расскажу о том, как мы превращаем мощный и порой хаотичный поток гениальных идей заказчика в стройный и качественный продукт, как строим работу в команде, какие подходы и инструменты используем, а также покажу, что у нас получается.

CodeFest

January 31, 2018
Tweet

More Decks by CodeFest

Other Decks in Design

Transcript

  1. 2

  2. "isin": "XS0088543193", "data": { "principal": 1000, "coupon": 12.75, "yield": 0.0655080781,

    "price": 154.8999999578, "accruedCoupon": 6.1270833333, "accruedCouponEod": 6.1625, "accruedAmountInc": 0.3541666667, "daysSinceLastCoupon": 175, "duration": 7.5988771461, "spreadToBMK": 82.75, "spreadToUST": 426.83, "rollDown": 0.0079969778, "quoteType": "-", "turnoverLcy": 0, "turnoverUSD": null, "liquidity": "very high", "yearsToPutCallMaturity": 13.0301369863, "haircut": 0.125, "fairPrice": 164.8405308822, "repoRate": 0.021848, "dateOfPutCallMaturity": "20280624", "date": "20150617" } "isin": "XS0088543193", "data": { "timestamp": "2017-03-20T00:00:00Z", "issuerId": "152", "name": "Russia, 12.750% 24jun2028, USD", "standardName": "Russia, 2028, 12.750%, USD", "stateRegNumber": "MK-0-CM-119", "issuer": "Russia", "sector": "Sovereign", "domestic": "international", "country": "RUS", "outlook": "stable", "market": "Eurobond", "ccy": "USD", "amountOutstandingLC": 2500, "isConvertible": false, "isPerpetual": false, "isAmortizing": false, "isSubordinated": false, "isFloater": false, "floatingRateFormula": null, "conversionTerms": null, "issueDate": "19980624", "maturityDate": "20280624", "link139": "номинированные и (или) фондированные в иностранной валюте кредитные требования и требования по получению начисленных (накопленных) "linkCbondsIssue": "http://ru.cbonds.info/emissions/issue/238", "linkCbondsTS": "http://ru.cbonds.info/quotes/?reset=1&search_do=1&search_type=rangedate&trading-ground%5B0%5D=1&emitent%5B0%5D=138&emission%5B 21&dir=DESC", "securityType": null, "finalDate": null, "status": "outstanding", "accruedCouponConvention": "30E/360", } 37 21 "data": { "sp": "STABLE", "spDate": "20160916", "moodys": "NEG", "moodysDate": "20160422", "fitch": "Sta", "fitchDate": "20161014", "ratingGroup": "BBB-" } неизменных параметров Text параметр меняется каждый день 3
  3. 7

  4. 10

  5. 11

  6. 12

  7. 13

  8. 14

  9. 15

  10. 16

  11. 17

  12. 18

  13. 19

  14. 20

  15. Bond Yield Coupon rate or nominal yield Current yield Nominal

    Yield Coupon Yield to maturity Yield to call Yield to worst Price = Market value = Present Value Clean price Dirty price Fair price Fair Spread Accrued Interest Yield Curve Yield Spreads == Spread (in SkyBonds) Benchmarks Benchmark Bond Maturity Maturity date 4 раза заказчик лично обучал команду Floater Secured Bond Mortgage Bond Subordinated and Senior bonds Convertible Bond Turnover Liqudity (general) Bond liqudity Credtit rating Rating Outlook Rating Watch Watchlist Market Movers Relative change Out of range Interest Rate Risk Credit Risk Market Value = Current Investment Словарь из 72 определений Duration Macaulay Duration Modified Duration Effective Duration Key-Rate Duration Convexity Properties of Convexity Month for Recovery Return on equity =ROE (general) ROE (for bonds) Roll Down Total Return Face Value = Par Value = Principal Issue Size Amount outstanding = Total outstanding Issue date Discount = Haircut (general) Discount = Haircut (bonds) Putable/callable bonds Lombard Share Portfolio Duration Initial Yield Valuation error Сapital Requirements (N1) Risk weight Trade portfolio Investment portfolio Trade ↔ Invest = Δ SWAP income Bond Price revaluation Profit without hedge Profit with hedge SWAP revaluation Accumulated Interest FX revaluation Bond price FX revaluation Peers Демо-счета и собственные облигации 21
  16. 2396 комментариев за год ≈46 в неделю Скайп Бейскемп 21

    звонок в год обычно по 19 минут 309 замечаний за год ≈6 в неделю Юзерснэп 22
  17. 23

  18. Предача дизайна в разработку 2. Устно 3. Вовлекать в дизайн

    разработчиков 1. Спецификация 4. Устно + спецификация 5. InVision 25
  19. 28

  20. – Синхронизация базы символов — – Хранение макетов — Гугл-диск

    + Гитхаб – Порядок на странице символов — – Замена шрифтов — – Швейцарский нож — – Верстка — – Стайлгайд — brand.ai sketch-align fontily automate autolayout styleguide.sc5.io 29 . 2
  21. 30

  22. – Боевой прототип и только реальные данные – Быстрые циклы

    и живая обратная связь без метрик – Учим теорию, читаем статьи и книги, сами придумываем простые алгоритмы – Много общаемся текстом и работаем асинхронно – Разработчики тоже пишут понимание задачи – Для верстки используем Inspect mode в InVision – Делаем макеты в Sketch и используем плагины – Связали разработку и дизайн стайлгайдом Как мы делаем продукт? 31
  23. Ещё могу рассказать – Удаленная работа и наша команда –

    Как построена система обучения и развития в компании – Инструментарий руководителя проекта и метрики: Бейскемп + Трело, синхронизация и автоматизация – Разарботка: JS-фреймворки и подходы, как храним 10GB данных на клиенте – Про наш курс: меняю промокод на визитку 33