Exemplary embodiments of the invention will now be described in conjunction with the following drawings, by way of example only, in which:
a shows an example embodiment a visual representation of
b shows a further embodiment of an aligned surface of
a shows a further embodiment of the visual representation of
b shows a further embodiment of the visual representation of
c shows a further embodiment of the visual representation of
a shows an example visual representation of the system of
b is a further embodiment of the visual representation of
c is a further embodiment of the visual representation of
a is a further embodiment of the visual representation of
b is a further embodiment of the visual representation of
a is a further embodiment of the visual representation of
b is a further embodiment of the visual representation of
Referring to
As further described below and with reference to
It is recognized that the dimensional aspect of the data 14 displayed on the aligned surfaces 18 can be as shown (e.g. three relative axes in three spatial dimensions) or can be shown (see
In any event, it is recognized that the volume of the executed trading activity is directly embedded in the trading activity of the surface 18, for either two or three dimensional representation 10 depictions, along with an indication of price of the executed trades. Further, it is also recognized that the order book 204 surface 18, for open market orders (i.e. offers to buy or sell an amount (i.e. volume) of the financial instrument), is also aligned by the price scale in common with the surface 18 for the trade activity 206, wherein the portrayal of trade volume for each of the surfaces 18 is aligned (e.g. in common) also along the volume scale (in either two or three dimensions). Further, the visual representation 10 of the tool 12 is continually updated for the shown data 14 with respect to time, i.e. the time scale is continually updated in a conveyor belt fashion, as further described below. As well, the positions of the individual orders on the order book surface 18 with respect to the price scale 200, as well as the magnitude of the volumes (e.g. height of bars in
Referring to
Accordingly, the tool 12 can be used by the users for assisting in the making of trade decisions (i.e. purchase, hold, sell) for each of the financial instruments displayed in the visual representation 10, e.g. for facilitating optimized timing of trade decisions in the market(s). It is recognised that network components 101, 15, 17 (see
The tool 12 is configured for facilitating the purchase and sale of the financial instruments of investment portfolios for one or more investing entities (e.g. users such as an individual, fund manager, etc.). The tool 12 can be used for generating reports 19 on the trading activity of one or more of the selected financial instruments represented by the data 14. The report 19 can include trade activity information such as but not limited to time period snap shots of the trading activity for one or more selected financial instruments—portrayed by the aligned display surfaces 18, derived trading statistics that is representative of one or more tracked trade quantities supplemented with the corresponding trade data 14 visualized on the display surfaces 18, etc. The report 19 can also include selected (either manually and/or automatically) available additional information 30 associated with the financial data 14 represented by visual elements in the visual representation 10. It is recognised that the report 19 can be provided as an electronic document and/or as a printed hard copy document, as desired.
The reports 19 can include financial data 14 information such as but not limited to: company name; financial instrument symbol (e.g. issue/trading symbol); trading activity for financial instrument price and corresponding times/dates (e.g. closing prices, midday prices, hourly prices, etc.) and volume with corresponding volume times/dates (e.g. closing volume, midday volumes, hourly volumes, etc.); average price of financial instruments of a particular class/category/sector for a particular time period; usual minimum trade quantity for financial instruments 12 in a particular class/category/sector; identity of traders for included trades; available trading statistics; available statistics on companies represented by the trades; and order book statistics (e.g. data related to price-volume for non-executed buy and sell orders).
Financial markets can be defined by their characteristic nature of providing periodic/dynamic exchange-based valuation events. An example of the periodic/dynamic exchange-based valuation events are fluctuating or otherwise dynamically changing daily/real-time numbers for the volume and/or pricing, such as prices/volumes for buy/sell/bought/sold trading activities for financial instruments that are in the market environment handled as derivatives. Other periods can be weeks, months, quarterly, annual, etc. Any financial instrument traded in a public exchange can be connected to an underlying asset/liability of the issuing commercial entity (e.g. company) as a derivative. In general, the financial instrument data 14 is representative or financial instrument performance in a marketplace, in terms of price, time, and volume data characteristics. For example, the timing aspect of the data can be representative of the actual real-time (subject to any reporting delay) trading activity of a financial instrument (e.g. certain price for a certain volume occurring at a certain time), any historical trading activity of the financial instrument, and any future anticipated/desired trading activity of the financial instrument (e.g. order book data representing pending offer and sell trades not yet enacted).
The financial instrument data 14 can be from one or more sectors, such as but not limited to: trusts; oil and gas; energy related; food related; REIT; business; funds (e.g. diversified); selected stock exchanges or portions of stock exchanges (e.g. S&P/TSX 60 equities); and selected financial instrument types (e.g. Canadian bonds). The type of financial instrument data 14 can include financial instruments such as but not limited to, for example securities or security classes such as: common shares; preferred shares; debentures; convertible debentures; partnerships; closed trusts; open trusts; and exchange traded fund of funds. It is recognised that the markets are configured to provide a pricing mechanism for the financial instruments involving a series of pricing events (e.g. periodic/dynamic exchange-based valuation events) for each of the financial instruments that are available for selected periods of time, i.e. prices of individual financial instruments on the market are published or otherwise made available repeatedly (e.g. price of a stock with changes thereto posted in real-time with the ability to obtain past prices) as the financial instrument data 14.
For example, the scope of financial instruments can include: sectors; the market(s) involved; the type of financial instruments desired (e.g. all types, shares, debentures, partnerships, trusts, funds, etc.); particular financial instruments, a range of financial instruments within a chosen class/category, and/or sectors (e.g. selected companies, all Canadian stocks, all blue chip companies, etc.); and identification of company-issue in a number of dimensions such as fundamental descriptors (e.g. company/SEDAR name).
A book order of the order book 204 data can be defined as a request to buy or sell a certain volume of a security (e.g. financial instrument) at a specified/best available price. Most book orders executed on exchanges are referred to as market orders. The order book 204 can be defined as a record of unexecuted book orders which is maintained by specialists. These book orders are typically treated in terms of priority of execution. The book order to buy or sell a security, usually at a specified price, typically remains in effect until the order is either executed (i.e. committed) or cancelled. For example, the NYSE permits messages, as well as the book orders, to buy some amount of the financial instrument at current market prices. The OptiMark system of the Pacific Stock Exchange also allows traders to submit a message indicating the strength of the traders' desire to transact an amount of stock at a particular price, i.e. a book order. Types of book orders can be orders such as but not limited to: day order, stop order, limit order, market order, and stop loss order. Further, it is recognised that in most computerized markets, traders submit book orders to a central limit order book 204, and a mathematical algorithm determines prices and quantities.
The acceptance of a bid or offer (i.e. sell book order) by another trader (i.e. as a buy book order) generates a transaction, otherwise known as a trade. The trade can be a verbal (or electronic) transaction involving one party buying a security from another party. Once the trade is consummated, it is considered “done” or final. For example, settlement can occurs 1-5 business days once the trade has been executed (e.g. a committed trade). It is recognised that the book orders are displayed on the surface 18 representing the order book data 204, while the executed trades are displayed on the surface 18 representing the trading activity 206.
Referring to
The user interface 108 can include one or more user input devices such as but not limited to a QWERTY keyboard, a keypad, a trackwheel, a stylus, a mouse, and a microphone. The visual interface 202 is considered the user output device, such as but not limited to a computer screen display. If the screen is touch sensitive, then the display can also be used as the user input device as controlled by the processor 104. Further, it is recognized that the data processing system 100 can include a computer readable storage medium 46 coupled to the processor 104 for providing instructions to the processor 104 and/or the tool 12. The computer readable medium 46 can include hardware and/or software such as, by way of example only, magnetic disks, magnetic tape, optically readable medium such as CD/DVD ROMS, and memory cards. In each case, the computer readable medium 46 may take the form of a small disk, floppy diskette, cassette, hard disk drive, solid-state memory card, or RAM provided in the memory 102. It should be noted that the above listed example computer readable mediums 46 can be used either alone or in combination. Further, it is recognized that the visualization tool 12 is an example embodiment of a financial instrument data 14 viewer application, which can contain a number of modules for implementing the various attributes and functionality associated with visualization of the data 14, as described with reference to
The devices 101 include a network connection interface 107, such as a network interface card or a modem, coupled to the device infrastructure 111. The connection interface 107 is connectable during operation of the devices 101 to the network 11 (e.g. an intranet and/or an extranet such as the Internet), which enables the devices 101 to communicate with each other, report requestors 17, and with data sources 15 for obtaining available financial instrument data 14. The network 11 can support the communication of the reports 19. Referring again to
It is recognised that the report requestor 17 can also be the user of the device 101 hosting the tool 12, for example where the tool 12 is embodied as a local financial application executing on the user's device 101 and accessing the financial data 14 locally and/or remotely. Otherwise, the report requestor 17 can be the user of a remote device 101 that is connected to another device 101 hosting the tool 12 (e.g. client-server relationship), for example where the tool 12 is embodied as a remote financial application executing on a server device 101 in contact with the user device 101 over the network 11. In the client-server relationship, the tool 12 can be configured to access the financial data 14 locally and/or remotely.
Referring again to
Further, it is recognized that the computing devices 101 can include the executable applications (e.g. one embodiment of the tool 12) comprising code or machine-readable instructions for implementing predetermined functions/operations including those of an operating system, a web browser, for example. The processor 104 as used herein is a configured device and/or set of machine-readable instructions for performing operations as described by example above. As used herein, the processor 104 may comprise any one or combination of, hardware, firmware, and/or software. The processor 208 acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information with respect to an output device. The processor 104 may use or comprise the capabilities of a controller or microprocessor, for example. Accordingly, any of the functionality of the system 100 may be implemented in hardware, software or a combination of both. Accordingly, the use of a processor 104 as a device and/or as a set of machine-readable instructions is hereafter referred to generically as a processor/module for sake of simplicity. Further, it is recognised that the system 100 can include one or more of the computing devices 101 (comprising hardware and/or software) for implementing the modules, as desired.
It will be understood that the computing devices 101 may be, for example, personal computers or workstations. Further, it is recognised that each device 101, although depicted as a single computer system, may be implemented as a network of computer processors, as desired.
It will be understood by a person skilled in the art that the memory/storage 102 described herein is the place where data is held in an electromagnetic or optical form for access by the computer processor 104. There can be two general usages: first, memory is frequently used to mean the devices and data connected to the computer through input/output operations such as hard disk and tape systems and other forms of storage not including computer memory and other in-computer storage. Second, in a more formal usage, memory/ storage 102 has been divided into: (1) primary storage, which holds data in memory (sometimes called random access memory or RAM) and other “built-in” devices such as the processor's L1 cache, and (2) secondary storage, which holds data on hard disks, tapes, and other devices requiring input/output operations. Primary storage can be faster to access than secondary storage because of the proximity of the storage to the processor or because of the nature of the storage devices. On the other hand, secondary storage can hold much more data than primary storage. In addition to RAM, primary storage includes read-only memory (ROM) and L1 and L2 cache memory. In addition to hard disks, secondary storage includes a range of device types and technologies, including diskettes, Zip drives, redundant array of independent disks (RAID) systems, and holographic storage. Devices that hold storage are collectively known as storage media.
A database is one embodiment of memory 102 as a collection of information that is organized so that it can easily be accessed, managed, and updated. In one view, databases can be classified according to types of content: bibliographic, full-text, numeric, and images. In computing, databases are sometimes classified according to their organizational approach. The most prevalent approach is the relational database, a tabular database in which data is defined so that it can be reorganized and accessed in a number of different ways. A distributed database is one that can be dispersed or replicated among different points in a network. An object-oriented programming database is one that is congruent with the data defined in object classes and subclasses. Computer databases typically contain aggregations of data records or files, such as sales transactions, product catalogs and inventories, and customer profiles. Typically, a database manager provides users the capabilities of controlling read/write access, specifying report generation, and analyzing usage. Databases and database managers are prevalent in large mainframe systems, but are also present in smaller distributed workstation and mid-range systems such as the AS/400 and on personal computers. SQL (Structured Query Language) is a standard language for making interactive queries from and updating a database such as IBM's DB2, Microsoft's Access, and database products from Oracle, Sybase, and Computer Associates.
Memory/storage 102 can also be defined as an electronic holding place for instructions and data that the computer's microprocessor 104 can reach quickly. When the computer is in normal operation, its memory usually contains the main parts of the operating system and some or all of the application programs and related data that are being used. Memory is often used as a shorter synonym for random access memory (RAM). This kind of memory is located on one or more microchips that are physically close to the microprocessor in the computer.
Referring to
Referring again to
Depicted by example in
Referring again to
Referring to
The visual representation 10 facilitates optimized timing of trade decisions in the market(s), and for implementing trades in the market(s) for those evaluated financial instruments, as desired. It should be recognised that the visual representation 10 of the financial instrument(s) is periodically updated on the information related to the market activity (e.g. number of stocks purchased/sold at what price). Updating of the representation 10 can be done continuously as changes in displayed quantities are detected, e.g. real-time, or for a predefined periodic based update, e.g. time based such as for every two minutes, or action based such as for when new orders/trades over a specified threshold (e.g. volume/price) are detected. It is recognised that in updating of the financial data 14 visually depicted in the visual representation 10, changes in the visual elements would be detectable by the user, changes such as but not limited to: size of the visual elements (e.g. due to scale change of the volume axis 200d); location of the visual elements on the surfaces 18 (e.g. due to changes in scale of the time axis 200a), number of visual elements on the surfaces 18 (e.g. due to addition/deletion/changes to trades/orders); and/or scale of the axes 200 (e.g. changes to numerical labels).
Accordingly, with this single representation 10, the user can see both the current level of activity by buyers and sellers, the movement of the market over the course of the day, and/or the price levels that are sustainable with significant volume. The user/viewer does not need to look at multiple misaligned charts, compare different labels and do mental arithmetic comparisons for different scales of different misaligned charts for understanding trading activities represented by the financial instrument data 14, at least in part due to the use of one or more common scales 200 between the aligned surfaces 18. These common scales 200 can include such as but not limited to: a time scale 200a for providing a selected or otherwise defined time period for the trading activity 206; a price scale 200b for providing a price range between the order book surface 204 and the trading activity surface 206; a volume scale 200d providing a common volume reference grid for volume magnitudes (e.g. height or other dimension/size of shape object representing volume—e.g. height of bars 314) shown on any of the aligned surfaces 18; and a price scale 200c providing a price range between the volume surface 208 and the trading activity surface 206.
Referring again to
It is recognised that the clustering 310 can be used to represent a number of individual trades 207a,b,c as overlapping/adjacent shapes on the surface 18 for trades such as but not limited to: trades 207a,b,c occurring for the same “time” at slightly different prices; trades 207a,b,c occurring at slightly different times for slightly different prices; and/or trades 207a,b,c occurring at the same time for the same “price”, as desired. Further, it is recognised that the clustering 310 can be shown as additional information 30 (see
Further, it is recognised in
Referring again to
The tool 12 visualizes order book and trade data. The bottom of the representation 10 in
The trade surface 206 section of the representation 10 updates with each new trade shown as a respective 3-D bar (for example) of height specified by the volume of the trade as defined by the volume axis 200d. The trade surface 206 is similar to a price chart—with the long axis 200a indicating time and the shorter axis 200b indicating price. After each update interval as per the update module 410, if there has been a new trade, a new bar 314 will appear at the right end of the trade surface 206 indicating the last trade price. Similarly, as time progresses for each update of the visual representation 10, any older trades that fall outside of the specified time range of the time axes 200a will effectively drop off at the left end of the trade surface 206. Accordingly, the sequence of bars 314 over time shows the trade history (for example for the last 2 and a half hours indicating how the trade price has changed over time), as per the defined range of the time scale 200a. Further, the operation of adding new trades on the trade surface 206 at the right end (e.g. current time) of the time scale 200a, repositioning the individual trades along the trade surface 206 to account for the incremental advance in time, and removing of the oldest trade(s) from the trading surface 206 at the left end (e.g. oldest time) of the time scale 200a, results in the visual effect of a conveyor belt or shifting surface 206 with respect to time for the trades. For example, with a specified static time range of 2 hrs for the time scale 200a, a new trade would appear at the far right of the trading surface 206 at 2 pm, would be at the middle of the trading surface 206 at 3 pm, and would be at the far left of the trading surface 206 at 4 pm. Similarly, all other trades on the trading surface 206 would move/shift with respect to one another, relative to the common time scale 200a (e.g. temporal reference frame).
It is recognised that the time range could be defined as a static value, could be dynamically calculated in relation to trading activity, or a combination thereof. For example, the time range could be specified to vary between 2-3 hrs depending upon the amount (a certain threshold) of trading activity. For example, for stocks with large trading volumes for numerous different trades, the time range could stay close to the lower of the-specified time range (e.g. 2 hours), as compared to thinly traded stocks the time range could extend closer to the higher of the specified time range (e.g. 3 hours) in order to keep a certain volume/number of trades visible in the visual representation 10.
Other features include: the height of each bar 314 indicates the number of shares traded in that interval. A legend 300 at the far right indicates the approximate size of a bar 314 for 500 and 2500 shares. The triangle 304 at the far right of the “SELL” region indicates the last trade price. It can flash red, for example, if the last trade is below the previous trade; and it can flash green, for example, if the last trade is above the previous trade. The back of the representation 10 at the “ACCUMULATED VOLUME” surface 208 shows the total number of shares traded at each price interval since the tool 12 has been running for a specified session. This provides a visual distribution of the price levels that the stock has been trading at; and indicates, for example, which price most of the shares were traded at; as well as which prices had very few shares traded at. It is recognized that the volumes shown in the surface 208 may represent more that what a simple addition is for the volumes of the currently displayed trades in the trade surface 206, thus giving a perspective of trade history other than what is currently shown in the trade surface 206.
Traditionally, people look at trade history 206 separate from the order book 204 data. This would require the viewer to perform label matching and mental arithmetic when comparing these two datasets, when not using the described data visualization environment 1. Accordingly, the representation 10 displays both the order book 204 and the trade 206 data aligned along the price scale 200b and aligned along the volume (number of shares) scale 200d. The viewer does not need to perform label matching because the items are visually aligned, nor mental arithmetic to compare values because the items are at a common scale. The viewer can now visually compare time and volume back and forth between the trades 206 and orders 204. Because visual comparison is typically faster and easier to accomplish than label matching and mental arithmetic, the user can spot patterns of the displayed data 14 more easily than using traditional charts and graphs or quote screens. Visual manipulation of the data 14 with respect to multiple aligned axes 200 is done by techniques such as but not limited to: visual alignment of price axes 200a in orders 204 and trades 206 groups; with use of colored zones to call out the visual relationship when the two scales 200 are different; visual alignment of price axes 200a in trades and accumulated volume; visual alignment of the volume axes 200d in the orders 204 and trades 206 groups; and visual alignment of the volume axes 200d in the trades 206 and accumulated volume 208.
The gap 322 (see
Referring to
Referring again to
Referring to
Referring again to
Examples of the data sources 302 include, for example, sources such as but not limited to selected exchanges (e.g. TSX, NYSE); financial services (e.g. Bloomberg, Thompson); and third party information sources.
The configuration module 402 is for setting up the operation of the tool 12, including desired data 14 format of the representation 10 and range of the axes 200. The module 402 can be responsible for autosizing of the range of the axes 200, for example the maximum physical height of the bars 314 (see
For example, the shared price axis 200b can be a combination of last trade price of the trades 206, number of orders in the order book 204, the range of orders in the order book 206, and/or the range of trade prices of the trades 206 for the period of time shown. Further, the volume axis 200d range can be a combination of the target order at the price in the order book 204, and the largest trade volume of the trades 206 in the price interval represented by the price range. The range for the time axis 200a can be set for a particular number of trades 206, a particular total volume of trades 206, and/or a selected period of time (e.g. morning, day, hour, etc.). For example, for thinly traded financial instruments the time range of the time scale 200b may be more weighted for number of trades/volume, rather than for a more actively traded financial instrument which may be more weighted for a selected time period irrespective of any significant influence on the time range of the actual trading activity.
Accordingly, the determination of the scales for the various axes 200 is calculated so as to enable alignment of the individual surfaces 18 with respect to shared axes 200 between two or more of the surfaces 18. In determination of the scales, characteristics of the data 14 are taken into account, for example from data 14 represented on two of more surfaces 18 sharing a common axis 200.
Further, it is recognised that an algorithm can be used to group orders/trades into regular intervals of the axes 200, so that the common axes 200 show a range relevant to the current data 14 being viewed, and so that it can labelled with nice round numbers (e.g. 3.00 instead of 3.02123) which will facilitate visual comparison, as well as for calculating the ranges of the axes base on dependent variables. Considerations for the algorithm are, for example: we have a target of the ideal # of bins that should be shown (e.g. 40) on a particular axes 200; hinder multiple orders in the same bin; hinder overlap between the inside buy and sell orders; show as many orders as possible; hinder outlier orders skewing the presentation of orders close to the market price; always show the inside orders; minimize the visual changes between data updates (each data update contains an entirely new order book). It is recognized that the binning process can also be controlled so as to facilitate visual clarity of the individual trades occurring on the trading surface 206.
An example algorithm is as follows:
This value is compared to a similar algorithm across a list of trades and the larger number of bins is used. If the difference in the number of bins for the trades is much larger than the number of bins for the orders, then the orders will have an independent order price axis, visually correlated to the trade price axis.
As various orders are added and removed, the axes 200 adjusts its range based on the order book and the recent trades. We want characterize the calculated bin increments that facilitate us to cover the desired range with a number of bins close to the desired ideal
The increment should be a nice number raised to some power of 10: e.g. $1, $0.1, $0.01, $0.05, $0.5, etc . . . , for example
Current nice values allow increments such as 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50 . . .
Given the desired min and max values:
Referring to
Referring again to
The frequency module 404 also determines the generic timing of the financial instrument data 14 updates, as well as potentially the timing for collection of the data 14 from the sources 15. The module 404 can also be responsible for timing the generation/update of the report 19.
The frequency updates is also related to a conveyor belt principle for the stated time range of the time axis 200a. For example, the time range can stay fixed at a specified time period, say 2 hrs give or take 10 minutes depending on dynamic trading data 14 considerations as discussed above, therefore labelling of the time axis 200a will be updated to show the same time range but with different labels indicating the time range extending back from the time of the last trade (e.g. indicated by indicator 311).
Accordingly, the data 14 content of the trade surface 206 of the representation 10 also updates with each new trade. The trade surface 206 is similar to a price chart—with the long axis indicating time 200a and the shorter axis indicating price 200b. After each update interval, if there has been a new trade, a new bar 314 will appear at the right end indicating the last trade price and any bars 314 at the other end of the time axis 200a that fall outside of the specified time range will be removed or otherwise drop off of the surface 206. Accordingly, the sequence of bars 314 over time shows the trade history of particular financial instrument(s).
The report module 408 is configured for assembling calculated measures 300, 302, 304, 306, 308, 310, 311, 312, 313, 314 and snap shots of the representation 10 for inclusion, where appropriate, in the report 19. The module 408 can perform sorting of the selected financial instruments 12 in the report 19 as to which specific financial instruments data 14 are to be included in the report 19, as desired.
In terms of sorting, the report module 408 can group financial instruments by sector or any other defined grouping, as desired.
It is recognised that the modules 125, 400, 402, 403, 404, 408, 410 of the tool 12 can be configured to operate independently of an administrator (not shown) once configured and/or to interact with the user/administrator though the user interface 108 (see
(This application claims priority from U.S. Provisional Application 60/791,219, filed Apr. 12, 2006, herein incorporated by reference.)
Number | Date | Country | |
---|---|---|---|
60791219 | Apr 2006 | US |