Upload
antonia-mccarthy
View
223
Download
1
Embed Size (px)
Citation preview
Introduction
>Scott Logic – Background to Project>Wealth Management Tool Overview>CRM>Portfolio Management>Yahoo Finance>Financial Concepts>Development
Scott Logic – What We Do
>Bespoke Software Development• Largely in the financial sector
>Trading Screens• Allow users to buy/sell
>Market Data• Inform users
>Research Screens• Allow users to share research (documents, models, etc.)
>Trade Processing• Process trades, manage positions, inform brokers, etc.
>…
What Does This Mean?
>Interactive UIs• Drill down, zoom, filter, sort, etc.
>Large quantities of data• Performance important: caching, responsiveness, etc.
>Robustness• Fail gracefully, alerting, logging, etc.
>Typically full slice of a system• DB -> Services -> UI
Example Architecture
Client (WPF)
Views
RPC(IIS)
Live Market Data
Analytics
Close Data
Cached Data Server (IIS)
Live Data Oracle
Background
>Financial Advisers (FA)• Manage interactions with clients (CRM)• Manage client portfolios
>Desktop Application• Tablet, Smartphone optional
>UI should be dynamic and attractive• Easy to use• Suitable for client viewing
User Story – Client Meeting
>As a FA I want to find client information by searching on name
>As a FA I want to be able to browse my clients>As a FA I want to view the history of previous meetings
with a client>As a FA I want to view the portfolio history of my client>As a FA I want to buy or sell shares identified by myself
or the client>As a FA I want to record notes of meeting outcomes
User Stories – Market Research
>As a FA I want to view the current values for a stock>As a FA I want to view the historical performance of a
stock>As a FA I want to browse stocks in a specific market>As a FA I want to view biggest risers/fallers in a market
User Stories – Calendaring
>As a FA I want to be able to view my schedule for a given day
>As a FA I want to be able to navigate to a client from a calendar appointment
Customer Relationship Management
>Client Details• Name, address, phone, NI number, …
>Add client>Remove client
• No longer associated with FA but retained by system
>Super User• Transfer client between FA• View all clients• Create FA
Portfolio Management
>The core of the system• Where value added to FA
>Data at the heart of it• Lots of it … need to manage it• Need to think about how to present it
>Financial concepts• Straightforward on the face of it• Quickly can become complex
What is a Portfolio
>A collection of assets (instruments) across different asset types• Cash – GBP, USD, EUR• Shares – aka Equities – ownership of companies• Derivatives – value derived from attributes such as interest rates
>Overall value• Based on value of assets at current time• Need to consider currency• Split of value over components
>Historical value• Based on value of assets held at time over fixed period
>Buy/Sell assets• Shares – at current price• Cash – at current exchange rate
>Need to be able to deposit/withdraw base currency
Financial Concepts – Asset Value
>Assets have a value• 1 USD = 0.6186 GBP• 1 Vodaphone share = 203p
>Value depends on whether buying or selling• Price to buy higher than price to sell • Bid – price to sell (max price buyer’s prepared to pay)• Ask – price to buy (min price seller’s prepared to accept)• Spread = Bid – Ask (= market maker’s profit)
>Values fluctuate constantly – intraday
Financial Concepts – Close Data
>Historical data – daily• Open, High, Low, Close• Volume
>Stock Splits – increase liquidity• Adjusted Close
>Problem• Feel free to ignore but …• Do need to make a decision on how to handle• Brownie points for solving
>Whatever the solution use close data for pricing
Financial Concepts - Dividends
>Dividend – cash given to holders of shares (£/share)• Distribution of profits• Can affect share price (ignore!)
>Can consider using dividends• Show history• Add payments to portfolios
Financial Concepts – Markets
>Different regions have different stock markets• E.g. London, NY, Tokyo, …
>Stock Markets have different indices• Collections of shares• E.g. FTSE 100, FTSE 500, Dow Jones, …
>Indices have components• Individual companies … i.e. shares
Yahoo Finance
>Freely available stock data• Community table (i.e. not 100% robust)
>Limit to query responses• Table dependent• Companies – 5000 max• Historical data – 364 max
>Limit to number of queries• 2000 queries per hour per IP address• Real problem … need to think about solution
Yahoo Finance – Web Page
>https://finance.yahoo.com/
Yahoo Finance – Useful Tables
>Yahoo.finance.historicaldata• Daily OHLC prices, adjusted price and volume
>Yahoo.finance.quotes• Company information
>Yahoo.finance.dividendhistory• Dividend history!
>Yahoo.finance.stocks• Company information
Yahoo Finance - YQL
>Yahoo Query Language• Very similar to SQL
select <attributes (or * for all)> from <tablename> where <conditions>
>E.g. for Apple:
select Open from yahoo.finance.historicaldata where symbol = "AAPL" and startDate = "2014-05-30" and endDate = "2014-06-15"
Yahoo Finance – Things to Think About
>Limits>Data Structure
• Not necessarily in suitable format• Queries limited based on keys
>E.g. Get every company in London• Information in DB but can’t query on exchange
>E.g. Get every company in FTSE 100• Information not on DB
Yahoo Finance – YQL Gotchas
>Response limits• May return nothing if too many• May return max number but not indication of error
>Error responses inconsistent (e.g. invalid symbol)• 0 values returned• Explicit error message
>Parameter names are case sensitive
Development Process
>Scrumbut• Course requirements• Daily Standups
>Things to keep• Self organising• Continual process improvement• Backlogs
Development Technologies
>Your choice but …• Desktop but potentially mobile• Easy deployment• Learn new things vs. Get things done
>Source control>Testing>Code Reviews>Continuous Integration
>Just a thoughthttp://www.highcharts.com/products/highstock
Managing the Process
>Need to manage backlogs etc.• LOTS of tools
>Just a suggestion: Trello• Lightweight & Free• Online• Freeform task management
>Needs to be organised into appropriate format>Doesn’t enforce process
Scott Logic Mentors – Edinburgh only
>Experienced developers• Working a day job
>Help with process/high level design• Less so with bugs and compile errors
>Help with financial concepts• To an extent• Also presentation
>Product owner• Send questions to Project Director
>Limited contact• A call per fortnight• Emails (may get no response!)
Scott Logic
>We will start looking for graduate applications soon>Also looking for interns
• Need to have completed penultimate year when doing internship
>Blogs• Examples of financial charting• What hip hop teaches us about UX• …
http://www.scottlogic.com