Deep surrogate model for the probability of informed trading model
Project description
Master thesis: Deep Structural estimation: with an application to market microstructure modelling
This package proposes an easy application of the master thesis: "Deep Structural estimation: with an application to market microstructure modelling"
The figure above shows the log-likelihood value of the PIN model (left) and the Deep-Surrogate (right)
Authors
- Guillaume Pavé (HEC Lausanne,guillaumepave@gmail.com)
Supervisors
- Simon Scheidegger (Department of Economics, HEC Lausanne, simon.scheidegger@unil.ch)
- Antoine Didisheim (Swiss Finance Institute, antoine.didisheim@unil.ch)
Instructions
- Download parameters of the surrogate (https://drive.google.com/drive/folders/1RTtYqOipJ-OJpveLu9Ui9NbYGvCDJtNL?usp=sharing)
- Create a folder "model_save" and put parameters inside
- Download training datatset "simulation_data_PIN.txt" from https://drive.google.com/file/d/1iUR-Zsd_UAo8bnZEMh5hpQ0SjYtpmtQA/view?usp=sharing
- Create a folder "data" and put the dataset inside.
- Now, you can use the train dataset or you could generate your own dataset (https://github.com/edwinhu/pin-code)
- Instantiate a surrogate object with: surrogate = DeepSurrogate()
- Use get_derivative to get the first derivative of the log-likelihood function's for each input:
- surrogate.get_derivative(X)
- Use get_pin to get the PIN value with the number of buy and sell trades computed thanks to the Lee and ready algorithm
- *surogate.get_pin(X) -> X should be a pandas Dataframe containing 'Buy' and "sell colmuns. Or a numpy array with the colmuns in the following order: ['buy', 'sell']
- The Input X should be a pandas DataFrame containing the name of the models parameters. Or a numpy with the columns in the order below:
- PIN | ['alpha', 'delta', 'epsilon_b', 'epsilon_s', 'mu', 'buy', 'sell']
Parameter range
Surrogate model are defined inside some specific range of parameter. PIN model in this surrogate library have been trained inside the range defined the table below. The surroate can not estimate PIN probability with parameters outside of this range of parameters.
Parameter | Min | Max |
---|---|---|
a | 0 | 0.99 |
δ | 0 | 0.99 |
μ | 100 | 300 |
ε_buy | 100 | 300 |
ε_sell | 100 | 300 |
# of buy trades | 55 | 700 |
# of sell trades | 55 | 700 |
Code example
from model.deepsurrogate import DeepSurrogate
from model.ml_model import NetworkModel
from model.parameters import Params
import sys
par = Params()
deepsurrogate = DeepSurrogate()
Now, we can use demo.py and estimate_par_lbfgs.py.
Contact
The Github repository is available at: https://github.com/GuillaumePv/pin_surrogate_model.
If you find a bug or would like to request a feature, please report it with the issue tracker. If you'd like to contribute to StereoVision, feel free to fork it on GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file DeepSurrogatepin-1.7-py3-none-any.whl
.
File metadata
- Download URL: DeepSurrogatepin-1.7-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e293ab11d98be753256d7969e94ed49f048a63163df049a4398015fcc7807c69 |
|
MD5 | 4ce5b6005bc9cd3846a84f09df8d624a |
|
BLAKE2b-256 | 91d7f7ab1a9bfe2988247c87f6ce1754fe6cd8c22b11046e1088ddef244662be |