Quant DSL Language Guide



Similar documents
Valuation of Razorback Executive Stock Options: A Simulation Approach

Monte Carlo Methods in Finance

Mathematical Finance

QUANTIZED INTEREST RATE AT THE MONEY FOR AMERICAN OPTIONS

Valuation of the Surrender Option in Life Insurance Policies


Pricing Barrier Option Using Finite Difference Method and MonteCarlo Simulation

Pricing and hedging American-style options: a simple simulation-based approach

Monte Carlo Estimation of Project Volatility for Real Options Analysis

A SNOWBALL CURRENCY OPTION

Generating Random Numbers Variance Reduction Quasi-Monte Carlo. Simulation Methods. Leonid Kogan. MIT, Sloan , Fall 2010

Pricing Forwards and Swaps

Sensitivity analysis of European options in jump-diffusion models via the Malliavin calculus on the Wiener space

OPTION PRICING FOR WEIGHTED AVERAGE OF ASSET PRICES

On the mathematical theory of splitting and Russian roulette

The Fair Valuation of Life Insurance Participating Policies: The Mortality Risk Role

Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS Instructor: Michael Gelbart

Master of Mathematical Finance: Course Descriptions

Stocks paying discrete dividends: modelling and option pricing

SOLUTIONS FOR PROBLEM SET 2

Pricing American Options using Monte Carlo Methods

Options. Moty Katzman. September 19, 2014

Simulating Stochastic Differential Equations

Option Properties. Liuren Wu. Zicklin School of Business, Baruch College. Options Markets. (Hull chapter: 9)

Optimization under uncertainty: modeling and solution methods

Session IX: Lecturer: Dr. Jose Olmo. Module: Economics of Financial Markets. MSc. Financial Economics

Does Black-Scholes framework for Option Pricing use Constant Volatilities and Interest Rates? New Solution for a New Problem

A spot price model feasible for electricity forward pricing Part II

Transformations and Expectations of random variables

American Monte Carlo for Bermudan CVA. Roland Lichters

An Introduction to Applied Mathematics: An Iterative Process

Randomized algorithms

The Black-Scholes Formula

1 The Brownian bridge construction

Manual for SOA Exam MLC.

Variance Reduction. Pricing American Options. Monte Carlo Option Pricing. Delta and Common Random Numbers

STCE. Fast Delta-Estimates for American Options by Adjoint Algorithmic Differentiation

3. Convex functions. basic properties and examples. operations that preserve convexity. the conjugate function. quasiconvex functions

Financial Mathematics for Actuaries. Chapter 1 Interest Accumulation and Time Value of Money

Introduction. Appendix D Mathematical Induction D1

Asian Option Pricing Formula for Uncertain Financial Market

Stochastic Gradient Method: Applications

Pricing and calibration in local volatility models via fast quantization

PITFALLS IN TIME SERIES ANALYSIS. Cliff Hurvich Stern School, NYU

From CFD to computational finance (and back again?)

Pull versus Push Mechanism in Large Distributed Networks: Closed Form Results

Lecture 8 ELE 301: Signals and Systems

Pricing Discrete Barrier Options

Martingale Pricing Applied to Options, Forwards and Futures

Computational Finance Options

Valuing Stock Options: The Black-Scholes-Merton Model. Chapter 13

Pricing complex options using a simple Monte Carlo Simulation

An Incomplete Market Approach to Employee Stock Option Valuation

Monte Carlo Simulation

Black-Scholes Option Pricing Model

The Behavior of Bonds and Interest Rates. An Impossible Bond Pricing Model. 780 w Interest Rate Models

DEFINITION A complex number is a matrix of the form. x y. , y x

Pricing of an Exotic Forward Contract

Full and Complete Binary Trees

Monte Carlo Methods and Models in Finance and Insurance

River Dell Regional School District. Computer Programming with Python Curriculum

Algebra I Credit Recovery

Vilnius University. Faculty of Mathematics and Informatics. Gintautas Bareikis

LECTURE 15: AMERICAN OPTIONS

1 Simulating Brownian motion (BM) and geometric Brownian motion (GBM)

ECON20310 LECTURE SYNOPSIS REAL BUSINESS CYCLE

INTEREST RATES AND FX MODELS

1 Interest rates, and risk-free investments

An Introduction to Modeling Stock Price Returns With a View Towards Option Pricing

CS 522 Computational Tools and Methods in Finance Robert Jarrow Lecture 1: Equity Options

From CFD to computational finance (and back again?)

EDF CEA Inria School Systemic Risk and Quantitative Risk Management

Stochastic Processes and Advanced Mathematical Finance. Multiperiod Binomial Tree Models

Common Core Unit Summary Grades 6 to 8

Prescriptive Analytics. A business guide

