I am trying to replicate the market resiliency model used in the following paper: Bessembinder, Hendrik, Allen Carrion, Laura Tuttle, and Kumar Venkataraman. 2016. “Liquidity, Resiliency and Market Quality around Predictable Trades: Theory and Evidence.” Journal of Financial Economics 121 (1): 142–66. https://doi.org/10.1016/j.jfineco.2016.02.011.
More precisely, my focus is the following estimation p.154 (abridged for clarity):
Reported are estimates of the permanent price impact ( λ ), the temporary price impact ( γ ), and the resiliency of the market ( θ ) [...]
We estimate these parameters with geometric lag regressions of the form:
Pt − Pt−1 = β0 qt + β1 qt−1 + β2 qt−2 + β3 qt−3 + . . . .. + βt q0 + γ0 [Dt − Dt−1] (14)
where Pt is the time t trade price, qj is the signed order imbalance at time j , and the coefficients are restricted such that: β1 = γ (θ – 1), β2 = β1 θ , β3 = β1 θ2 , β4 = β1 θ3 , and so on. The number of lags ( j ) is set to 30. To allow for asymmetry permanent price impact of buy and sell imbalance, we estimate β0 = ( λB St + λS (1 − St) )+ γ where St equals one if qt > 0, and equals zero otherwise.
[...]
The geometric lag Eq. (12) is estimated by Generalized Method of Moments (GMM), using SAS Proc Model with a Bartlett Kernel set equal to the lag length plus one. Reported are Hansen’s J statistic test (and the corresponding p-value) of the null hypothesis that the over-identifying restrictions of the model are valid.
We estimate these parameters with geometric lag regressions of the form:
Pt − Pt−1 = β0 qt + β1 qt−1 + β2 qt−2 + β3 qt−3 + . . . .. + βt q0 + γ0 [Dt − Dt−1] (14)
where Pt is the time t trade price, qj is the signed order imbalance at time j , and the coefficients are restricted such that: β1 = γ (θ – 1), β2 = β1 θ , β3 = β1 θ2 , β4 = β1 θ3 , and so on. The number of lags ( j ) is set to 30. To allow for asymmetry permanent price impact of buy and sell imbalance, we estimate β0 = ( λB St + λS (1 − St) )+ γ where St equals one if qt > 0, and equals zero otherwise.
[...]
The geometric lag Eq. (12) is estimated by Generalized Method of Moments (GMM), using SAS Proc Model with a Bartlett Kernel set equal to the lag length plus one. Reported are Hansen’s J statistic test (and the corresponding p-value) of the null hypothesis that the over-identifying restrictions of the model are valid.
The proportion of the price impact of a time t trade that persists to period t + n can be summarized by an “Impact Persistence” parameter, defined here as:
IPn = In / I0 = (λ + γ θn) / (λ + γ) (12)
IPn = In / I0 = (λ + γ θn) / (λ + γ) (12)
I came to the following code:
Code:
gmm (eq1: d.price - {xb: L(0/29).order_imbalance} - {gma_0} * initiation_difference) /// (eq2: xb_L0.order_imbalance - ({lambda_b} * St + {lamba_s} * (1-St) + {gma})) /// (eq3: xb_L1.order_imbalance - ({gma} * ({theta}-1))) /// (eq4: xb_L2.order_imbalance - ({gma} * ({theta}-1)) * {theta}) /// (eq5: xb_L3.order_imbalance - ({gma} * ({theta}-1)) * {theta}^2) /// (eq6: xb_L4.order_imbalance - ({gma} * ({theta}-1)) * {theta}^3) /// (eq7: xb_L5.order_imbalance - ({gma} * ({theta}-1)) * {theta}^4) /// (eq8: xb_L6.order_imbalance - ({gma} * ({theta}-1)) * {theta}^5) /// (eq9: xb_L7.order_imbalance - ({gma} * ({theta}-1)) * {theta}^6) /// (eq10: xb_L8.order_imbalance - ({gma} * ({theta}-1)) * {theta}^7) /// (eq11: xb_L9.order_imbalance - ({gma} * ({theta}-1)) * {theta}^8) /// (eq12: xb_L10.order_imbalance - ({gma} * ({theta}-1)) * {theta}^9) /// (eq13: xb_L11.order_imbalance - ({gma} * ({theta}-1)) * {theta}^10) /// (eq14: xb_L12.order_imbalance - ({gma} * ({theta}-1)) * {theta}^11) /// (eq15: xb_L13.order_imbalance - ({gma} * ({theta}-1)) * {theta}^12) /// (eq16: xb_L14.order_imbalance - ({gma} * ({theta}-1)) * {theta}^13) /// (eq17: xb_L15.order_imbalance - ({gma} * ({theta}-1)) * {theta}^14) /// (eq18: xb_L16.order_imbalance - ({gma} * ({theta}-1)) * {theta}^15) /// (eq19: xb_L17.order_imbalance - ({gma} * ({theta}-1)) * {theta}^16) /// (eq20: xb_L18.order_imbalance - ({gma} * ({theta}-1)) * {theta}^17) /// (eq21: xb_L19.order_imbalance - ({gma} * ({theta}-1)) * {theta}^18) /// (eq22: xb_L20.order_imbalance - ({gma} * ({theta}-1)) * {theta}^19) /// (eq23: xb_L21.order_imbalance - ({gma} * ({theta}-1)) * {theta}^20) /// (eq24: xb_L22.order_imbalance - ({gma} * ({theta}-1)) * {theta}^21) /// (eq25: xb_L23.order_imbalance - ({gma} * ({theta}-1)) * {theta}^22) /// (eq26: xb_L24.order_imbalance - ({gma} * ({theta}-1)) * {theta}^23) /// (eq27: xb_L25.order_imbalance - ({gma} * ({theta}-1)) * {theta}^24) /// (eq28: xb_L26.order_imbalance - ({gma} * ({theta}-1)) * {theta}^25) /// (eq29: xb_L27.order_imbalance - ({gma} * ({theta}-1)) * {theta}^26) /// (eq30: xb_L28.order_imbalance - ({gma} * ({theta}-1)) * {theta}^27) /// (eq31: xb_L29.order_imbalance - ({gma} * ({theta}-1)) * {theta}^28), /// xtinstruments(eq2 eq31: order_imbalance, lags(0/29)) wmatrix(hac bartlett 31)
GMM estimation is totally new to me. I spent a lot of time in textbooks and introductory material recently, but I'm still learning on the go. Am I even going in the right direction with the gmm command and this series of equations?
Thanks in advance for any feedback!
0 Response to Estimate parameters from restrictions on regression parameters via GMM
Post a Comment