An R package for estimating the probability of informed trading
Source:R/PINstimation.R
PINstimation-package.Rd
The package provides utilities for the estimation
of probability of informed trading measures: original PIN (PIN
) as
introduced by Easley and Ohara (1992)
and
Easley et al. (1996)
, multilayer PIN (MPIN
) as introduced by
Ersan (2016)
, adjusted PIN (AdjPIN
) model
as introduced in Duarte and Young (2009)
, and
volume-synchronized PIN (VPIN
) as introduced by
Easley et al. (2011)
and
Easley et al. (2012)
. Estimations of
PIN
, MPIN
, and adjPIN
are subject to floating-point exception
error, and are sensitive to the choice of initial values.
Therefore, researchers developed factorizations of the model likelihood
functions as well as algorithms for determining initial parameter sets for
the maximum likelihood estimation - (MLE henceforth).
As for the factorizations, the package includes three
different factorizations of the PIN
likelihood function :fact_pin_eho()
as in Easley et al. (2010)
, fact_pin_lk()
as in
Lin and Ke (2011)
, and fact_pin_e()
as in
Ersan (2016)
;
one factorization for MPIN
likelihood function: fact_mpin()
as in
Ersan (2016)
; and one factorization for
AdjPIN
likelihood function: fact_adjpin()
as in
Ersan and Ghachem (2022b)
.
The package implements three algorithms to generate initial
parameter sets for the MLE of the PIN
model in: initials_pin_yz()
for the algorithm of Yan and Zhang (2012)
,
initials_pin_gwj()
for the algorithm of
Gan et al. (2015)
, and initials_pin_ea()
for the
algorithm of Ersan and Alici (2016)
. As for the
initial parameter sets for the MLE of the MPIN
model, the function
initials_mpin()
implements a multilayer extension of the algorithm of
Ersan and Alici (2016)
. Finally, three functions
implement three algorithms of initial parameter sets for the MLE of
the AdjPIN
model, namely initials_adjpin()
for the algorithm in
Ersan and Ghachem (2022b)
, initials_adjpin_cl()
for the algorithm of Cheng and Lai (2021)
; and
initials_adjpin_rnd()
for randomly generated initial parameter sets.
The choice of the initial parameter sets can be done directly, either using
specific functions implementing MLE for the PIN model, such as, pin_yz()
,
pin_gwj()
, pin_ea()
; or through the argument initialsets
in generic
functions implementing MLE for the MPIN
and AdjPIN
models, namely
mpin_ml()
, and adjpin()
.
Besides, PIN
, MPIN
and AdjPIN
models can be estimated using custom
initial parameter set(s) provided by the user and fed through
the argument initialsets
for the functions pin()
, mpin_ml()
and
adjpin()
. Through the function get_posteriors()
, the package also
allows users to assign, for each day in the sample, the posterior
probability that the day is a no-information day, good-information day
and bad-information day.
As an alternative to the standard maximum likelihood estimation,
estimation via expectation conditional maximization algorithm (ECM
)
is suggested in Ghachem and Ersan (2022a)
, and is
implemented through the function mpin_ecm()
for the MPIN
model, and
the function adjpin()
for the AdjPIN
model.
Dataset(s) of daily aggregated numbers of buys and sells with user
determined number of information layers can be simulated with the function
generatedata_mpin()
for the MPIN
(PIN
) model;
and generatedata_adjpin()
for the AdjPIN
model. The output of these functions contains the
theoretical parameters used in the data generation, empirical parameters
computed from the generated data, alongside the generated data itself.
Data simulation functions allow for broad customization
to produce data that fit the user's preferences. Therefore, simulated data
series can be utilized in comparative analyses for the applied methods in
different scenarios. Alternatively, the user can use two example datasets
preloaded in the package: dailytrades
as a representative of a quarterly
trade data with daily buys and sells; and hfdata
as a simulated
high-frequency dataset comprising 100 000
trades.
Finally, the package provides two functions to deal with
high-frequency data.
First, the function vpin()
estimates and provides detailed output on the
order flow toxicity metric, volume-synchronized probability of informed
trading, as developed in Easley et al. (2011)
and
Easley et al. (2012)
. Second, the function
aggregate_trades()
aggregates the high-frequency trade-data into daily
data using several trade classification algorithms, namely the tick
algorithm, the quote
algorithm, LR
algorithm
(Lee and Ready 1991)
and the EMO
algorithm (Ellis et al. 2000)
.
The package provides fast, compact, and precise utilities to tackle
the sophisticated, error-prone, and time-consuming estimation procedure of
informed trading, and this solely using the raw trade-level data.
Ghachem and Ersan (2022b)
provides comprehensive overview of the package: it first
details the underlying theoretical background, provides a thorough
description of the functions, before using them to tackle relevant
research questions.
Functions
adjpin estimates the adjusted probability of informed trading (
AdjPIN
) of the model of Duarte and Young (2009) .aggregate_trades aggregates the trading data per day using different trade classification algorithms.
detectlayers_e detects the number of information layers present in the trade-data using the algorithm in Ersan (2016) .
detectlayers_eg detects the number of information layers present in the trade-data using the algorithm in Ersan and Ghachem (2022a) .
detectlayers_ecm detects the number of information layers present in the trade-data using the expectation-conditional maximization algorithm in Ghachem and Ersan (2022a) .
fact_adjpin returns the
AdjPIN
factorization of the likelihood function by Ersan and Ghachem (2022b) evaluated at the provided data and parameter sets.fact_pin_e returns the
PIN
factorization of the likelihood function by Ersan (2016) evaluated at the provided data and parameter sets.fact_pin_eho returns the
PIN
factorization of the likelihood function by Easley et al. (2010) evaluated at the provided data and parameter sets.fact_pin_lk returns the
PIN
factorization of the likelihood function by Lin and Ke (2011) evaluated at the provided data and parameter sets.fact_mpin returns the
MPIN
factorization of the likelihood function by Ersan (2016) evaluated at the provided data and parameter sets.generatedata_adjpin generates a dataset object or a list of dataset objects generated according to the assumptions of the
AdjPIN
model.generatedata_mpin generates a dataset object or a list of dataset objects generated according to the assumptions of the
MPIN
model.get_posteriors computes, for each day in the sample, the posterior probabilities that it is a no-information day, good-information day and bad-information day respectively.
initials_adjpin generates the initial parameter sets for the
ML
/ECM
estimation of the adjusted probability of informed trading using the algorithm of Ersan and Ghachem (2022b) .initials_adjpin_cl generates the initial parameter sets for the
ML
/ECM
estimation of the adjusted probability of informed trading using an extension of the algorithm of Cheng and Lai (2021) .initials_adjpin_rnd generates random parameter sets for the estimation of the
AdjPIN
model.initials_mpin generates initial parameter sets for the maximum likelihood estimation of the multilayer probability of informed trading (
MPIN
) using the Ersan (2016) generalization of the algorithm in Ersan and Alici (2016) .initials_pin_ea generates the initial parameter sets for the maximum likelihood estimation of the probability of informed trading (
PIN
) using the algorithm of Ersan and Alici (2016) .initials_pin_gwj generates the initial parameter set for the maximum likelihood estimation of the probability of informed trading (
PIN
) using the algorithm of Gan et al. (2015) .initials_pin_yz generates the initial parameter sets for the maximum likelihood estimation of the probability of informed trading (
PIN
) using the algorithm of Yan and Zhang (2012) .mpin_ecm estimates the multilayer probability of informed trading (
MPIN
) using the expectation-conditional maximization algorithm (ECM
) as in Ghachem and Ersan (2022a) .mpin_ml estimates the multilayer probability of informed trading (
MPIN
) using layer detection algorithms in Ersan (2016) , and Ersan and Ghachem (2022a) ; and standard maximum likelihood estimation.pin estimates the probability of informed trading (
PIN
) using custom initial parameter set(s) provided by the user.pin_bayes estimates the probability of informed trading (
PIN
) using the Bayesian approach in Griffin et al. (2021) .pin_ea estimates the probability of informed trading (
PIN
) using the initial parameter sets from the algorithm of Ersan and Alici (2016) .pin_gwj estimates the probability of informed trading (
PIN
) using the initial parameter set from the algorithm of Gan et al. (2015) .pin_yz estimates the probability of informed trading (
PIN
) using the initial parameter sets from the grid-search algorithm of Yan and Zhang (2012) .vpin estimates the volume-synchronized probability of informed trading (
VPIN
).
Datasets
dailytrades A dataframe representative of quarterly (60 trading days) data of simulated daily buys and sells.
hfdata A dataframe containing simulated high-frequency trade-data on 100 000 timestamps with the variables
{timestamp, price, volume, bid, ask}
.
Estimation results
estimate.adjpin-class The class
estimate.adjpin
stores the estimation results of the functionadjpin()
.estimate.mpin-class The class
estimate.mpin
stores the estimation results of theMPIN
model as estimated by the functionmpin_ml()
.estimate.mpin.ecm-class The class
estimate.mpin.ecm
stores the estimation results of theMPIN
model as estimated by the functionmpin_ecm()
.estimate.pin-class The class
estimate.pin
stores the estimation results of the followingPIN
functions:pin(), pin_yz(), pin_gwj()
, andpin_ea()
.estimate.vpin-class The class
estimate.vpin
stores the estimation results of theVPIN
model using the functionvpin()
.
Data simulation
dataset-class The class
dataset
stores the result of simulation of the aggregate daily trading data.data.series-class The class
data.series
stores a list ofdataset
.
References
Cheng T, Lai H (2021).
“Improvements in estimating the probability of informed trading models.”
Quantitative Finance, 21(5), 771-796.
Duarte J, Young L (2009).
“Why is PIN priced?”
Journal of Financial Economics, 91(2), 119--138.
ISSN 0304405X.
Easley D, De Prado MML, Ohara M (2011).
“The microstructure of the \" flash crash\": flow toxicity, liquidity crashes, and the probability of informed trading.”
The Journal of Portfolio Management, 37(2), 118--128.
Easley D, Hvidkjaer S, Ohara M (2010).
“Factoring information into returns.”
Journal of Financial and Quantitative Analysis, 45(2), 293--309.
ISSN 00221090.
Easley D, Kiefer NM, Ohara M, Paperman JB (1996).
“Liquidity, information, and infrequently traded stocks.”
Journal of Finance, 51(4), 1405--1436.
ISSN 00221082.
Easley D, Lopez De Prado MM, OHara M (2012).
“Flow toxicity and liquidity in a high-frequency world.”
Review of Financial Studies, 25(5), 1457--1493.
ISSN 08939454.
Easley D, Ohara M (1992).
“Time and the Process of Security Price Adjustment.”
The Journal of Finance, 47(2), 577--605.
ISSN 15406261.
Ellis K, Michaely R, Ohara M (2000).
“The Accuracy of Trade Classification Rules: Evidence from Nasdaq.”
The Journal of Financial and Quantitative Analysis, 35(4), 529--551.
Ersan O (2016).
“Multilayer Probability of Informed Trading.”
Available at SSRN 2874420.
Ersan O, Alici A (2016).
“An unbiased computation methodology for estimating the probability of informed trading (PIN).”
Journal of International Financial Markets, Institutions and Money, 43, 74--94.
ISSN 10424431.
Ersan O, Ghachem M (2022a).
“Identifying information types in probability of informed trading (PIN) models: An improved algorithm.”
Available at SSRN 4117956.
Ersan O, Ghachem M (2022b).
“A methodological approach to the computational problems in the estimation of adjusted PIN model.”
Available at SSRN 4117954.
Gan Q, Wei WC, Johnstone D (2015).
“A faster estimation method for the probability of informed trading using hierarchical agglomerative clustering.”
Quantitative Finance, 15(11), 1805--1821.
Ghachem M, Ersan O (2022a).
“Estimation of the probability of informed trading models via an expectation-conditional maximization algorithm.”
Available at SSRN 4117952.
Ghachem M, Ersan O (2022b).
“PINstimation: An R package for estimating models of probability of informed trading.”
Available at SSRN 4117946.
Griffin J, Oberoi J, Oduro SD (2021).
“Estimating the probability of informed trading: A Bayesian approach.”
Journal of Banking & Finance, 125, 106045.
Lee CMC, Ready MJ (1991).
“Inferring Trade Direction from Intraday Data.”
The Journal of Finance, 46(2), 733--746.
ISSN 00221082, 15406261.
Lin H, Ke W (2011).
“A computing bias in estimating the probability of informed trading.”
Journal of Financial Markets, 14(4), 625-640.
ISSN 1386-4181.
Yan Y, Zhang S (2012).
“An improved estimation method and empirical properties of the probability of informed trading.”
Journal of Banking and Finance, 36(2), 454--467.
ISSN 03784266.
Author
Montasser Ghachem montasser.ghachem@pinstimation.com
Department of Economics at Stockholm University, Stockholm, Sweden.
Oguz Ersan oguz.ersan@pinstimation.com
Department of International Trade and Finance at Kadir Has University,
Istanbul, Turkey.