Short rate models: Pricing bonds in short rate models

Monte Carlo simulations and option pricing

Using simulation to calculate the NPV of a project

Industry Environment and Concepts for Forecasting 1

On Black-Scholes Equation, Black- Scholes Formula and Binary Option Price

Maximum likelihood estimation of mean reverting processes

A Genetic Algorithm to Price an European Put Option Using the Geometric Mean Reverting Model

Unlocking the capacity to care

Analytic Modeling in Python

Introduction to Financial Models for Management and Planning

Pricing and Risk Management of Variable Annuity Guaranteed Benefits by Analytical Methods Longevity 10, September 3, 2014

How To Calculate A Non Random Walk Down Wall Street

Program description for the Master s Degree Program in Mathematics and Finance

Transcription:

Quant DSL Language Guide Appropriate Software Foundation June 24, 2011 Contents 1 Synthesis 2 2 Syntax 3 2.1 Expressions............................ 3 2.2 Markets and Dates........................ 3 2.3 Constants............................. 3 3 Semantics 4 3.1 Functions of Time........................ 4 4 Simulation 4 4.1 Proof by Induction........................ 5 4.1.1 Market.......................... 5 4.1.2 Fixing........................... 5 4.1.3 Settlement........................ 5 4.1.4 Wait............................ 6 4.1.5 Choice........................... 6 4.1.6 Max............................ 6 4.1.7 Addition.......................... 6 4.1.8 Subtraction........................ 7 4.1.9 Multiplication....................... 7 4.1.10 Division.......................... 7 5 Software 7 5.1 Quant Python Package...................... 7 6 Future Development 8 Abstract This article describes Quant DSL, a domain specific language for quantitative analytics. Language elements are combined according to the language syntax to form a statement of value which is evaluated 1

according to the language semantics. The syntax of the language is defined with Backus Naur Form. The semantics are defined with mathematical expressions commonly used within quantitative analytics. The validity of Monte Carlo simulation for all possible expressions in the language is proven by induction. Quant DSL has been implemented in Python as a part of the Quant software application. 1 Synthesis Quant DSL is a domain specific language for quantitative analytics. The value of any domain specific language consists in obtaining a declarative syntax by which domain functionality can be invoked with potentially infinite variation, so that a complex domain can be supported with relatively simple software. Once underlying functionality has been abstracted to the level of a domain specific language, support for a new case can be established in a relatively short time. Because new code does not need to be written for a new case, proliferation of code that is hard to test (and therefore expensive to maintain) can be avoided. Quant DSL is used to record and evaluate statements of value. It is hoped that the elements of the Quant DSL (for example "Market", "Fixing", "Settlement") are recognised as common terms within quantitative analytics; whilst the elements are defined fully in this article, each element may be familiar to people who are familiar with the domain. Consequently, it is hoped that statements of value that are written in Quant DSL will be readable (as well as writable). Given the infinite variation of expression in the language, it is necessary to obtain an inductive proof of the integrity of the language for any possible expression. Although alternative proofs may be obtained, an inductive proof has been devised. Quant DSL was invented during the development of the Quant Python package. Quant is an open source application of both the SciPy Python package (a library for scientific computation) and the Domain Model Python package (a toolkit for enterprise applications). Recent advances in software engineering practice (for example Martin Fowler s patterns of enterprise application architecture, the agile approach, or open source software) have suggested new ways to obtain appropriate functionality. In particular, the recent maturation of dynamic languages such as Python means the focus of development can remain on the supported domain. Quant has benefited from these tendencies. Quant DSL is based on professional experience in financial institutions in London, academic training in mathematics and mathematical engineering, and professional experience in the architecture and development of enterprise applications. It is hoped that Quant DSL constitutes a fresh approach to a common concern. 2

2 Syntax In Quant DSL, a statement of value is an expression in the following form. 2.1 Expressions An expression is either a constant value, or an expected market price, or fixes an expression to a date, or settles an expression on a date, or waits until a date for an expression, or chooses between the two expressions, or is the maximum (or addition or subtraction or multiplication or division) of two expressions, or negates an expression. <Expression> ::= <Constant> "Market(" <MarketId> ")" "Fixing(" <Date> "," <Expression> ")" "Settlement(" <Date> "," <Expression> ")" "Wait(" <Date> "," <Expression> ")" "Choice(" <Expression> "," <Expression> ")" "Max(" <Expression> "," <Expression> ")" <Expression> "+" <Expression> <Expression> "-" <Expression> <Expression> "*" <Expression> <Expression> "/" <Expression> "-" <Expression> 2.2 Markets and Dates Market identifiers are constrained in practice by the object model of the market exchange. Dates start with a four digit year and have dashes. <MarketId> ::= <Date> ::= <Year> ::= <Month> ::= <Day> ::= "#"<Integer> <Year>"-"<Month>"-"<Day> <Digit><Digit><Digit><Digit> <Digit><Digit> <Digit><Digit> 2.3 Constants A constant is either an integer or a floating point number. A digit is a digit in base 10. <Constant> ::= <Float> <Integer> <Float> ::= <Integer>"."<Integer> <Integer> ::= <Integer><Digit> <Digit> <Digit> ::= "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 3

