SlideShare a Scribd company logo
1 of 42
Getting Started with Web
Service API – Part I
Outline
 TachVault Pricing Engine
 Our SaaS platform
 Options valuation with Web GUI
TachVault Pricing Engine
 Asset Classes supported (In Free
Trial)
◦ Equity (~8000 US and Canadian stocks)
◦ Futures (COMEX/NYMEX traded)
◦ FOREX (US/Canadian)
TachVault Pricing Engine
 Option types supported (In Free Trial)
◦ Plain Vanilla (American/European)
◦ Option spreads
◦ Exotic options (Asian, Barrier, Chooser,
Look Back etc.)
TachVault Pricing Engine
 SaaS Web Service model
◦ Much cheaper than in-house development
or licensing
◦ Integration and scalability
 You can easily integrate with any in-house
modeling tools (VBA, R, Python)
 Scalable to support unlimited concurrent
requests and only limited by cloud
infrastructure
◦ Work anywhere.
TachVault Pricing Engine
 Our SaaS platform
◦ Based on RESTful web services
◦ TachVault is responsible for upgrades,
uptime and security
◦ Can be integrated from any tools and third
party software
◦ Follows simple syntax widely used by
most popular SaaS platforms
 Syntax tab documents the SaaS request syntax
Value options with Web GUI
 Target users
◦ Option traders/investors with the need for
portable option valuation application
based on *real-time market data
 * ~15 min delayed market data for equity and
FX in Free Trial
 * Futures options are based on previous day
settlement prices in Free Trial
Value options with Web GUI
 Key features
◦ Can be accessed from any computing device
connected to the Internet
◦ Provided with Catalog of option pricing
request templates
◦ Request templates can be customized,
added to user collections and accessed from
anywhere
 Ex: Call option request for Apple Inc. can be
created from equity vanilla option template
◦ Stores history of requests in local browser
storage
Value options with Web GUI
 Default Catalogs
Value options with Web GUI
 Default Catalogs
◦ Lists asset classes and option types
supported in Free Trial
◦ Lists option valuation requests for each
asset class/option type supported as
templates
◦ Click on the template request shows
possible lists of parameters and allowed
values
Value options with Web GUI
 Default Catalogs
Value options with Web GUI
 Selected request parameters (not
obvious)
◦ _rateType: Allows a user to specify preferred
“risk-free” rate used in valuation
 LIBOR or fed rate
◦ _volType: Allows a user to select the type of
volatility modeling
 Implied volatility (based on previous days historical
option prices)
 Historical volatility (GARCH)
◦ _vol: Allows user to specify a constant
volatility used in valuation (override value)
Value options with Web GUI
 Selected request parameters (not
obvious)
◦ _method: Allows a user to specify option
valuation method
 Closed analytical, Binomial or Monte-Carlo
◦ _legs: Allows a user specify legs of an option
spread
 Syntax: (leg), (leg), (leg)….
 Ex: Butterfly spread legs
(_position=long,_option=call,_strike=145,_maturity=2015/11/20),(_position=long,_option
=call,_strike=165,_maturity=2015/11/20),(_position=short,_option=call,_strike=ATM,_m
aturity=2015/11/20),(_position=short,_option=call,_strike=ATM,_maturity=2015/11/20)
Value options with Web GUI
 User collections
◦ User collections allows users to organize
and store preferred option requests
◦ User collections are stored with user
profile in the TachVault web server. Thus
can be accessed from anywhere
◦ Users can:
 Create a new collection
 Ex: Financial equities, Tech sector equities…
 Add frequently exercised option requests to
chosen collections
Value options with Web GUI
 User collections
Value options with Web GUI
 Option valuation requests
◦ Requests can be added to collections
◦ Requests can be modified and saved
◦ One can execute a request for option
valuation from any computing device on
the Internet
◦ Valuation output:
 Shown in human readable text formatted with
JSON syntax.
Value options with Web GUI
 Option valuation output:
◦ Main elements
 Message:
 outcome:
 request: { }
 response: { }
Value options with Web GUI
 Main elements: Message, Outcome
◦ Values of Message indicate whether the
request is successfully executed or not.
 Possible Values: Success/Failure
◦ Values of Outcome indicate the same
information as Message. But can be
easily compared by automated tools
 0 indicate Success and 1 indicate Failure.
Value options with Web GUI
 Main elements: Request
