Skip to content

Release 3 Feature Planning

Lucas Turpin edited this page Feb 12, 2020 · 10 revisions

Based on user feedback from senior quantitative researchers at Squarepoint, we should decide where to put our efforts during Release 3.

Features:

Auto-play messages on the order book

Playback the changes to the order book as if they were happening in realtime, or at a variable speed. This could resemble a "movie" mode where the user does not need to interact and messages are applied to the book at a set speed. This speed could be a number of messages per second or a percentage of real time, i.e. 50% would apply the messages contained in a 0.5s interval every second.

Order Details

Allow users to select an order and see further details about it, such as the time it was last modified, time it was created and the list of messages that affect it.

Simulate submitting an order to the book

Add an order of a given size to a price level on the book and simulate its lifecycle. Interesting observations would include time to first execute, time to full execution or which messages would execute against this order. This could be done in the same form as the Order Details feature detailed above, or by adding an order to the book as part of the user's session data which could then be modified by moving forwards/backwards in time with the existing controls.

Events/Timestamps of interest

For investigation purposes, we could allow importing a set of timestamps of interests (events) with labels. These events would appear on the graph and allow the user to jump to that timestamp to investigate the state of the order book as well as messages around that time.

Tagging/labeling orders

Display tags/labels on some orders. The specific example brought up was tagging orders belonging to Squarepoint, with colors. This could be done at the app level, where the user imports a list of order ids along with a tag name and color from the browser. It could alternatively be done at the service level, where an additional data set is pre-loaded into the database and joined at request time.

Improvements:

Tools to navigate

Few examples:

  • Jumps:
    • to a given time
    • to next message on a given order
    • to next change in top of book (best bid or best ask)
    • to next message with a given message type
    • to next message affecting a labelled order (see above)
    • to next labelled timestamp (see above)
  • Search:
    • For an order id
    • For a given trade size (?)

Layout changes

The message list takes up a lot of space inefficiently. We could move it to the right of the order book component and resize the rest of the layout accordingly to make better use of vertical space. We should keep this in mind when designing our upcoming features to make sure we preserve usability of the app.

Highlight order affected by the next upcoming message

While displaying the order book at a specific point in time, highlight the order that is going to be affected by the next message in time. We could do the same thing for the last message applied with a different highlight. The highlight could a different background, a border, a different font, or a combination of these stylings.

Graph Zooming

We should allow users to change the time interval displayed on the graph by zooming in to more fine-grained intervals, up to nanoseconds. The number of points being displayed on the graph should remain constant as the interval changes.

Not Planned

There are also other features suggested by our stakeholder and users which we currently do not plan on implementing.

Multiple instruments

Display multiple instruments at the same time, potentially displaying both order books next to one another. While the prices would not match, we could align the price-levels based on their distance from the top of book.

Graph overlays

Additional plots on the graph such as "book pressure", "imbalance", moving average, etc. More examples of useful overlays as well as their calculation will come from our stakeholder. Such overlays could also be supported by providing a scripting interface as detailed in #162, with possible example implementations provided.

Average book shape

Display average book shape as an overlay below the orders. More details to come from our stakeholder.

Crossed-book (Auctions)

Support auctions, during which the bids and asks intersect, auctions occur at set times during the day based on the exchange. Unfortunately, our current data source does not allow us to support this.