Top Banner
Market Microstructure Simulator: Strategy Definition Language Anton Kolotaev Chair of Quantitative Finance, ´ Ecole Centrale Paris [email protected] March 14, 2014 Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 1 / 15
15
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FiQuant Market Microstructure Simulator (short version)

Market Microstructure Simulator: Strategy DefinitionLanguage

Anton Kolotaev

Chair of Quantitative Finance, Ecole Centrale Paris

[email protected]

March 14, 2014

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 1 / 15

Page 2: FiQuant Market Microstructure Simulator (short version)

Overview

1 IntroductionMotivationDesign GoalsLibrary ContentWeb Interface

2 Strategy Definition LanguageMotivationFunctionsClassesClass InheritanceExampleSummary

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 2 / 15

Page 3: FiQuant Market Microstructure Simulator (short version)

Motivation

Last years financial market microstructure attracts more and moreattention due to its potential capability to explain some macroscopicphenomena like liquidity crisis, herd behaviour that were observed duringrecent crises. Researchers in this field need a simulation tool that wouldsupport them in their theoretical studies. This tool would take intoaccount in exhaustive and precise manner market rules:

1 how orders are sent to the market

2 how they are matched

3 how information is propagated

Simulator architecture should allow to model any behaviour of marketagents, i.e. to be very flexible in trading strategies definition. It might beused to study impact on market caused by changing tick size, introducinga new order type, adding a new order matching rule.

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 3 / 15

Page 4: FiQuant Market Microstructure Simulator (short version)

Design Goals

1 Flexibility and Extensibility. A simulation library must have a verymodular design in order to provide a high level of flexibility to theuser. This requirement comes from the original purpose of asimulation as a test bed for experiments with different models andparameters.

2 Used-friendliness. Since a typical simulation model is composed ofmany hundreds and thousands blocks, it is very important to providea simple way for user to tell how a behaviour wanted differs from thedefault one. Simulator API should be friendly to modern IDEs withintellisense support

3 Performance. A user should be allowed to choose between smallstart-up time and high simulation speed.

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 4 / 15

Page 5: FiQuant Market Microstructure Simulator (short version)

Library Content

Implemented so far:1 Strategies:

1 Side based strategies:1 Signals: Trend Follower, Crossing Averages2 Fundamental Value: Mean Reversion, Pair Trading

2 Desired position based strategies: RSI, Bollinger Bands3 Price based strategies: Liquidity Provider, Market Data, Market Maker4 Adaptive strategies: Trade-If-Profitable, Choose-The-Best,

MultiarmedBandit5 Arbitrage strategy

2 Meta-orders: Iceberg, StopLoss, Peg, FloatingPrice,ImmediateOrCancel, WithExpiry

3 Statistics: Moving/Cumulative/ExponentiallyWeightedAverage/Variance, RSI, MACD etc

4 Fast queries: Cumulative volume of orders with price better thangiven one etc.

5 Local and remote order booksAnton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 5 / 15

Page 6: FiQuant Market Microstructure Simulator (short version)

Web interface

Web interface allows to compose a market to simulate from existingobjects and set up their parameters

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 6 / 15

Page 7: FiQuant Market Microstructure Simulator (short version)

Rendering results

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 7 / 15

Page 8: FiQuant Market Microstructure Simulator (short version)

Motivation for a dedicated language

1 Syntax. We may design an external DSL so its syntax describes verywell domain specific abstractions.

2 Error checking. A DSL compiler can detect incorrect parametervalues as soon as possible thus shortening simulation developmentcycle and facilitating refactorings.

3 Multiple target languages. A DSL can be compiled into differentlanguages: e.g. into Python to provide fast start-up and into C++ tohave highly optimized fast simulations. A new target languageintroduced, only simple modules need to be re-written into it;compound modules will be ported automatically.

4 IDE support. Modern IDEs like Eclipse, Intellij IDEA allow writingplug-ins that would provide smart syntax highlighting,auto-completion and check errors on-the-fly for user-defined DSLs.

5 High-level optimizations are easier to implement.

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 8 / 15

Page 9: FiQuant Market Microstructure Simulator (short version)

Functions

Functions represent compound modules of a simulation model.

Intrinsic functions represent simple modules and import classes from thetarget language into the DSL.

Types for parameters and return values are inferred automatically

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 9 / 15

Page 10: FiQuant Market Microstructure Simulator (short version)

Classes

Classes group functions and share fields among them

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 10 / 15

Page 11: FiQuant Market Microstructure Simulator (short version)

Class Inheritance

To stimulate code re-use classes may derive from other classes

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 11 / 15

Page 12: FiQuant Market Microstructure Simulator (short version)

Example: Signal Side Strategies

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 12 / 15

Page 13: FiQuant Market Microstructure Simulator (short version)

Example: Signal Side Strategies Base

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 13 / 15

Page 14: FiQuant Market Microstructure Simulator (short version)

Developed at the Chair of Quantitative Finance at Ecole CentraleParis

Source code and documentation can be found athttps://github.com/fiquant/marketsimulator

OS supported: Linux, Mac OS X, Windows

Browsers supported: Chrome, Firefox, Safari, Opera

Requirements: Scala 10.2, Python 2.7 (Flask, NumPy, Pandas, Blist,Veusz).

Translator from the DSL into optimized C++ code is to be developed.

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 14 / 15

Page 15: FiQuant Market Microstructure Simulator (short version)

Thank you for your attention!

Anton Kolotaev (ECP) FiQuant Market Simulator March 14, 2014 15 / 15