Algorithmic Finance and Tools for Grid Execution (the Swift Grid Scripting/Workflow tool) Tiberiu...

13
Algorithmic Finance and Tools for Grid Execution (the Swift Grid Scripting/Workflow tool) Tiberiu (Tibi) Stef- Praun

Transcript of Algorithmic Finance and Tools for Grid Execution (the Swift Grid Scripting/Workflow tool) Tiberiu...

Algorithmic Finance and Tools for Grid

Execution(the Swift Grid Scripting/Workflow

tool)

Tiberiu (Tibi) Stef-Praun

Outline The main idea

Extend your research with Grid computing Means to do parallel execution

How does it help you speed up, reuse code, increase input sizes

What do you get Free infrastructure (lots of machines) Simple tools to manage large executions Scaled-up research capabilities The CI expertise and support

Example MaxPain Econ results

Others are doing it already

o Algorithmic trading

o Community investing

o Industry produces parallel cores

o clusters are everywhere, and are affordable

o Grid computing in finance is already happening (see references)

o You probably know others better

Grid computing and why do you want it

Clusters of machines:o Uniform access

o datao execution

o It has:o securityo applicationso your own space

o Think “Fragmented Computing Resources”

MachinesMachines

ClusterCluster

MachinesMachinesMachinesMachinesMachinesMachinesMachinesMachines

How would you use grid computing

o Split up your application into components of durations 5min-2 hours

o Distribute parts of your application onto

the grid nodes

o In the proper order, as determined by

the logic and dependencies between the

app components:

o send the inputs to a node containing the component

o invoke the execution on that node

o copy back the outputs

What do you need?

The Glue Globus (middleware)

Execution tools Data transfer tools

Swift (workflow) Jobs dependencies description

language (for your problem) Execution Engine

The Examples Simple Financial App Complex Econ App

US (the Comp. Inst.) Experience with Finance Experience with Computing

Example: The MaxPain model

Inspired from the trading folklore Assume all the options sellers could influence stock price

to minimize their cost at ITM options expiry Find the stock price at which this cost is minimum

Extended to address more realistic assumptions What if all ITM options are sold at any point in time,

instead of having them wait for the expiry Issues:

Data acquisition and processing Options pricing (binomial, Black-Scholes), implied

volatility computation - Computationally Intensive

MaxPain on a single machine DATABASE-DRIVEN

Scripts to collect the data (50 symbols) (bash) Scripts to process the data (SQL, PLSQL)

Trigger data processing within the DB All the steps use tables as sources, generate intermediary tables Results are displayed later Sequential processing

Issues Running time: 50 symbols, 8 hours Fixes to data acquisition, adding more symbols

MaxPain in distributed computing Split into self-sufficient components:

Data acquisition (in batches of <x>) Per-symbol computing Per-procedure execution (Volatility, option pricing,

Interpolation) (Currently R with QuantLib) Grouping for higher level results (arbitrage, portfolio

optimizations) Use Swift to

Catalog and use the remote procedures Drive the execution Manage the inputs, outputs and dependencies

Managing distributed executions

“You provide the problem code, I’ll provide the execution environment”

(Run DEMO)

Workflow facilities in Swift

General language constructs Procedures (atomic, composite) Flow control (loops, conditions) Data structures (arrays, structs) Variable manipulation utilities (strcat. etc)

Virtualization support Applications (declared in catalog files) Data (mappers) Just-in-time execution

Scaling it up: Moral Hazard

Stage 1 26x26 runs ->2,4 Stage 2 102x52 runs ->3 Stage 3 40x40 runs ->5 Stage 4 40x40 runs ->5 Stage 5 30x30 runs

Conclusions It helps others

Econ (Robert Townsend) Molecular Sciences (Bennoit Roux)

Build a set of finance and financial mathematics tools, continuous validation

Can share your tools/work easily Our initial research goals:

Options Indicators (like MaxPain) Portfolio optimization Time Series Analysis

Similar work: http://proactive.objectweb.org