Stock market. Stocks. Speed of trade order execution. - page 20

Andrey Miguzov #:

It just won't download via chrome, I downloaded via edge. Just change the extension back - the site engine won't let you load dbf files.

Why do you need it? Isn't it written at the link +-40%? And there as far as I remember a very small percentage begins with a discrete auction and suspension then? But I haven't got into it yet. My head is already square - I'm trying other strategies without direction...


Andrey Miguzov #:

Discrete auction of a trading period


Before the introduction of the discretionaryauction technology, if the current share price deviated from the set limits, trading in the security was suspended for 30 minutes. This situation was inconvenient for bidders, as during the suspension they could not adjust their positions on the instrument in a highly volatile environment.
The introduction ofa discrete auction instead of a 30-minute suspension solved the problem.

Period during which a discrete auction can be held

A discrete auction is held in the T+ Main Trading Mode ("T+2") or in the PIR Shares -T+ Main Trading Mode:

  • for a single stock or DR from the list of securities for the calculation of the IMOEX Index (in case the current price of one security deviates more than ±20% from the previous day's closing price)
  • - simultaneously for all shares and DRs (in case of deviation of IMOEX Index over ±15% from closing price of the main session of the previous trading day)

Total time of each discrete auction series is 30 minutes; each series consists of 3 discrete auctions of up to 10 minutes each.

Running times:

  • 07:10:00 - 16:39:59 Moscow time (for stocks and DRs with a morning session)
  • 10:10:00 - 16:39:59 Moscow time (for stocks and DRs without morning session)

Checked it, seems to be true, however Quick wrote 876.3


//| Expert Chaeck spot limit price function                          |
bool CheckSpotLimit(const double in_price)
  double close_price = SymbolInfoDouble(Symbol(), SYMBOL_SESSION_CLOSE);
  double max_price = close_price + close_price/100.0 * 20.0; 
  double min_price = close_price - close_price/100.0 * 20.0;
  if((in_price <= max_price) && (in_price >=min_price)) return(true);