JTools Table of Contents

Project Location: \JTools_SymChangeAnalyzer

As NxCore is a whole market feed, many Nanex customers will build very sophisticated applications using it. These may include Bar Data servers, Streaming Data servers, Tick Data servers and/or a host of other applications designed to maintain and deliver data to their own customers. The majority of these applications will consist of proprietary databases that are fed with the NxCore stream. In this regard, properly tracking new symbols, or changes to existing symbols becomes critically important.

NxCore provides the developer with Symbol Add, Modify (change) and Delete messages through the NxMSG_SYMBOLCHANGE message. These messages are delivered everyday as they are sent from the exchanges. However, it is not uncommon for exchanges to make errors in delivering these messages. While the NxCore feed processors have numerous methods of error detection and correction, the developer who is dependant on these messages should monitor them on a daily basis as exchange errors may be delivered in the real time stream.

The Symbol Change Analyzer was developed to aid in this monitoring and has become a tool I use every day. It tracks all relevant information regarding symbol additions and changes and has a variety of mechanisms for flagging potential errors. Many of the error tracking mechanisms can easily be implemented in another NxCore application for automatic error detection and correction.

The Symbol Change Analyzer also demonstrates several key NxCore concepts:
  • Processing Symbol Change messages, Category 30 (Symbol History) messages and Category 4 and 7 messages (symbol names).

  • Allocating and retrieving memory specific to individual symbols for instant access to data (specific to the symbol) with no lookups.

  • Only processing trade and quote messages for symbols of interest.

  • Using custom Symbol Spins for a variety of tasks via NxCore's NxCoreSpinSymbols function. Custom symbol spins can be a very powerful tool and this application uses them for a number of various tasks.

The Main Application Window:

Main Symbol Change List

  • SessDate - Session Date of the symbol change message.
  • Time - Time the Symbol change message was received..
  • Type - The type of message. This can be either Add (a new symbol was added) or Change (a symbol was changed in some regard).

  • NewSymbol - New symbol.
  • NewExg - New listed exchange.
  • NewAddr - Memory address of the new symbol.
  • NewTCnt - Count of trades the new symbol has received..
  • NewQCnt - Count of quotes the new symbol has received.
  • OldSymbol - Old symbol.
  • OldExg - Old listed exchange.
  • OldAddr - Memory address of the old symbol.
  • OldTCnt - Count of trades the old symbol has received..
  • OldQCnt - Count of quotes the old symbol has received.

  • NewName - Name of new symbol.
  • NewCUSIP - CUSIP for new symbol.
  • OldName - Name of old symbol.
  • OldCUSIP - CUSIP for old symbol.
Show Symbol Types

  • Equities - Display equities in list.
  • Indexes - Display indexes in list.
  • Futures - Display futures in list.
  • Bonds - Display bonds in list.
  • Currency - Display currencies in list.
  • Mutual Funds - Display mutual funds in list.
  • Spread - Display spreads in list.
Symbol History/Dup CUSIP & Name Search

Fields in this detail search list will vary depending on the type of search. Examples are provided below.

Symbol Adds

Symbol Adds are symbols that are new to the system and have never been seen before.

Below we see a typical symbol add (circled in red) that symbol eXSLV listed on the PACF exchange has been added. The new symbol has received both trades and quotes:

However, note the entry for the symbol eAPWC. The entry is flagged as a possible error in the application (relevant fields circled in red):

When an add symbol message is received, the application will immediately perform a duplicate symbol lookup to determine if that symbol existed in the system prior to the add. If in fact there is one (and it is listed on a possible conflicting exchange) then the application will tag the entry as a potential error. The Old Symbol field will be marked as "*****" to designate a dup symbol, and the duplicate symbol's exchange and symbol address will be shown in the related Old Symbol fields. Additionally the name and CUSIP for the new and duplicate symbol (if available) are displayed.

In this case we see that the symbol is the same, new exchange is NQNM and the duplicate exchange is NQSC. As both of these are NASDAQ exchanges there should be no duplicate symbols. Furthermore, in this case note that the CUSIP numbers (and the name) for both symbols are the same.

Given the above, the error can be easily deduced. The Add symbol message should have in fact been a Change symbol message (eAPWC from exchange NQSC to eAPWC on exchange NQNM).

Symbol Changes

A true Symbol Change occurs for 1 of 2 reasons; The symbol itself has changed or the exchange the symbol trades on has changed.

Shown below is an example of a good symbol change:

The symbol eAIQ was formerly listed on the NYSE exchange and has moved to the NQNM exchange. Once trading began the new symbol received both trades and quotes while the old symbol received none.

However on the same day, another symbol change generated a potential error:

The symbol KFN was to change to the new symbol KFN.PR. However once trading began the old symbol received many more trades and quotes than the new symbol, indicating that this symbol change message may be in error (In many cases it is black and white, where the new symbol will have zero trades and quotes).

Detailed Drill Down Searches:

Several drill down searches are included in the application to further help in investigating symbol adds and symbol changes. You can see the available menu items by right clicking in the list on the entry you wish to drill down into:

Note: Symbol history, CUSIP numbers and Names may not be available immediately when the symbols appear in the list. The will be populated as the system process through the category messages later in the tape (usually near 4:00 AM EST).

A guide to the exact meaning of the results for Symbol History can be found HERE.

The search results are then displayed in the Symbol History/Dup CUSIP & Name Search Results:

JTools Table of Contents