0
Solutions fromOneTick and R  Portfolio & Risk Analytics  Business Cases  Maria Belianina, Ph.D.  Director, Pre-Sales Engin...
Contents Data Management & Requirements for Portfolio & Risk Analytics R and OneTick: Addressing the challenges   What ...
Portfolio & Risk AnalyticsData Requirements & Challenges: Increasing data granularity        Increasing data volumes  D...
R AND ONETICK:ADDRESSING THE CHALLENGES
What is OneTick: Business CasesOur clients:                  Business Cases: Hedge Funds & Proprietary    Backtesting & ...
What is OneTick: Overview                                                          About data model:                      ...
What is OneTick: Client Side                                                              End Users & Client Apps:        ...
What is OneTick: GUI AnalyticsQuery Example:Bollinger BandsBuy/Sell Signals                                    A “Nested  ...
What is OneTick: Analytics + Financial Reference DataReference data can be* mixed with analytics:  Symbol Name History   ...
What is OneTick: GUI Analytics + RQueryExample:using Rfunctions                       Create running (a.k.a. sliding)    ...
System Integration: OneTick and R                 OneTick allows to:                          R allows to:If YOU    Store ...
Example 1:OPTION PRICING IN ONETICKWITH OR WITHOUT R FUNCTIONS
Example: Option Pricing in OneTick/R                           Sample Business CaseI.      Input:       a.   OneTick archi...
Example: Option Pricing in OneTick/R                           Sample Business CaseI.      Input:       a.   OneTick archi...
Example: Option Pricing in OneTick/ROneTick Prep Steps Include:1. Retrieve a list of underlying equities      (csv, ODBC, ...
OneTick Sample Query Graph Design                           Retrieve corresponding option  Retrieve equity prices       ma...
OneTick Sample Query: Calling R functions                               Bucket interval                               aggr...
R Functions in OneTick: Parameters        2 subsets of parameters that work together:OneTick aggregation                 R...
OneTick Sample Query: GUI Output                            Query parameters                 (passed from GUI or any calli...
An alternative: OneTick OPTION_PRICE functionDescription:For eachbucket, computescall/put optionprice and relatedGreeks ba...
An alternative: OneTick OPTION_PRICE functionDESIGN STEPS:• Retrieve option  info• Retrieve  underlyer PRICE• Use  OPTION_...
Example 2:- VALUE-AT-RISK IN ONETICK- RESULTS   BACK TO R
Example : Historical VAR in OneTick                         Sample Business CaseI.     Input:      a.   Equity portfolio c...
OneTick Sample Query Graph Design                                                                Prep Steps – Query 1:    ...
OneTick Sample Query Graph Design                                        Prep Steps – Query 1:                            ...
OneTick Sample Query: Nesting and Ranking         Nested Query: Use of aggregation and ranking                            ...
OneTick Sample Query Graph Output in GUI                                         Prep Steps – Query 1:                    ...
OneTick Historical VaR Results Back to Rlibrary(RODBC)                                                          Sample Cod...
OneTick Historical VaR Results Back to R…..# Open ODBC channel to connect to OneTick server[s]channel <- odbcConnect("OMD_...
Example 3:- PORTFOLIO PRICING IN ONETICK- RESULTS  BACK TO R
Portfolio Pricing in OneTick                       Sample Business CaseI.     Input:      a.   Portfolio or Portfolio of P...
Portfolio Pricing in OneTick: Sample Input#SYMBOL_NAME,WEIGHTA,400CSCO,-500GS,600IBM,-700MSFT,-900
Portfolio Pricing in OneTick: DesignOneTick portfolio related aggregation event processors:      PORTFOLIO_PRICE and MULTI...
THANK YOUInformation:info@onetick.comwww.onetick.com
Upcoming SlideShare
Loading in...5
×

OneTick and the R mathematical language, a presentation from R in Finance

1,945

Published on

A presentation on the use of OneTick and the R mathematical and analytical language. This session presents the integration of OneTick and R in three use-case scenarios

Published in: Economy & Finance
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,945
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
35
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "OneTick and the R mathematical language, a presentation from R in Finance"

  1. 1. Solutions fromOneTick and R Portfolio & Risk Analytics Business Cases Maria Belianina, Ph.D. Director, Pre-Sales Engineering Support
  2. 2. Contents Data Management & Requirements for Portfolio & Risk Analytics R and OneTick: Addressing the challenges  What is OneTick  R ↔ OneTick integration: Two available methods Examples  Option pricing with OneTick and R RQuantLib functions  OneTick Value-At-Risk calculations back to R  OneTick Portfolio Pricing back to R
  3. 3. Portfolio & Risk AnalyticsData Requirements & Challenges: Increasing data granularity  Increasing data volumes  Daily to continuous intraday  Reference data (corporate  Milli → Micro → Nano → actions, name Picoseconds… changes, continuous contracts, etc) Data cleansing challenges  Access to both High Complexity of data and (e.g., Price) and Low data consolidation (e.g., Volatility) frequency  Consolidation across product data types  Security master  Access to complex calculations maintenance  Database schema changes … vs Consolidated Risk and Portfolio Analysis
  4. 4. R AND ONETICK:ADDRESSING THE CHALLENGES
  5. 5. What is OneTick: Business CasesOur clients: Business Cases: Hedge Funds & Proprietary  Backtesting & Quantitative Trading Firms Research Large Asset Managers  High frequency trading signal generation Banks / Brokers  Pre- & Post- Trade TCA Marketplaces  Backbone for Technology & Information Charting / Time and Sales Providers  Compliance & Regulatory Reporting  Risk & Portfolio Analytics
  6. 6. What is OneTick: Overview About data model: - Time series with customizable & flexible schema for any asset type Real-Time OneTick Servers Feeds - High and Low frequency - Data collectors- Consolidated - In-memory intraday - Reference data support (corp (Reuters, Bloom actions, continuous contracts, tick database[s] berg, etc) symbology, calendars, etc.)- Exchanges - Historical archives- Custom feeds (file About analytics: based, unlimited, dist - Time series generic functions: Historical ributed) Aggregation, filtering, signal Data - Analytical Engine generation, calculated fields, etc. for - Time sensitive Joins & Merges Historical, Intraday across symbols, databases and- Ascii and CEP real-time tick types- Proprietary binary- ODBC source queries. Extendable - Finance functions (order book- 3rd party (NYSE via: snapshots and consolidation, TAQ, CME, etc) R, C++, C#, Java, Pe statistics, pricing, portfolios) rl & Python Real-time Out-of-box Batch Out-of-box or or custom API custom API
  7. 7. What is OneTick: Client Side End Users & Client Apps: OneTick GUI Real-Time OneTick Servers Design & debug Feeds - Data collectors queries, view results, tune- Consolidated performance - In-memory intraday (Reuters, Bloom tick database[s] berg, etc) OneTick API- Exchanges - Historical archives C++, C#, Java, Perl, Pyt- Custom feeds (file hon based, unlimited, dist Historical ributed) R Data - Analytical Engine for MatLab- Ascii Historical, Intraday and CEP real-time Excel- Proprietary binary- ODBC source queries. Extendable ODBC clients- 3rd party (NYSE via: TAQ, CME, etc) R, C++, C#, Java, Pe Command Line Utility rl & Python Real-time Out-of-box Batch Out-of-box or TCP/IP Real-time or custom API custom API or on-demand
  8. 8. What is OneTick: GUI AnalyticsQuery Example:Bollinger BandsBuy/Sell Signals A “Nested query” for Bollinger Bands calculations NOTE: One of the nodes can be an R Event Processor calling R functions
  9. 9. What is OneTick: Analytics + Financial Reference DataReference data can be* mixed with analytics:  Symbol Name History * Note:  Name changes  Continuous contracts Market data is stored “as is”  Symbology Mapping across databases Reference data is stored (e.g., CUSIP to SEDOL) separately and  Corporate Actions can be applied as needed  Splits, dividends, etc  Continuous Contracts  E.g. query “ES**” futures as one contract: “ES”  Currency Conversion  With monthly, daily or intraday exchange rates  Market, Exchange & Symbol Calendars
  10. 10. What is OneTick: GUI Analytics + RQueryExample:using Rfunctions  Create running (a.k.a. sliding) aggregation of 32 ticks  Call R function acf(…) for each sliding group  Pass values of MID and LAG from tick fields or query parameters  Process the results of R function output
  11. 11. System Integration: OneTick and R OneTick allows to: R allows to:If YOU Store compressed fast access data  Retrieve OneTick query outputwork in Pre-process data: in R code via ODBC/OneTick SQL:R:  Normalize and clean • Call tested OneTick query  Apply reference data • Pass parameters  Aggregate, intervalize, filter • Process results in R as usual  JOIN/MERGE trades vs order TIP: Limit amount of data books, news, weather reports, etc. processed within ODBC and R  Set query parameters aggregating & filtering data in OneTick queryIf YOU  [Above] + Call any number of  Map OneTick fields to R inputwork in OneTick or R functions • R scalar types or matricesOneTick  Call separate R functions for a  Load required R librariesGUI: bucket entry or exit events  Specify R code to apply  Run historical or CEP queries  Specify OneTick aggregation  View query results via GUI or API parameters  Map R output back to OneTick fields for further OneTick processing TIP: Take full advantage of both packages.
  12. 12. Example 1:OPTION PRICING IN ONETICKWITH OR WITHOUT R FUNCTIONS
  13. 13. Example: Option Pricing in OneTick/R Sample Business CaseI. Input: a. OneTick archive or real-time market data for American equity options and underlying equities (optional) b. Additional calculation parameters (e.g., underlyer volatility and interest rates) can be pre-calculated, pre-loaded from external sources or passed as query parametersII. OneTick Query must produce a. Option Values at a specified time interval (depends on the frequency of the available data) b. Optional: Greeks c. Optional: Apply corporate actions to the underlyers’ pricesIII. Results a. View in OneTick GUI in on-demand or continuous CEP mode b. Bring back to R on demand for plotting and further processing
  14. 14. Example: Option Pricing in OneTick/R Sample Business CaseI. Input: a. OneTick archive or real-time market data for American equity options and underlying equities (optional) b. Additional calculation parameters (e.g., underlyer volatility and interest rates) can be pre-calculated, pre-loaded from external 2 sample out-of-box solutions sources or passed as query parameters within OneTick query design:II. OneTick Query must produce a. Option Values at a specified time OneTick OPTION_PRICE 1. Using interval (depends on the frequency of the available data) function b. Optional: Greeks c. 2. Using OneTick R function to Optional: Apply corporate actions to the underlyers’ prices call RQuantLib library, functionIII. Results AmericanOption a. View in OneTick GUI in on-demand or continuous CEP mode b. Bring back to R on demand for plotting and further processing
  15. 15. Example: Option Pricing in OneTick/ROneTick Prep Steps Include:1. Retrieve a list of underlying equities (csv, ODBC, OneTick archive or via GUI, other)2. Retrieve, calculate or pass equity volatility as a parameter3. Retrieve a list of options for the above Optional: Filter by the specified maturity and other parameters4. Make sure each tick contains all the required attributes5. Call OneTick R function (a.k.a. Event Processor) 1. Initialize RQuantLib library 2. Call AmericanOption function6. Process R output
  16. 16. OneTick Sample Query Graph Design Retrieve corresponding option Retrieve equity prices master data and prices OT Archive or CEP Engine Tick Processing • JOIN equity and option data for each equity symbol Call R code with R Event Processor • to calculate each option value • for the specified bucket interval • Calculate statistics based on R_OPTION_VALUEs • In “running” mode, re-calculating on each R output tick
  17. 17. OneTick Sample Query: Calling R functions Bucket interval aggregation for passing ticks to R R call parameters: mapping fields, R code and special instructions
  18. 18. R Functions in OneTick: Parameters 2 subsets of parameters that work together:OneTick aggregation R function specificationsBUCKET_INTERVAL, UNITS and R_INITIALIZER to specify one timeoptional GROUP_BY only initial commandto aggregate ticks into buckets R_MACRO_PREFIX for namingOUTPUT_INTERVAL and UNITS INPUT, OUTPUT, R_CALCULATOR toto define frequency of output for map tick fields to R variables and specifyrunning calculations R command. Note: A combination of BUCKET_INTERVAL and INPUT can be used to pass matrices into RIS_RUNNING = true/false R_ENTERING/LEAVING_for running (a.k.a. sliding) TICK_HANDLER to call differentcalculations functions for BUCKET_INTERVAL entry and exit events in RUNNING aggregationsOther parameters for additionalflexibility with aggregation
  19. 19. OneTick Sample Query: GUI Output Query parameters (passed from GUI or any calling application): • Standard• Custom for each query View results in OneTick GUI grid, debugger, profiler or chart:
  20. 20. An alternative: OneTick OPTION_PRICE functionDescription:For eachbucket, computescall/put optionprice and relatedGreeks based on Bucket intervalthe Black-Scholes aggregation foroption pricing passing ticks to Rmodel.
  21. 21. An alternative: OneTick OPTION_PRICE functionDESIGN STEPS:• Retrieve option info• Retrieve underlyer PRICE• Use OPTION_PRICE event processor View results in OneTick GUI grid, debugger, profiler or chart:
  22. 22. Example 2:- VALUE-AT-RISK IN ONETICK- RESULTS BACK TO R
  23. 23. Example : Historical VAR in OneTick Sample Business CaseI. Input: a. Equity portfolio composition (from csv, ODBC or OneTick) b. Historical daily prices for all portfolio constituents for the specified number of days (preferably 500+)II. OneTick Query must produce For the past X days and Percent P a. Historical Value-At-Risk 1-day values b. Historical Value-At-Risk N-day valuesIII. Results Back to R on demand for plotting and further processing
  24. 24. OneTick Sample Query Graph Design Prep Steps – Query 1: • Get portfolio & calculate estimated volatility • This query is executed as an input to the main queryNotes:We’re using definition of the daily volatility described by J.C.Hall in“Options, Futures and Other Derivatives”: Daily Volatility = Standard Deviation ( Price Percentage Change in 1 Day )Using OneTick:• Price Percentage Change in 1 day: PERC_CHANGE = (CLOSE-CLOSE[-1])/CLOSE[-1] where LAST is the closing PRICE for the trading day, and [-1] refers to the previous CLOSE tick• ESTIMATED_VOLATILITY = STDDEV(PERC_CHANGE) over a period of time specified as STDDEV aggregation function bucket interval
  25. 25. OneTick Sample Query Graph Design Prep Steps – Query 1: • Get portfolio & calculate estimated volatility Query 2 For each security from the list above • Retrieve daily or high frequency data • Calculate significant number of loss scenarios • MERGE all calculated timeseries for all securities into 1 for further portfolio level calculations • Calculate and rank portfolio LOSSES across scenarios • Calculate Value-At-Risk and Expected Shortfall
  26. 26. OneTick Sample Query: Nesting and Ranking Nested Query: Use of aggregation and ranking Prep Steps – Query 1: • Get portfolio & calculate estimated volatility • Aggregate to 2 Query For each security from the list above get PORTFOLIO • Retrieve daily or high frequency data VALUE and • Calculate significant INVESTMENT number of loss scenarios • Calculate LOSS • MERGE all calculated timeseries for all securities into 1 for further portfolio level calculations ticks by • Rank LOSS …
  27. 27. OneTick Sample Query Graph Output in GUI Prep Steps – Query 1: • Get portfolio & calculate estimated volatility Query 2 For each security from the list above • Retrieve market data • Calculate $NO_OF_SCENARIOS scenarios • Can use daily or high frequency data as a start • MERGE all calculated timeseries for all securities into 1 for further portfolio level calculations • Calculate and rank portfolio LOSSES across scenarios • Calculate Value-At-Risk and Expected Shortfall • Results: Summary and Detail OneTick GUI Grid Output
  28. 28. OneTick Historical VaR Results Back to Rlibrary(RODBC) Sample Code: R 2.10.1# Define function to create# OneTick SQL string  Load RODBC libraryomdBuildSQLQuery <- function(otq, start_time, end_time, tz, ...){ an R function similar to  Createstart_time_tz <- paste(start_time, tz)end_time_tz <- paste(end_time, tz) omdBuildSQLQuery to build OneTick SQL string with parameterssql <- paste("SELECT * FROM OMD.OTQ_FILES."", otq, "" otq ", sep="")sql <- paste(sql, "WHERE ", sep="")  Connect to OneTick & pass SQLsql <- paste(sql, "(otq.TIMESTAMP>=", start_time_tz, ") ", sep="")  Get query resultssql <- paste(sql, "AND (otq.TIMESTAMP<", end_time_tz, ") ", sep="")  Process as usualparms<-list(...)for(n in attributes(parms)$names) { sql <- paste(sql, "AND (param_assign(", n, ",", parms[[n]], ")=1) ", sep="") }# Open ODBC channel to connect to OneTick server[s]channel <- odbcConnect("OMD_LOCAL_DSN")# Call OneTick query VaR_Historical_ saved in the query file var_model_running.otq:sql<-omdBuildSQLQuery("var_model_running::VaR_Historical_", "2009-01-01 09:30:00", "2011-01-01 09:30:00", "EST5EDT"); sqlresults<-sqlQuery(channel, sql); results
  29. 29. OneTick Historical VaR Results Back to R…..# Open ODBC channel to connect to OneTick server[s]channel <- odbcConnect("OMD_LOCAL_DSN")# Call OneTick query VaR_Historical_ saved in the query file var_model_running.otq:sql<-omdBuildSQLQuery("var_model_running::VaR_Historical_", "2009-01-01 09:30:00", "2011-01-01 09:30:00", "EST5EDT"); sqlresults<-sqlQuery(channel, sql); results# Plot the results:plot(results[, c("PERCENT","VAR_1_DAY")])title(main="Portfolio Historical 1 Day VaR and Expected Shortfall", col.main="blue", font.main=3)lines(results[, c("PERCENT","ES")], type="o", pch=22, lty=2, col="red")
  30. 30. Example 3:- PORTFOLIO PRICING IN ONETICK- RESULTS BACK TO R
  31. 31. Portfolio Pricing in OneTick Sample Business CaseI. Input: a. Portfolio or Portfolio of Portfolios composition source (CSV, ODBC source or OneTick database); can include weight, side and any other attributes b. Market dataII. OneTick Query must produce Portfolio Prices: a. Long, Short and Total side by side b. At a specified interval c. Optional: With corporate actions applied to prices d. Optional: In specified currencyIII. Results Back to R on demand for plotting and further processing
  32. 32. Portfolio Pricing in OneTick: Sample Input#SYMBOL_NAME,WEIGHTA,400CSCO,-500GS,600IBM,-700MSFT,-900
  33. 33. Portfolio Pricing in OneTick: DesignOneTick portfolio related aggregation event processors: PORTFOLIO_PRICE and MULTI_PORTFOLIO_PRICEOneTick Query Design Steps:1. Specify portfolio2. Retrieve prices3. Apply CORP_ACTIONS event processor (make sure the corresponding reference data is loaded)4. Use PORTFOLIO_PRICE event processor or Use COMPUTE “meta-aggregation” event processor to compute side by side: • LONG PORTFOLIO_PRICE • SHORT PORTFOLIO_PRICE • 2-SIDED PORTFOLIO_PRICE5. Bring results back to R
  34. 34. THANK YOUInformation:info@onetick.comwww.onetick.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×