I'm trying to replicate some of the findings made in the paper below. I'm stuck and have a question on Page 9, where the transaction return or price direction features are being built.

Given the time intervals being discussed (.1, .2), (.2, .4), (.4, .8), in seconds, how do you deal with the frequent occurence of transactions not happening in that timeframe (if say the average trade time is 2secs). Leaving na or setting 0 to would surely skew the training data as their will be quite a few of those entries.

Should one just use the midpoint return as opposed to transaction return?

HOW AND WHEN ARE HIGH-FREQUENCY STOCK RETURNS PREDICTABLE? by Yacine Aït-Sahalia, Jianqing Fan, Lirong Xue, Yifeng Zhou, NBER Working Paper 30366


  • $\begingroup$ From the mathematical definition in eq. (2.4) of the transaction return: in the denominator, they measure the "average transacted prices " over a span of $\Delta$. For transaction returns the time-interval is not equidistant, as transactions can occur irregularly. You can, however, still sample a lot of 0 returns if the transacted prices are all equivalent over a large time-interval. This will downward bias your models that might use transaction returns. I believe the authors average the transacted price over $\Delta$, to mitigate this effect. It might still happen for "illiquid" assets. $\endgroup$
    – Pleb
    Commented Jul 9 at 15:51
  • $\begingroup$ In terms of choosing a sample scheme, start with something that is simple and "intuitive" to get yourself going with your replication project. Calendar-time sampling scheme can be sparsed sampled to yield less 0 returns and mid-price sampling is also very intuitive. Be sure to note the different drawbacks of using these sampling schemes and go back to transaction returns if you deem it necessary later on. $\endgroup$
    – Pleb
    Commented Jul 9 at 16:04
  • 1
    $\begingroup$ Thanks for all the colour. I'm doing this using European stock tick data, where even the bluechips are significantly less liquid than in the US. This is why if I sample the orderbook at certain timestamps (fractions of a second, such as a 200ms to 400ms time clock interval), there likely isn't a trade in that interval, hence no transaction return metric for a significant portion of the data. An idea could be to create the Δ by multipliers of Average Time Between Trade, or to use mid data, mid price, which will likely be populated at the low time intervals the paper considers. $\endgroup$ Commented Jul 10 at 6:42
  • $\begingroup$ Also, equation 2.4 seems to again look at transaction as the denominator, so it is txn-to-txn return, meaning for most of the data (which is quotes, and not trades), this metric would not be applicable, which seems counterintuitive. I would have imagined it would be mid price (for all quotes and trades in the orderbook) vs the avg price of the transaction in the next x seconds following the row (whether it be a trade or a quote). But evidently not - or am I understanding this incorrectly? $\endgroup$ Commented Jul 10 at 7:42
  • $\begingroup$ It is slightly unclear to me how $P_T$ is defined. However, I would assume it's the transacted price at time $T$, making the transaction returns purely based on transaction data (and not mid-price or quotes). :-) $\endgroup$
    – Pleb
    Commented Jul 11 at 6:26


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.