SYSTEM AND METHOD FOR PRIORITIZING TRANSMISSION OF TRADING DATA OVER A BANDWITDH-CONSTRAINED COMMUNICATION LINK
20210105215 · 2021-04-08
Inventors
Cpc classification
H04L47/24
ELECTRICITY
H04L41/0823
ELECTRICITY
H04L47/2475
ELECTRICITY
International classification
Abstract
A method, a processing device and a computer-readable medium are provided for prioritizing trading data transmission over bandwidth-constrained communication link. The method comprises comparing fields of records indicative of the current states of securities of interest with corresponding fields of one or more previous records for said securities. The records are associated with securities being traded or to securities whose prices are being used for trading. The method comprises calculating variations of the fields and assigning priorities to the different securities of interest, based on the calculated variations, and sending fields characterizing the current state of the securities having the highest priorities over the bandwidth-constrained communication link, up to bandwidth capacity, to a remote computing device. The remote device can thereby receive in priority trading data associated with securities having the most significant or impactful variations.
Claims
1. A computer implemented method for prioritizing transmission of trading data over a bandwidth-constrained communication link between first and second processing devices, the trading data being received at the first device and sent toward the second device, remote from the first device, the method comprising the steps of: receiving at least one trading data feed at the first device, from one or more sources of trading data, each trading data feed comprising a plurality of records, the records being associated with securities being traded, each record comprising fields that are indicative of a current state of a given security; comparing the fields of record relating to securities of interest with corresponding fields of one or more previous records for said securities and calculating variations of said fields; sending fields characterizing the current state of the securities having the highest priorities over the bandwidth-constrained communication link, up to bandwidth capacity, to said second computing device, the priorities being assigned as a function of the variations calculated, said method thereby allowing the second device to receive in priority trading data associated with securities having the most significant variations.
2. The computer-implemented method according claim 1, wherein the at least one trading data feed comprises L1 (Level 1) or top of book trading data feed and/or L2 (Level 2) trading data feed.
3. The computer-implemented method according to claim 1, wherein the at least one trading data feed received at the first device comprises one or more full depth (L3) trading data feeds, the method further comprising a step of creating a book of orders from the one or more full depth trading data feeds received.
4. The computer-implemented method according to claim 1, wherein the fields of the records received at the first device comprise: top of book bid price, top of book ask price, top of book bid volume and top of book ask volume.
5. The computer-implemented method according to claim 4, wherein the fields of the records received at the first device further comprise one or more of: the last traded price and the last traded volume; ticker/security symbol, quote time, exchange identity, an indication of a completed trade, notifications of corrections and/or admin messages.
6. The computer-implemented method according to claim 5, wherein calculating variations comprises at least one of: calculating a bid price decrease or increase; calculating an ask price decrease or increase; calculating a bid volume decrease or increase; calculating an ask volume decrease or increase; calculating a last traded price decrease or increase; calculating a last traded volume decrease or increase; and calculating a daily turnover volume increase or decrease.
7. The computer-implemented method according to claim 5, comprising a step of identifying, from the at least one trading feed, records relating to securities of interest by verifying an identifier field of a given record and matching it to an identifier of a predetermined list of identifiers.
8. The computer-implemented method according to claim 7, wherein the step of assigning priorities to the securities of interest is also based on a list in which the securities of interest are ordered from the security having the most level of interest to the security having the least level of interest.
9. The computer-implemented method according to claim 1, wherein the step of assigning priorities to securities of interest is performed using a 2-dimensional matrix, said 2-dimensional matrix comprising a first dimension corresponding to an amplitude of the calculated variations and a second dimension corresponding to a type of variations, the type of variations including a price variation or a volume variation.
10. The computer-implemented method according to claim 1, wherein the step of assigning priorities to securities of interest is performed using a 3-dimensional matrix, said 3-dimensional matrix comprising a first dimension corresponding to an amplitude of the calculated variations; a second dimension corresponding to a type of variations, the type of variations including a price variation or a volume variation; and a third dimension corresponding to the level of interest of the securities.
11. The computer-implemented method according to claim 1, wherein the step of assigning priorities to securities of interest is performed using a plurality of different matrices.
12. The computer-implemented method according to claim 1, wherein rules are set to assign a higher priority to securities having price variations over volume variations.
13. The computer-implemented method according to claim 1, wherein rules for attributing the priorities to the different securities of interest are configurable and/or adaptable.
14. The computer-implemented method according to claim 1, comprising a step of continuously determining the remaining available bandwidth of the bandwidth-constrained communication link, and adjusting the number of current state records to be sent over the first communication link based on the remaining available bandwidth determined.
15. The computer-implemented method according to claim 1, wherein a second bandwidth-constrained link is provided between the first and the second device, the second bandwidth-constrained link being less constrained that the first communication link, the method further comprising a step of sending the current state fields relating to securities having been assigned a priority to the second constrained-bandwidth link, when the first bandwidth-constrained communication link is full.
16. The computer-implemented method according to claim 1, wherein an unconstrained link is provided between the first and the second device, the method further comprising a step of sending all current state fields of the securities of interest on said unconstrained communication link.
17. The computer-implemented method according to claim 1, wherein the first bandwidth-constrained communication link is a radio-frequency link, and the second communication link is a fiber optic communication link.
18. A processing device for prioritizing transmission of trading data over a bandwidth-constrained communication link toward a second device, the trading data being received at the processing device and sent toward the second device, remote from the computing device, the computing device comprising: an input port for receiving at least one trading data feed from one or more sources of trading data, each trading data feed comprising a plurality of records, the records being associated with securities being traded, each record comprising fields indicative of a current state of a given security; one or more processing means; a storage medium for continuously updating fields indicative of the current and previous states of the respective securities; additional storage medium for storing a prioritization logic module comprising instructions for: comparing the fields of records indicative of the current state of securities of interest with corresponding fields of records indictive of their previous state and calculating variations of said fields; assigning priorities to the different securities of interest, based on the variations calculated; an output port for sending fields characterizing the current state of securities having the highest priorities over the first bandwidth-constrained communication link, up to bandwidth capacity, to said second computing device, said computing device thereby allowing the second device to receive in priority trading data associated with securities having the most significant variations.
19. The computing device according to claim 18, wherein the storage medium comprises 2-dimensional matrix which is continuously updated, said 2-dimensional matrix comprising a first dimension corresponding to an amplitude of the calculated variations and a second dimension corresponding to a type of variations, the type of variations including a price variation or a volume variation, rules being set for assigning higher priorities to securities having price variations with an amplitude above a given threshold.
20. The computing device according to claim 18, wherein the additional storage medium comprises a budgeter module, for continuously determining the remaining available bandwidth of the bandwidth-constrained communication link, and for adjusting the number of current state records sent over the first communication link based on the remaining available bandwidth determined.
21. The computing device according to claim 18, wherein the prioritization logic module comprises instructions for calculating variations, said variations comprising at least one of: a bid price decrease or increase; an ask price decrease or increase; a bid volume decrease or increase; an ask volume decrease or increase; a last traded price decrease or increase; and a last traded volume decrease or increase.
22. The computing device according to claim 21, wherein the prioritization logic module comprises instructions for assigning priorities to the securities of interest based on a list wherein the securities of interest are ordered from the security having the most level of interest to the security having the least level of interest.
23. A computer-readable medium storing a prioritization logic module comprising instructions executable by a processor for: comparing fields of records indicative of the current states of securities of interest with corresponding fields of one or more previous records for said securities, said fields being contained in records received on at least one trading data feed, transmitted by one or more sources of trading data, each trading data feed comprising a plurality of records, the records being associated with securities being traded; and calculating variations of said fields and assigning priorities to the different securities of interest, based on the calculated variations of said securities, for sending fields characterizing the current state of the securities having the highest priorities over a bandwidth-constrained communication link, up to bandwidth capacity, to a remote computing device, thereby allowing the remote device to receive in priority trading data associated with securities having the most significant variations.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
DETAILED DESCRIPTION
[0056] In the following description, similar features in the drawings have been given similar reference numerals and, to not unduly encumber the figures, some elements may not be indicated on some figures if they were already identified in a preceding figure. It should be understood herein that the elements of the drawings are not necessarily depicted to scale, since emphasis is placed upon clearly illustrating the elements and interactions between elements.
[0057] In the present description, the term “security” refers to a financial instrument or an aggregate of financial instruments having a monetary value. Securities may include, but are not limited to: cash and/or derivative instruments, stocks, commodities, bonds, futures, options, exchange traded funds, contracts, debt-based instruments, equity-based instruments, financial indices, including for example indices that provide a measurement of sections of a stock market, etc.
[0058] The term “trading data” refers to data relating to, defining or characterizing securities. “Trading data” can comprise values corresponding to the previous state or the current state of a security, including for example previous or current “top of the book” bid price, bid volume, ask price and ask volume. “Trading data” can also comprise information on completed transactions, date and time of transactions, exchange identifiers, security identifiers such as ticker symbols, correction notices and/or administrative messages. Trading data may also be referred to as “market data” or “financial data”. Depending on the source of trading data, the data format may differ. An “order” corresponds to an offer to buy (Bid) or sell (Ask) a security. Orders flow into the exchange and are inserted into a sorted “book” of orders, triggering the publication of one or more events on the financial data feeds. The highest bid and the lowest ask are referred to as the top of the book or the best book order.
[0059] A “record” is to be understood as an object or a data structure that “holds” or “contains” a group of values relating to a given security or financial instrument. Records contain different fields, such as a security codes, bid or ask prices, bid or ask volumes, dates, market period, etc., as examples only. Fields of records are typically only stored temporarily, as they are continuously updated, and can be transmitted or saved in database tables, arrays, files (such as ASCII, ASC, .TXT, .CSV, .XLS, etc.) and can transit in memory, such as registers, cache, RAM or flash memory, as examples only. The different fields can include numeral, date or character values.
[0060] A “trading data feed” corresponds to a flow of trading data incoming or outgoing from a processing device. Trading data feed can be generated by different sources of trading data, including for example by the processing devices of the different exchanges, financial institutions, but also trading data vendors, aggregators or normalizers, including for example Bloomberg, Interactive Data Corporation, Cbonds, iQFeed, eSignals, and the like. Trading data feed can include L1, L2 or L3 data feeds, as in commonly known in the field, where an L3 feed comprises the full depth of the book, i.e. the orders for all securities; an L2 feed comprises the top of book (BBO) and also the 5 to 15 closest price levels, each level including the orders for the same bid price or ask price, and the corresponding aggregate volume per price level. An L1 feed comprises only the highest bid and lowest ask prices and corresponding number or volume. The volume can correspond to the number of shares, contracts or units available for sale at the ask price or for purchase at the bid price.
[0061] The term “processing device” encompasses computers, servers, NIC (network interface controllers), switches and/or specialized electronic devices which are involved in the trading process, and which receive, process and/or transmit trading data. “Processing devices” are generally part of “trading systems” and include processing means, such as microcontrollers and/or microprocessors, CPUs or are implemented on FPGAs, as examples only. The processing means are used in combination with storage medium, also referred to as “memory” or “storage means”. Storage medium can store instructions, algorithms, rules and/or trading data to be processed. Storage medium encompasses volatile or non-volatile/persistent memory, such as registers, cache, RAM, flash memory, ROM, as examples only. The type of memory is of course chosen according to the desired use, whether it should retain instructions, or temporarily store, retain or update data.
[0062] The term “communication link” (or “telecommunication link”), refers to communication channels connecting two or more processing devices. Communication links may encompass physical layers and/or logical layers, and the associated telecommunication equipment(s), involved or required in transmitting or receiving data between processing devices or nodes. A communication link encompasses wire, cable, radio, optical or other electromagnetic links. The physical transmission medium can include optical fibers, planar transmission lines and waveguides, coaxial cables, air, vacuum, and other media or structures through which electromagnetic waves (radio waves, microwaves, infrared radiation, visible light, etc.) can travel. Communication links can be characterized as a function of their bandwidth, i.e. the maximum throughput of the link—typically in bits/second; as function of their actual throughput, which is the actual rate of data being transferred, and which is typically less than the bandwidth; as function of the latency or time delay for the signal to travel from the sender to the receiver (depends of the propagation speed, and processing time at nodes traversed by the signal); as function of jitter (signal irregularities); and as a function of transmission errors and signal losses. Some communication links may be more bandwidth-constrained than others, and while the signal propagation speed may be high (or the latency low), the bandwidth or maximum throughput can be limited, for lack of availability or for cost reasons.
[0063] In the present description, and unless stated otherwise stated, the terms “connected”, “coupled” and variants and derivatives thereof refer to any connection or coupling, either direct or indirect, between two or more elements. The connection or coupling between the elements may be mechanical, physical, operational, electrical or a combination thereof.
[0064] Referring to
[0065] The trading data feed(s) received at the first processing device 60 may be unprocessed (raw) or processed trading data feed(s). In either case, the trading data feeds are typically received as a continuous stream of data, wherein the data is structured as “records”, i.e. as sets of data relating to securities being traded. A “record” typically concerns a single security. In this exemplary embodiment, the first processing device is connected, either directly or indirectly, to a telecommunication equipment 80, including for example routers, high speed switches, nodes and the like, which in turn can be connected to optical fibers and/or radio antennas via communication ports, the different ports being indicated by reference numbers 84, 86 and 88 in
[0066] Still referring to
[0067] Given that the bandwidth of link 54 is unconstrained, all of the trading data received at the first processing device 60 can be sent thereon. However, for trading data transmission over bandwidth-constrained communication links, such as links 50 and 52, the proposed system and methods described hereinbelow consists in sending only trading data of most interest on said link(s). While it is known to filter trading data based on the security name or ticker symbol, the proposed method improves on existing methods and systems by prioritizing the trading data sent over the bandwidth-constrained communication link, based on the values or fields contained in said trading data. Instead of simply filtering the trading data to identify records relating to securities being tracked, and send this filtered trading data over a faster, high-cost communication link, regardless of whether there has been some relevant variations or activity for said securities, the present method and system proposes to analyse the trading data at the first processing device so as to identify unusual or large variations in prices or volumes, and send those records on the bandwidth-constrained link only when they are worth communicating. All of the trading data can still be sent entirely on the unconstrained-bandwidth link, but the proposed method and system allows for the second device to receive in priority the trading data associated with securities having the most significant variations, and which should be communicated in priority to the second processing device, as this information is key for executing trading entity's strategy, which can be used by a financial institution to fulfill market making duties, for example. In contrast with existing filtering methods, wherein trading data with no or very little changes is sent nonetheless, simply because it is tagged as a security being tracked, the present method and system allows to truly optimize use of bandwidth-constrained communication link by sending thereon trading data which includes information most relevant for timely executing the trading strategy.
[0068] The proposed method and system will be explained in more detail with reference to
[0069] As mentioned previously, given that millions of trading orders are processed daily at exchanges, the top of book is continuously updated. In cases where the trading data feed already includes L1 (top of book)_trading data only, the step of creating/updating the top of book is not required. In the example illustrated in
[0070] Now referring to
[0071] In order to determine whether the updated field of a given security is worth sending over the bandwidth-constrained communication link, variations of said fields are continuously calculated, and compared with previous values for said fields. Calculating variations can comprises at least one of: calculating a bid price decrease or increase; calculating an ask price decrease or increase; calculating a bid volume decrease or increase; calculating an ask volume decrease or increase; calculating a last traded price decrease or increase; and calculating a last traded volume decrease or increase.
[0072] A two-dimensional matrix, schematically illustrated in table 272, can be used to assign priorities to the securities. The matrix comprises a first dimension corresponding to an amplitude of the calculated variations and a second dimension corresponding to a type of variations, the type of variations including for example price variations and/or volume variations, which may be positive or negative variations on the bid. Based on the different rules set forth for the type of variation, the type of security and the amplitude of the variations, securities will be assigned different priorities. It is also possible to set priorities based on other factors, such as completed transactions, date/time of transactions, etc. Fields relating to said securities, which characterizes their current state, are sent over the bandwidth-constrained link 50. It will be noted that while on the right side of
[0073] A three-dimensional matrix can also be used to assign priorities to securities. The matrix could for example comprise a third dimension corresponding to the level of interest in predetermined securities, as indicated in table 280′. In this case, if securities ABC and KYZ have both been subjected to bid price decreases of a similar amplitude, the fields/trading information of security ABC will be sent over link 50 in priority over KYZ, since in table 280′, security ABC is assigned a higher priority than security KYZ. The fields/trading information of security KYZ may only be sent if there remains available bandwidth on link 50 and will otherwise be sent over a less bandwidth-constrained link, such as link 52 or over the unconstrained bandwidth link 54. This process allows that fields related to security ABC be sent in priority over security KYZ, such that the second/remote processing device will receive the state information of security ABC before the state relating to security KYZ, in line with a trading strategy according to which it has been decided that security ABC was of more importance over KYZ.
[0074] Additional factors/dimensions can be used to determine the priority to assign to a given security and multidimensional matrices of priorities can be used as well. For example, it is possible to set the priorities using a plurality of matrices, in order to segment the securities into different “tiers” or “categories”, to avoid not having any trading data sent on the bandwidth-constrained link. The rules for determining the priorities can be set such that securities can be sorted in a given category, but without superseding a higher priority category. For example, the rules can be set such that a large variation in an irrelevant stock is still considered of less priority than a small variation for a security listed on a given financial index, such as the SP500.
[0075] Referring to
[0076] Still referring to
[0077] In a possible implementation, the budgeter 614 successively scans the different categories and transmits the fields of records classified in the category of highest priority, followed by those having the second highest priority, and so on, until the bandwidth capacity of the first bandwidth-constrained communication link has been reached. Fields associated with security records having been assigned a higher priority are thus communicated over the communication link offering lower latency until up to bandwidth capacity, for a given period. When the bandwidth capacity of the first communication medium is reached, the records having the next highest priority can be communicated over an available second communication link offering higher latency than the first communication link but lower latency than the bandwidth-unconstrained link until the bandwidth capacity of the second communication link is reached, and so on. In any case, all of the trading data received can be transmitted over the unconstrained-bandwidth communication link, as is usual.
[0078] As trading data is received by the prioritization logic module, new bid and ask orders may become the new best book order and their price and volume fields are compared with the previous best book order. For example, the prioritization logic module 612 may identify in a security record and update for a new buy order for X security at the price of Y. It will then label the record as the new highest bid (best book order) and compare the volume (Y) and/or price (X) of this buy order update (bid) with the previous highest bid (or previous best book order). After said comparison, if the current state of the security indicates a bid price decrease, the record is labeled as a “bid price decrease” and classified in this category with other records subjected to bid price decrease.
[0079] As mentioned previously, the proposed method allows a remote device to receive in priority trading data associated with securities having the most significant variations. For example, a financial institution may want to avoid a series of events leading to a situation where a market making strategy relies on the bid or ask price of a security traded on an exchange in city A to set the right bid or ask price for an associated derivative security traded on an exchange in city B, and for which both prices are not aligned for an extended period of time. If the bid or ask price of the commodity traded in city A experiences a large variation, the financial institution will want to receive this information quickly in order to remove any order placed at the previous bid or ask price for the derivative security traded in city B. Hence, if such any order is canceled quickly enough, strategies of competitors may not be able to trade against the financial institution at an outdated price and incur losses to the financial institution. As can be appreciated, it is important for the financial institution to receive financial data related to bid price variations as early as possible and this type of financial data should be prioritized, when available, on a direct link, for example a limited bandwidth radio frequency channel or link.
[0080] Referring now to
[0081] Still referring to
[0082] In order to use the records for the execution of a trading strategy, a book of orders, or a top of book, is maintained and needs to be recreated and updated at the second processing device 62 by using both the priority trading data transmitted over a bandwidth constrained communication link and the continuous steam of trading data transmitted over the unconstrained-bandwidth communication link. In implementations where the trading data received at the second processing device 62 is derived from L3 feeds, the second processing device continuously recreates or updates a book of orders. In other implementations, the trading data received at the second processing device may be derived from L1 feeds. In this case, the second device 62 needs nonetheless to recreate/update its top of book, since the L1-derived trading data is received at the second device with different latencies, from the different communication links.
[0083] The book of orders, or the top of book, may be recreated and updated at the second processing device 62 according to the quote time comprised in the fields of each trading data record transmitted over the bandwidth constrained or unconstrained communication link. Depending on the instructions stored in the prioritization logic module of the first processing device, the book of orders, or the top of book, may be updated more frequently with a specific type of trading data records having a more recent quote time value. For example, it could be decided that records related to a bid price variation of 5% or more for security ABC must be transmitted in priority to the second processing device over a bandwidth constrained communication link 52, 54. Therefore, the top of book recreated and updated at the second processing device 62 may be updated more frequently with more recent bid prices records representing a variation of 5% from the current bid price having a quote time closer to the current time. On the contrary, any trading data records representing a variation of the ask price or a variation of less than 5% of the bid price for security ABC, may be transmitted over the bandwidth unconstrained communication link 50. Therefore, the top of book recreated and updated at the second processing device may be updated with older trading data records representing a variation of the ask price or a variation of less than 5% of the bid price for security ABC and having a quote time farther from current time. When the top of book is updated with bid price variation records transmitted over the unconstrained bandwidth communication link, it may be explained by a lack of bid price variations of 5% or more since the last bid price update, or by the presence of trading data records having higher priority level assigned by the prioritization logic module, such that there is no available bandwidth on the bandwidth constrained communication link since the last bid price update.
[0084] In a more precise example and referring to
[0085] According to other possible embodiments, completed trades may be prioritized over state variations, since a completed trade may subsequently lead to a variation of the top of book for the security that has been traded. In such a scenario, records labeled or categorized as “completed trades” are transmitted by the prioritization logic module before other records subjected to price or volume variations. Financial institutions or trading entities may then have the ability to predict subsequent variations of the top of book before it actually happens.
[0086] With reference to
[0087] Of course, numerous modifications could be made to the embodiments described above without departing from the scope of the present disclosure.