3 Semantics A statement of value is evaluated at present time t 0. 3.1 Functions of Time Expression v defines a function [[v ](t) from present time t to a random variable in a probability space. [[Market(i)](t) = S i e σ iz(t t 0 ) 1 2 σ2 i (t t 0) [[F ixing(d, x)](t) [[Settlement(d, x)](t) [[W ait(d, x)](t) [[Choice(x, y)](t) [[Max(x, y)](t) [[x + y ](t) [[x y ](t) [[x y ](t) [[x/y ](t) [[ x](t) = [[x](d) = e r(t d) [[x](t) = [[Settlement(d, F ixing(d, x))](t) = max(e[[[x](t) F (t)], E[[[y ](t) F (t)]) = max([[x](t), [[y ](t)) = [[x](t) + [[y ](t) = [[x](t) [[y ](t) = [[x](t)[[y ](t) = [[x](t)/[[y ](t) = [[x](t) For market i, the last price S i and volatility σ i are determined using only market price data generated before t 0. Brownian motion z is used in diffusion. Constant interest rate r is used in discounting. Expectation E is conditioned on filtration F. 4 Simulation A random variable is simulated with a number N of samples from its distribution. The language semantics are simulated such that for any valid expression v, the simulated value [[v ] m (t) converges in mean square and in probability to the true value of [[v ](t) as the number N of paths in the simulation goes to infinity. 4

4.1 Proof by Induction The inductive hypothesis I(v) is defined to be true if and only if, for any time t, the simulated value [[v ] m (t) converges in mean square and in probability to the true value [[v ](t) as the number N of paths in the simulation goes to infinity. Below, I(v) is shown to be true for all v. 4.1.1 Market Let i reference a market price history. Let z m be a simulatation of Brownian motion z. Suppose I(z). The true value [[Market(i)](t) is simulated as S i e σ iz m(t t 0 ) 1 2 σ2 i (t t 0). Since Brownian motion, exponentiation and multiplication by a constant are continuous, the simulated value S i e σ iz m(t t 0 ) 1 2 σ2 i (t t 0) converges in mean square and in probability to the true value S i e σ iz(t t 0 ) 1 2 σ2 i (t t 0) as the number N of paths in the simulation goes to infinity. Thus, [[Market(i)] m (t) converges in mean square and in probability to [[Market(i)](t) as the number N of paths in the simulation goes to infinity. Hence I(M arket(i)). 4.1.2 Fixing Let d be a date. Suppose I(x). The true value [[F ixing(x, d)](t) is simulated as [[x] m (d). Since d is also a time, the simulated value [[x] m (d) converges in mean square and in probability to the true value [[x](d) as the number N of paths in the simulation goes to infinity. Thus, [[F ixing(x, d)] m (t) converges in mean square and in probability to [[F ixing(x, d)](t) as the number N of paths in the simulation goes to infinity. Hence I(F ixing(x, d)). 4.1.3 Settlement Let x be an expression, and d a date. Suppose I(x). The true value [[Settlement(x, d)](t) is simulated as e r(t d) [[x] m (t). Since e r(t d) is constant, and multiplication by a constant is continuous, the simulated value e r(t d) [[x] m (d) converges in mean square and in probability to the true value e r(t d) [[x](d) as the number N of paths in the simulation goes to infinity. Thus, [[Settlement(x, d)] m (t) converges in mean square and in probability to [[Settlement(x, d)](t) as the number N of paths in the simulation goes to infinity. Hence I(Settlement(x, d)). 5

4.1.4 Wait Let x be an expression, and d a date. Suppose I(F ixing(d, x)) and I(Settlement(d, x)). The true value [[W ait(x, d)](t) is simulated as [[Settlement(d, F ixing(d, x))] m (t). Since F ixing(d, x) is an expression, the simulated value converges in mean square and in probability to [[Settlement(d, F ixing(d, x))](t) as the number N of paths in the simulation goes to infinity. Thus, [[W ait(x, d)] m (t) converges in mean square and in probability to [[W ait(x, d)](t) as the number N of paths in the simulation goes to infinity. Hence I(W ait(x, d)). 4.1.5 Choice Let x and y be expressions. Let R = {x, y} be the alternatives for a decision to be made at time t. Let P (r) = 0 be the immediate payoff associated with alternative r. Let V (r) be the true continuation value associated with alternative r, where V (x) = [[x], and V (y) = [[y ]. Suppose I(x) and I(y). The true value [[Choice(x, y)](t) is simulated as LSM(P m, V m ), where LSM is a function which computes a single step of the Longstaff and Schwartz least-squares monte carlo algorithm [1], where P m (x) = 0 and P m (y) = 0, and where V m (x) = [[x] m (t) and V m (y) = [[y ] m (t). According to Longstaff and Schwartz, the simulated value LSM(P m, V m ) converges in mean square and in probability to the true value of the maxmimum over R of E[P (r) + V (r) F (t)] as the number N of paths in the simulation goes to infinity. By substituting for R, P and V, the maxmimum over R of E[P (r) + V (r) F (t)] becomes max(e[[[x](t) F (t)], E[[[y ](t) F (t)]). Thus, [[Choice(x, y)] m (t) converges in mean square and in probability to the true value [[Choice(x, y)](t) as the number N of paths in the simulation goes to infinity. Hence I(Choice(x, y)). 4.1.6 Max The true value [[Max(x, y)](t) is simulated as max([[x] m (t), [[y ] m (t)). Since maximisation is continuous, the simulated value max([[x] m (t), [[y ] m (t)) converges in mean square and in probability to the true value max([[x](t), [[y ](t)). Thus, [[Max(x, y)] m (t) converges in mean square and in probability to [[Max(x, y)](t) as the number N of paths in the simulation goes to infinity. Hence I(M ax(x, y)). 4.1.7 Addition 6

The true value [[x + y ](t) is simulated as [[x] m (t) + [[y ] m (t). Since addition is continuous, the simulated value [[x] m (t) + [[y ] m (t) converges in mean square and in probability to the true value [[x](t) + [[y ](t). Thus, [[x+y ] m (t) converges in mean square and in probability to [[x+y ](t) as the number N of paths in the simulation goes to infinity. Hence I(x + y). 4.1.8 Subtraction The true value [[x y ](t) is simulated as [[x] m (t) [[y ] m (t). Since subtraction is continuous, the simulated value [[x] m (t) [[y ] m (t) converges in mean square and in probability to the true value [[x](t) [[y ](t). Thus, [[x y ] m (t) converges in mean square and in probability to [[x y ](t) as the number N of paths in the simulation goes to infinity. Hence I(x y). 4.1.9 Multiplication The true value [[x y ](t) is simulated as [[x] m (t)[[y ] m (t). Since multiplication is continuous, [[x] m (t)[[y ] m (t) converges in mean square and in probability to the true value [[x](t)[[y ](t). Thus, [[x y ] m (t) converges in mean square and in probability to [[x y ](t) as the number N of paths in the simulation goes to infinity. Hence I(x y). 4.1.10 Division Todo: Show that I(x/y). Hence I(x/y). 5 Software 5.1 Quant Python Package Quant DSL has been implemented within a module (quant/dsl.py) of the Python package called Quant [2]. Quant is an application of SciPy [3] and Domain Model [4]. Quant provides a Web user interface that allows books of trades to be defined and evaluated with real market data. Quant can be installed on Linux platforms. 7

6 Future Development Various enhancements are anticipated. Elements to simplify common expressions, such as Option or European, will be added soon. [[Option(d, k, x, y)](t) [[European(d, k, x)](t) = [[W ait(d, Choice(x k, y))](t) = [[Option(d, k, x, 0)](t) Many users will want to express optionality over a period of time. [[American(d, k, x)](t) = [[Option(t, k, x, Option(t + δt, k, x, Option( t + 2δt, k, x,...option(d δt, k, x, Option(d, k, x, 0))))))](t) Some users may wish to define new elements of the language, and so an extension mechanism would be desirable. Others may benefit from evaluating statements by using analytic solutions instead of a Monte Carlo solution, where that would be a valid evaluation of the statement. Others may wish to be warned about common usage errors, for example it should be possible to detect if a Max expression operates on expressions which depend on the underlyings at a different present time. Others may wish to customise the random processes applied to market prices. Others may wish to evaluate statements with variable interest rates. Others may wish to derive expected cash flows from the statement of value. References [1] Francis A. Longstaff and Eduardo S. Schwartz. Valuing american options by simulation: A simple least-squares approach. Review of Financial Studies, pages 113 147, 2001. [2] Appropriate Software Foundation. Quant. Python Package Index, (http://pypi.python.org/pypi/quant), 2011. [3] The SciPy Community. Scipy. SciPy Website, (http://www.scipy.org), 2011. [4] Appropriate Software Foundation. Domain model. Python Package Index, (http://pypi.python.org/pypi/domainmodel), 2011. 8