◦ Request block indicates the request
parameters as received by the pricing
engine
 Example:
 "request": {
 "equity symbol": "RY",
 "maturityDate": "2016-Jan-15",
 "option": "put",
 "strike": 54.2,
 "style": "american"
 },
Value options with Web GUI
 Main elements: Response
◦ Response block shows the values of response
elements such as option Greeks and option price.
 Example:
 "response": {
 "Volatility": 0.2504893407184784,
 "greeks (BS)": {
 "delta": -0.5034209714402521,
 "gamma": 0.04761497137430514,
 "theta": -3.943525425566568,
 "vega": 0.2324708078992869
 },
 "last underlying price": 55.58,
 "option price": "3.698",
 "underlying trade date": "2015-Sep-09"
 }
Value options with Web GUI
 Plain Vanilla option response
◦ Main elements.
 greeks (BS) : {delta, gamma, theta, vega}
 Greek values for the option based on Black Scholes
formula
 last underlying price:
 The price of underlying asset used in the option pricing
 option price
 The value of option
 Volatility
 Volatility for the given option maturity and strike price
 underlying trade date
 The trade date of underlying asset at the pricing point
Value options with Web GUI
 Exotic option Response
◦ Main elements.
 greeks (BS) : {delta, omega, theta, vega}
 Greek values for the option based on Black Scholes
 last underlying price:
 The price of underlying asset used in the option pricing
 option price
 The value of option
 Volatility
 Volatility for the given option maturity and strike price
 Vanilla option price
 The value of vanilla option
 underlying trade date
 The trade date of underlying asset.
Value options with Web GUI
 Option spread Response
◦ Main elements.
 Legs: [leg, leg, leg]
 Shows the option values of each leg as separate
blocks { }
 greeks (BS) : {delta, omega, theta, vega}
 Greek values for the option based on Black Scholes
 last underlying price:
 The price of underlying asset used in the option pricing
 spread price
 The value of spread
 underlying trade date
 The trade date of underlying asset.
Coming up..
 Part II of Getting Started series will
explain integration of TachVault web
services API with Excel/VBA.
Getting Started with Web
Service API – Part II
Integration of TachVault web
services API with Excel/VBA
Outline
 Excel-VBA Web Service Framework
 VBA-Web Library
 Example I: Pricing and Sensitivity
Analysis of Vanilla options
 Example II: Pricing Equity Asian
options
 Example III: Pricing Futures option
spreads
Excel-VBA Web Service
Framework
Pricing Engine
REST
Server
Market
Data feed
Option Request
Pricing
Response
Your Excel
Derivative App
TachVault Pricing
Engine
Excel-VBA Web Service
Framework
Pricing
Engine
RES
T
Serv
er
Mark
et
Data
feed
TachVault Pricing
Engine
Your
pricing
application
Web-VBA
Library
WebRequest
WebResponse
Internet
VBA-Web Library
 Open source VBA library for REST
client
 Reference: https://github.com/VBA-
tools/VBA-Web
 What tools I need to get started?
◦ You only need the VBA modules
embedded in the Option-Pricing.xlsm
Excel workbook linked as the Demo Excel
Client here.
Example I: Pricing and
Sensitivity Analysis of Vanilla
options
 Construct a VBA-Web WebClient
Public Property Get Client() As WebClient
If pClient Is Nothing Then
Set pClient = New WebClient
pClient.BaseUrl = http://cp.saas-
tachvault.com/JSON/EquityOption/Vanilla
End If
Set Client = pClient
End Property
Example I: Pricing and
Sensitivity Analysis of Vanilla
options
 Construct Request with required
parameters
Public Function PriceAPI(Req As VanillaOptionReq) As WebResponse
Dim Request As New WebRequest
Request.AddQuerystringParam "_option", Req.optionType
Request.AddQuerystringParam "_symbol", Req.symbol
Request.AddQuerystringParam "_strike", Req.strike
Dim mat As String
mat = Format(Req.maturity, "yyyy/mm/dd")
Request.AddQuerystringParam "_maturity", mat
Request.AddQuerystringParam "_ratetype", Req.rateType
Request.AddQuerystringParam "_token", Req.Token
Request.AddQuerystringParam "_style", Req.style
Request.AddQuerystringParam "_volType", Req.volType
Request.AddQuerystringParam "_vol", Req.vol
Example I: Pricing and
Sensitivity Analysis of Vanilla
options
 Send request to TachVault pricing
