Algorithmic Finance and Tools for Grid Execution (the Swift Grid Scripting/Workflow tool) Tiberiu...
-
Upload
edwin-mathews -
Category
Documents
-
view
224 -
download
0
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