Lack of Market Data
Issue
The algorithm behaves as if it hasn't received any market data.
Troubleshooting Option
Seeing as Market Data enters Ember via TimeBase, to troubleshoot this issue:
- Verify that data is stored into TimeBase by a market data node or aggregator.
- Verify that data is read from TimeBase by your consumer (algorithm or another module).
Verify that Data is Stored
There are several ways to store data into TimeBase. From the options we describe, choose the one that best suits your situation.
Option A: TimeBase Monitor Web App
This option is applicable to transient and durable streams. It is not applicable to topics.
To verify that data is stored using the TimeBase Monitor Web App:
- Connect to http://localhost:8011/tb.
If TimeBase is running remotely, make sure to use the correct host. - Navigate to the Loaders page.
In TimeBase terminology, clients that write data into TimeBase use "loaders". - Enable message tracking and check if any messages are stored in your TimeBase channel. To check if data is read, see the Verify that Data is Read section.
Option B: TimeBase Shell (CLI)
To verify that data is stored via the TimeBase Shell:
Start the command line shell as follows:
/deltix/QuantServer/bin/tickdb.sh
Slow console output may affect the topic's other consumers. Use with caution!
Run the following commands to connect to TimeBase and start monitoring a topic or stream. This example reads data coming to a BINANCE topic:
set db dxtick://localhost:8011
open ro
set channel BINANCE
monitorYou should see messages displayed. For example:
PackageHeader,FX,ETHUSD,2018-12-11 19:39:55.001,1544575195001,999
PackageHeader,FX,ETHUSD,2018-12-11 19:39:55.001,1544575195001,999
PackageHeader,FX,ETHUSD,2018-12-11 19:39:55.001,1544575195001,999
...If there is too much data, enter
stop
.
Option C: TimeBase Admin GUI
This option can be used to monitor both streams and topics. It is not suitable for headless installations with no GUI.
To verify that data is stored using the TimeBase Admin GUI:
- Launch the TimeBase Administrator GUI and connect to TimeBase.
- Right-click on a stream and call the
Monitor
command.
In the grid panel that appears, you should see data flowing.
Verify that Data is Read
The TimeBase Monitor web app is probably the only generic option that can verify that the algorithm is reading market data.
To verify that the data is read:
- Connect to http://localhost:8011/tb.
If TimeBase is running remotely, make sure to use the correct host. - Navigate to the Cursors page.
In TimeBase terminology, clients that read data from TimeBase use "cursors". - Locate the cursor that corresponds to your algorithm.
The cursor should be marked as belonging to the Ember application and have an expected creation time. - Check the cursor's subscription filter.
In most cases, the subscription has the wrong set of symbols or message types defined. Be aware of wildcard subscriptions that imply no filtering. - Enable message tracking and check if any messages are consumed by the cursor.