engine
Public Function PriceAPI(Req As VanillaOptionReq) As WebResponse
Dim Request As New WebRequest
Request.AddQuerystringParam "_option", Req.optionType
Request.AddQuerystringParam "_symbol", Req.symbol
Request.AddQuerystringParam "_strike", Req.strike
Dim mat As String
mat = Format(Req.maturity, "yyyy/mm/dd")
Request.AddQuerystringParam "_maturity", mat
Request.AddQuerystringParam "_ratetype", Req.rateType
Request.AddQuerystringParam "_token", Req.Token
Request.AddQuerystringParam "_style", Req.style
Request.AddQuerystringParam "_volType", Req.volType
Request.AddQuerystringParam "_vol", Req.vol
Set PriceAPI = Client.Execute(Request)
End Function
Example I: Pricing and
Sensitivity Analysis of Vanilla
options
 Process the response (in JSON
format)
Set Response = EquityVanilla.PriceAPI(Req)
If Response.StatusCode = WebStatusCode.Ok Then
Me.[Volatility] = Response.Data("response")("Volatility")
Me.[option_price] = Response.Data("response")("option price")
Me.[Underlying] = Response.Data("response")("last underlying
price")
Me.[OutStrike] = Req.strike
Me.[OutMaturity] = Req.maturity
Me.[Delta] = Response.Data("response")("greeks (BS)")("delta")
Me.[Gamma] = Response.Data("response")("greeks
(BS)")("gamma")
Me.[Theta] = Response.Data("response")("greeks (BS)")("theta")
Me.[Vega] = Response.Data("response")("greeks (BS)")("vega")
Me.[Message] = Response.Data("Message")
Else
Me.[Message] = "Error: " & Response.Data("Message")
Example II: Pricing Equity Asian
options
 Construct a Web client with the URL:
pClient.BaseUrl = "http://cp.saas-
tachvault.com/JSON/EquityOption/Average"
 Populate the Request with required
parameters
Public Function PriceAPI(Req As AverageOptionReq) As WebResponse
Dim Request As New WebRequest
Request.AddQuerystringParam "_option", Req.optionType
Request.AddQuerystringParam "_averageType", Req.averageType
Request.AddQuerystringParam "_symbol", Req.symbol
Request.AddQuerystringParam "_strike", Req.strike
Dim mat As String
mat = Format(Req.maturity, "yyyy/mm/dd")
Request.AddQuerystringParam "_maturity", mat
Request.AddQuerystringParam "_ratetype", Req.rateType
Request.AddQuerystringParam "_token", Req.Token
Request.AddQuerystringParam "_style", Req.style
Request.AddQuerystringParam "_volType", Req.volType
Request.AddQuerystringParam "_vol", Req.vol
Example II: Pricing Equity Asian
options
 Send request to TachVault Pricing
engine REST server
Public Function PriceAPI(Req As AverageOptionReq) As WebResponse
Dim Request As New WebRequest
Request.AddQuerystringParam "_option", Req.optionType
Request.AddQuerystringParam "_averageType", Req.averageType
Request.AddQuerystringParam "_symbol", Req.symbol
Request.AddQuerystringParam "_strike", Req.strike
Dim mat As String
mat = Format(Req.maturity, "yyyy/mm/dd")
Request.AddQuerystringParam "_maturity", mat
Request.AddQuerystringParam "_ratetype", Req.rateType
Request.AddQuerystringParam "_token", Req.Token
Request.AddQuerystringParam "_style", Req.style
Request.AddQuerystringParam "_volType", Req.volType
Request.AddQuerystringParam "_vol", Req.vol
Set PriceAPI = Client.Execute(Request)
End Function
Example II: Pricing Equity Asian
options
 Process the Response (in JSON
format)
Set Response = EquityAverage.PriceAPI(Req)
If Response.StatusCode = WebStatusCode.Ok Then
Me.[aVolatility] = Response.Data("response")("Volatility")
Me.[aPrice] = Response.Data("response")("average option price")
Me.[aUnderlying] = Response.Data("response")("last underlying
price")
Me.[aOutStrike] = Req.strike
Me.[aMessage] = Response.Data("Message")
Else
Me.[aMessage] = "Error: " & Response.Data("Message")
End If
Example III: Pricing Futures
option spread
 Construct the Web Client with the URL
for futures Option spread
 Populate the Request with required
parameters
 Send the request to TachVault pricing
engine REST server
 Process the Response as for the
Vanilla option
General Access Framework
 Construct the Web Client with the URL
specific for each option family
◦ The URL path’s indicate the type of option
family: Equity vanilla, Futures Spread,
FXBarrier, etc.
 Populate the Request with required
parameters
◦ Most of the parameters are specific to
each option family and the rest are
common such as _rateType and _volType
General Access Framework
 Send the request to TachVault pricing
engine
◦ Most of the parameters are specific to
each option family and the rest are
common such as _rateType and _volType
 Process the JSON Response
Exception Handling
 Handle Pricing engine exceptions
◦ All exceptions in pricing engine are
channeled to clients.
 REST Status Code equals Internal error
Indicate error in processing
 The “Message” response parameter indicate
the human readable error message
◦ VBA-Web module WebResponse
captures the status code and message.
 How to check?
 If Response.StatusCode = WebStatusCode.Ok Then
References
 The Excel demo workbook for pricing options can
be found here.
◦ http://tachvault.com/demo/Option-Pricing.xlsm
 The Power Point presentation can be found in
here.
◦ http://tachvault.com/demo/GettingStartedWebServiceAPI-
Part-II.pdf
Coming up..
 Part III of Getting Started series will
explain integration of TachVault web
services API with Python.

More Related Content

Similar to TachVault's SaaS Derivative Options pricing

Getting started with tach vault web service api
Getting started with tach vault web service apiGetting started with tach vault web service api
Getting started with tach vault web service apitachvault
 
Programming With Amazon, Google, And E Bay
Programming With Amazon, Google, And E BayProgramming With Amazon, Google, And E Bay
Programming With Amazon, Google, And E BayPhi Jack
 
Html5ppt
Html5pptHtml5ppt
Html5pptrecroup
 
Development In ASP.NET by Tanzim Saqib
Development In ASP.NET by Tanzim SaqibDevelopment In ASP.NET by Tanzim Saqib
Development In ASP.NET by Tanzim Saqibguestf8f959
 
Forms with html5 (1)
Forms with html5 (1)Forms with html5 (1)
Forms with html5 (1)Anada Kale
 
How to Build Dynamic Forms in Angular Directive with a Backend
How to Build Dynamic Forms in Angular Directive with a BackendHow to Build Dynamic Forms in Angular Directive with a Backend
How to Build Dynamic Forms in Angular Directive with a BackendBackand Cohen
 
API and Platform Strategies to Win in Global and Local Markets
API and Platform Strategies to Win in Global and Local MarketsAPI and Platform Strategies to Win in Global and Local Markets
API and Platform Strategies to Win in Global and Local MarketsAxway
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restoregemziebeth
 
Joget Workflow v6 Training Slides - 17 - Building Plugins
Joget Workflow v6 Training Slides - 17 - Building PluginsJoget Workflow v6 Training Slides - 17 - Building Plugins
Joget Workflow v6 Training Slides - 17 - Building PluginsJoget Workflow
 
Forms With Ajax And Advanced Plugins
Forms With Ajax And Advanced PluginsForms With Ajax And Advanced Plugins
Forms With Ajax And Advanced PluginsManuel Lemos
 
Overview of MVC Framework - by software outsourcing company india
Overview of MVC Framework - by software outsourcing company indiaOverview of MVC Framework - by software outsourcing company india
Overview of MVC Framework - by software outsourcing company indiaJignesh Aakoliya
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
20231013_274_ClubServicenow_Catalog.pdf
20231013_274_ClubServicenow_Catalog.pdf20231013_274_ClubServicenow_Catalog.pdf
20231013_274_ClubServicenow_Catalog.pdfTiago Macul
 

Similar to TachVault's SaaS Derivative Options pricing (20)

Getting started with tach vault web service api
Getting started with tach vault web service apiGetting started with tach vault web service api
Getting started with tach vault web service api
 
Programming With Amazon, Google, And E Bay
Programming With Amazon, Google, And E BayProgramming With Amazon, Google, And E Bay
Programming With Amazon, Google, And E Bay
 
Html5ppt
Html5pptHtml5ppt
Html5ppt
 
v-kreta_Overview
v-kreta_Overviewv-kreta_Overview
v-kreta_Overview
 
Development In ASP.NET by Tanzim Saqib
Development In ASP.NET by Tanzim SaqibDevelopment In ASP.NET by Tanzim Saqib
Development In ASP.NET by Tanzim Saqib
 
Html forms
Html formsHtml forms
Html forms
 
About QTP 9.2
About QTP 9.2About QTP 9.2
About QTP 9.2
 
About Qtp_1 92
About Qtp_1 92About Qtp_1 92
About Qtp_1 92
 
About Qtp 92
About Qtp 92About Qtp 92
About Qtp 92
 
Forms with html5 (1)
Forms with html5 (1)Forms with html5 (1)
Forms with html5 (1)
 
Forms with html5
Forms with html5Forms with html5
Forms with html5
 
How to Build Dynamic Forms in Angular Directive with a Backend
How to Build Dynamic Forms in Angular Directive with a BackendHow to Build Dynamic Forms in Angular Directive with a Backend
How to Build Dynamic Forms in Angular Directive with a Backend
 
API and Platform Strategies to Win in Global and Local Markets
API and Platform Strategies to Win in Global and Local MarketsAPI and Platform Strategies to Win in Global and Local Markets
API and Platform Strategies to Win in Global and Local Markets
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
 
Joget Workflow v6 Training Slides - 17 - Building Plugins
Joget Workflow v6 Training Slides - 17 - Building PluginsJoget Workflow v6 Training Slides - 17 - Building Plugins
Joget Workflow v6 Training Slides - 17 - Building Plugins
 
Rpt ppt
Rpt pptRpt ppt
Rpt ppt
 
Forms With Ajax And Advanced Plugins
Forms With Ajax And Advanced PluginsForms With Ajax And Advanced Plugins
Forms With Ajax And Advanced Plugins
 
Overview of MVC Framework - by software outsourcing company india
Overview of MVC Framework - by software outsourcing company indiaOverview of MVC Framework - by software outsourcing company india
Overview of MVC Framework - by software outsourcing company india
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
20231013_274_ClubServicenow_Catalog.pdf
20231013_274_ClubServicenow_Catalog.pdf20231013_274_ClubServicenow_Catalog.pdf
20231013_274_ClubServicenow_Catalog.pdf
 

Recently uploaded

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

TachVault's SaaS Derivative Options pricing

  • 1. Getting Started with Web Service API – Part I
  • 2. Outline  TachVault Pricing Engine  Our SaaS platform  Options valuation with Web GUI
  • 3. TachVault Pricing Engine  Asset Classes supported (In Free Trial) ◦ Equity (~8000 US and Canadian stocks) ◦ Futures (COMEX/NYMEX traded) ◦ FOREX (US/Canadian)
  • 4. TachVault Pricing Engine  Option types supported (In Free Trial) ◦ Plain Vanilla (American/European) ◦ Option spreads ◦ Exotic options (Asian, Barrier, Chooser, Look Back etc.)
  • 5. TachVault Pricing Engine  SaaS Web Service model ◦ Much cheaper than in-house development or licensing ◦ Integration and scalability  You can easily integrate with any in-house modeling tools (VBA, R, Python)  Scalable to support unlimited concurrent requests and only limited by cloud infrastructure ◦ Work anywhere.
  • 6. TachVault Pricing Engine  Our SaaS platform ◦ Based on RESTful web services ◦ TachVault is responsible for upgrades, uptime and security ◦ Can be integrated from any tools and third party software ◦ Follows simple syntax widely used by most popular SaaS platforms  Syntax tab documents the SaaS request syntax
  • 7. Value options with Web GUI  Target users ◦ Option traders/investors with the need for portable option valuation application based on *real-time market data  * ~15 min delayed market data for equity and FX in Free Trial  * Futures options are based on previous day settlement prices in Free Trial
  • 8. Value options with Web GUI  Key features ◦ Can be accessed from any computing device connected to the Internet ◦ Provided with Catalog of option pricing request templates ◦ Request templates can be customized, added to user collections and accessed from anywhere  Ex: Call option request for Apple Inc. can be created from equity vanilla option template ◦ Stores history of requests in local browser storage
  • 9. Value options with Web GUI  Default Catalogs
  • 10. Value options with Web GUI  Default Catalogs ◦ Lists asset classes and option types supported in Free Trial ◦ Lists option valuation requests for each asset class/option type supported as templates ◦ Click on the template request shows possible lists of parameters and allowed values
  • 11. Value options with Web GUI  Default Catalogs
  • 12. Value options with Web GUI  Selected request parameters (not obvious) ◦ _rateType: Allows a user to specify preferred “risk-free” rate used in valuation  LIBOR or fed rate ◦ _volType: Allows a user to select the type of volatility modeling  Implied volatility (based on previous days historical option prices)  Historical volatility (GARCH) ◦ _vol: Allows user to specify a constant volatility used in valuation (override value)
  • 13. Value options with Web GUI  Selected request parameters (not obvious) ◦ _method: Allows a user to specify option valuation method  Closed analytical, Binomial or Monte-Carlo ◦ _legs: Allows a user specify legs of an option spread  Syntax: (leg), (leg), (leg)….  Ex: Butterfly spread legs (_position=long,_option=call,_strike=145,_maturity=2015/11/20),(_position=long,_option =call,_strike=165,_maturity=2015/11/20),(_position=short,_option=call,_strike=ATM,_m aturity=2015/11/20),(_position=short,_option=call,_strike=ATM,_maturity=2015/11/20)
  • 14. Value options with Web GUI  User collections ◦ User collections allows users to organize and store preferred option requests ◦ User collections are stored with user profile in the TachVault web server. Thus can be accessed from anywhere ◦ Users can:  Create a new collection  Ex: Financial equities, Tech sector equities…  Add frequently exercised option requests to chosen collections
  • 15. Value options with Web GUI  User collections
  • 16. Value options with Web GUI  Option valuation requests ◦ Requests can be added to collections ◦ Requests can be modified and saved ◦ One can execute a request for option valuation from any computing device on the Internet ◦ Valuation output:  Shown in human readable text formatted with JSON syntax.
  • 17. Value options with Web GUI  Option valuation output: ◦ Main elements  Message:  outcome:  request: { }  response: { }
  • 18. Value options with Web GUI  Main elements: Message, Outcome ◦ Values of Message indicate whether the request is successfully executed or not.  Possible Values: Success/Failure ◦ Values of Outcome indicate the same information as Message. But can be easily compared by automated tools  0 indicate Success and 1 indicate Failure.
  • 19. Value options with Web GUI  Main elements: Request ◦ Request block indicates the request parameters as received by the pricing engine  Example:  "request": {  "equity symbol": "RY",  "maturityDate": "2016-Jan-15",  "option": "put",  "strike": 54.2,  "style": "american"  },
  • 20. Value options with Web GUI  Main elements: Response ◦ Response block shows the values of response elements such as option Greeks and option price.  Example:  "response": {  "Volatility": 0.2504893407184784,  "greeks (BS)": {  "delta": -0.5034209714402521,  "gamma": 0.04761497137430514,  "theta": -3.943525425566568,  "vega": 0.2324708078992869  },  "last underlying price": 55.58,  "option price": "3.698",  "underlying trade date": "2015-Sep-09"  }
  • 21. Value options with Web GUI  Plain Vanilla option response ◦ Main elements.  greeks (BS) : {delta, gamma, theta, vega}  Greek values for the option based on Black Scholes formula  last underlying price:  The price of underlying asset used in the option pricing  option price  The value of option  Volatility  Volatility for the given option maturity and strike price  underlying trade date  The trade date of underlying asset at the pricing point
  • 22. Value options with Web GUI  Exotic option Response ◦ Main elements.  greeks (BS) : {delta, omega, theta, vega}  Greek values for the option based on Black Scholes  last underlying price:  The price of underlying asset used in the option pricing  option price  The value of option  Volatility  Volatility for the given option maturity and strike price  Vanilla option price  The value of vanilla option  underlying trade date  The trade date of underlying asset.
  • 23. Value options with Web GUI  Option spread Response ◦ Main elements.  Legs: [leg, leg, leg]  Shows the option values of each leg as separate blocks { }  greeks (BS) : {delta, omega, theta, vega}  Greek values for the option based on Black Scholes  last underlying price:  The price of underlying asset used in the option pricing  spread price  The value of spread  underlying trade date  The trade date of underlying asset.
  • 24. Coming up..  Part II of Getting Started series will explain integration of TachVault web services API with Excel/VBA.
  • 25. Getting Started with Web Service API – Part II Integration of TachVault web services API with Excel/VBA
  • 26. Outline  Excel-VBA Web Service Framework  VBA-Web Library  Example I: Pricing and Sensitivity Analysis of Vanilla options  Example II: Pricing Equity Asian options  Example III: Pricing Futures option spreads
  • 27. Excel-VBA Web Service Framework Pricing Engine REST Server Market Data feed Option Request Pricing Response Your Excel Derivative App TachVault Pricing Engine
  • 28. Excel-VBA Web Service Framework Pricing Engine RES T Serv er Mark et Data feed TachVault Pricing Engine Your pricing application Web-VBA Library WebRequest WebResponse Internet
  • 29. VBA-Web Library  Open source VBA library for REST client  Reference: https://github.com/VBA- tools/VBA-Web  What tools I need to get started? ◦ You only need the VBA modules embedded in the Option-Pricing.xlsm Excel workbook linked as the Demo Excel Client here.
  • 30. Example I: Pricing and Sensitivity Analysis of Vanilla options  Construct a VBA-Web WebClient Public Property Get Client() As WebClient If pClient Is Nothing Then Set pClient = New WebClient pClient.BaseUrl = http://cp.saas- tachvault.com/JSON/EquityOption/Vanilla End If Set Client = pClient End Property
  • 31. Example I: Pricing and Sensitivity Analysis of Vanilla options  Construct Request with required parameters Public Function PriceAPI(Req As VanillaOptionReq) As WebResponse Dim Request As New WebRequest Request.AddQuerystringParam "_option", Req.optionType Request.AddQuerystringParam "_symbol", Req.symbol Request.AddQuerystringParam "_strike", Req.strike Dim mat As String mat = Format(Req.maturity, "yyyy/mm/dd") Request.AddQuerystringParam "_maturity", mat Request.AddQuerystringParam "_ratetype", Req.rateType Request.AddQuerystringParam "_token", Req.Token Request.AddQuerystringParam "_style", Req.style Request.AddQuerystringParam "_volType", Req.volType Request.AddQuerystringParam "_vol", Req.vol
  • 32. Example I: Pricing and Sensitivity Analysis of Vanilla options  Send request to TachVault pricing engine Public Function PriceAPI(Req As VanillaOptionReq) As WebResponse Dim Request As New WebRequest Request.AddQuerystringParam "_option", Req.optionType Request.AddQuerystringParam "_symbol", Req.symbol Request.AddQuerystringParam "_strike", Req.strike Dim mat As String mat = Format(Req.maturity, "yyyy/mm/dd") Request.AddQuerystringParam "_maturity", mat Request.AddQuerystringParam "_ratetype", Req.rateType Request.AddQuerystringParam "_token", Req.Token Request.AddQuerystringParam "_style", Req.style Request.AddQuerystringParam "_volType", Req.volType Request.AddQuerystringParam "_vol", Req.vol Set PriceAPI = Client.Execute(Request) End Function
  • 33. Example I: Pricing and Sensitivity Analysis of Vanilla options  Process the response (in JSON format) Set Response = EquityVanilla.PriceAPI(Req) If Response.StatusCode = WebStatusCode.Ok Then Me.[Volatility] = Response.Data("response")("Volatility") Me.[option_price] = Response.Data("response")("option price") Me.[Underlying] = Response.Data("response")("last underlying price") Me.[OutStrike] = Req.strike Me.[OutMaturity] = Req.maturity Me.[Delta] = Response.Data("response")("greeks (BS)")("delta") Me.[Gamma] = Response.Data("response")("greeks (BS)")("gamma") Me.[Theta] = Response.Data("response")("greeks (BS)")("theta") Me.[Vega] = Response.Data("response")("greeks (BS)")("vega") Me.[Message] = Response.Data("Message") Else Me.[Message] = "Error: " & Response.Data("Message")
  • 34. Example II: Pricing Equity Asian options  Construct a Web client with the URL: pClient.BaseUrl = "http://cp.saas- tachvault.com/JSON/EquityOption/Average"  Populate the Request with required parameters Public Function PriceAPI(Req As AverageOptionReq) As WebResponse Dim Request As New WebRequest Request.AddQuerystringParam "_option", Req.optionType Request.AddQuerystringParam "_averageType", Req.averageType Request.AddQuerystringParam "_symbol", Req.symbol Request.AddQuerystringParam "_strike", Req.strike Dim mat As String mat = Format(Req.maturity, "yyyy/mm/dd") Request.AddQuerystringParam "_maturity", mat Request.AddQuerystringParam "_ratetype", Req.rateType Request.AddQuerystringParam "_token", Req.Token Request.AddQuerystringParam "_style", Req.style Request.AddQuerystringParam "_volType", Req.volType Request.AddQuerystringParam "_vol", Req.vol
  • 35. Example II: Pricing Equity Asian options  Send request to TachVault Pricing engine REST server Public Function PriceAPI(Req As AverageOptionReq) As WebResponse Dim Request As New WebRequest Request.AddQuerystringParam "_option", Req.optionType Request.AddQuerystringParam "_averageType", Req.averageType Request.AddQuerystringParam "_symbol", Req.symbol Request.AddQuerystringParam "_strike", Req.strike Dim mat As String mat = Format(Req.maturity, "yyyy/mm/dd") Request.AddQuerystringParam "_maturity", mat Request.AddQuerystringParam "_ratetype", Req.rateType Request.AddQuerystringParam "_token", Req.Token Request.AddQuerystringParam "_style", Req.style Request.AddQuerystringParam "_volType", Req.volType Request.AddQuerystringParam "_vol", Req.vol Set PriceAPI = Client.Execute(Request) End Function
  • 36. Example II: Pricing Equity Asian options  Process the Response (in JSON format) Set Response = EquityAverage.PriceAPI(Req) If Response.StatusCode = WebStatusCode.Ok Then Me.[aVolatility] = Response.Data("response")("Volatility") Me.[aPrice] = Response.Data("response")("average option price") Me.[aUnderlying] = Response.Data("response")("last underlying price") Me.[aOutStrike] = Req.strike Me.[aMessage] = Response.Data("Message") Else Me.[aMessage] = "Error: " & Response.Data("Message") End If
  • 37. Example III: Pricing Futures option spread  Construct the Web Client with the URL for futures Option spread  Populate the Request with required parameters  Send the request to TachVault pricing engine REST server  Process the Response as for the Vanilla option
  • 38. General Access Framework  Construct the Web Client with the URL specific for each option family ◦ The URL path’s indicate the type of option family: Equity vanilla, Futures Spread, FXBarrier, etc.  Populate the Request with required parameters ◦ Most of the parameters are specific to each option family and the rest are common such as _rateType and _volType
  • 39. General Access Framework  Send the request to TachVault pricing engine ◦ Most of the parameters are specific to each option family and the rest are common such as _rateType and _volType  Process the JSON Response
  • 40. Exception Handling  Handle Pricing engine exceptions ◦ All exceptions in pricing engine are channeled to clients.  REST Status Code equals Internal error Indicate error in processing  The “Message” response parameter indicate the human readable error message ◦ VBA-Web module WebResponse captures the status code and message.  How to check?  If Response.StatusCode = WebStatusCode.Ok Then
  • 41. References  The Excel demo workbook for pricing options can be found here. ◦ http://tachvault.com/demo/Option-Pricing.xlsm  The Power Point presentation can be found in here. ◦ http://tachvault.com/demo/GettingStartedWebServiceAPI- Part-II.pdf
  • 42. Coming up..  Part III of Getting Started series will explain integration of TachVault web services API with Python.

Editor's Notes

  1. Tip: Add your own speaker notes here.
  2. Tip: Add your own speaker notes here.
  3. Tip: Add your own speaker notes here.
  4. Tip: Add your own speaker notes here.
  5. Tip: Add your own speaker notes here.
  6. Tip: Add your own speaker notes here.
  7. Tip: Add your own speaker notes here.
  8. Tip: Add your own speaker notes here.
  9. Tip: Add your own speaker notes here.
  10. Tip: Add your own speaker notes here.
  11. Tip: Add your own speaker notes here.
  12. Tip: Add your own speaker notes here.
  13. Tip: Add your own speaker notes here.
  14. Tip: Add your own speaker notes here.
  15. Tip: Add your own speaker notes here.
  16. Tip: Add your own speaker notes here.
  17. Tip: Add your own speaker notes here.
  18. Tip: Add your own speaker notes here.
  19. Tip: Add your own speaker notes here.
  20. Tip: Add your own speaker notes here.
  21. Tip: Add your own speaker notes here.
  22. Tip: Add your own speaker notes here.
  23. Tip: Add your own speaker notes here.
  24. Tip: Add your own speaker notes here.
  25. Tip: Add your own speaker notes here.
  26. Tip: Add your own speaker notes here.
  27. Tip: Add your own speaker notes here.
  28. Tip: Add your own speaker notes here.
  29. Tip: Add your own speaker notes here.
  30. Tip: Add your own speaker notes here.
  31. Tip: Add your own speaker notes here.
  32. Tip: Add your own speaker notes here.
  33. Tip: Add your own speaker notes here.
  34. Tip: Add your own speaker notes here.
  35. Tip: Add your own speaker notes here.
  36. Tip: Add your own speaker notes here.
  37. Tip: Add your own speaker notes here.
  38. Tip: Add your own speaker notes here.