Hot answers tagged

5

I am not aware on any rules preventing a too high number of entries at a limit price. Nevertheless you usually have controls for each trader id. A trader cannot have too many orders in the book or send them at a too high frequency. [EDIT] Moreover, on most trading platforms you cannot have orders too far away from the mid (or a reference price like the ...


4

You are usually given an option to either - Request a re-transmission of the messages you missed (through a different channel). Request a snapshot of the current book from a dedicated server. Both are likely TCP based.


3

A lot of people are working on this and at this time a lot of money and investment is chasing this. As a result market microstructure is changing a lot. Liquidity is becoming much less visible. You have stocks that might trade a 100 million shares a day but the sizes you will see in the book at any time in a lit exchange like Nasdaq might not be more than ...


3

My Answer You should set your limit order to: $s (v+1)^{-0.0314192 \sqrt{t}}$ where $s$ is the current price, $t$ is the time in years you're willing to wait, and $v$ is the annual volatility as a percentage. If you want to be $p$ percent sure (instead of 0.98), set your limit order to: $s (v+1)^{-\sqrt{\pi } \sqrt{t} \text{erf}^{-1}(1-p)}$ Of course, ...


3

The round-trip latency from point A to a matching engine at point B can be thought of being comprised of two components: $RTT_{total,A \rightarrow B} = RTT_{network\_transit,A \rightarrow B} + MPL_{matching\_engine,B}$ Where $RTT$ is the round-trip time and $MPL$ is the message processing latency (how long it takes to receive a message and produce an ...


2

To slice up an order you can use several execution strategies. TWAP which will execute small slices of your order over a time period VWAP which will spread your order over time and try to minimize slippage against the vwap benchmark for a given instrument POV which will split your order up into smaller chunks and attempt to keep your order filled as a ...


2

Most of the big players offer a suite of execution algorithms for big orders, as seen in this listing from Credit Suisse. Very generally speaking, the algorithms will have a pedigree going back to volume weighted average pricing schedules, or perhaps to the famous paper by Almgren and Chriss. They have various modifications, including use of "unusual" ...


2

No. 10 shares from Order1 have time priority. The 100 shares of Order2 will trader after 10 from Order1. The 90 hidden shares of Order1 are hidden, and therefore at the back of the queue. When they light, they get in line at the back.


2

Quote: Starting in 2003, the NYSE started disseminating automatically, with a software called autoquote, any change in the best quotes in its listed stocks. Before that specialists had to update manually new inside quotes in the LOB. This implementation considerably accelerated the speed at which algorithmic traders receive information Endquote Source: ...


2

One way to do this is a simple Monte-Carlo simulation. There are formulae you can use to get the likelihood of a stock being below a price if you know the stock's volatility and time frame - see for example this question. For an unknown time frame, the Monte-Carlo method is (IMO) simpler than the mathematics. You would simply run a number of simulations ...


2

Have a look to this paper, the methodology is well defined: Simulating and analyzing order book data: The queue-reactive model, by Huang, L and Rosenbaum. You need first to define properly the events of which you want to estimate the intensity. I would suggest insert cancel trade. Then for each available tick of price $p$ (not each limit): normalize ...


1

This paper is a microstructure paper (http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2185452) that you may be looking at. We will assume the complex dynamics originated by the interaction between sell- and buy- side (limit and market orders) can be modelled in terms of a continuous stochastic process Mt, the microprice, which we assume to be a ...


1

Only the transactions affect the account. See example implementation below. The position and money should be initialized at the beginning. Note that both of them, and also quantity can be positive and negative. public static class PNL { private double position = 0; // number of BTC private double money = 0.0; // USD public double get_position() ...


1

I am not familiar with F#. I have implemented this many times in C++. I would go with fixed length arrays. Fr me performance is paramount. In C++, one is better off handling holes than allocating memory on the heap and add the complexity of a cache miss.



Only top voted, non community-wiki answers of a minimum length are eligible