This project visualizes market data using candlestick charts and order book depth information. It is built using Highcharts and JavaScript, and it processes CSV datasets to display financial data interactively.
-
Candlestick Chart:
- Displays open, high, low, and close prices for each minute.
- Includes a range selector for 15 minutes, 1 hour, or the full dataset.
-
Volume Chart:
- Shows the trading volume for each minute below the candlestick chart.
-
Order Book Depth Tooltip:
- Displays buy and sell order book depth data for the hovered candlestick.
- Data is shown in a tabular format with price levels and quantities.
index.html: The main HTML file that sets up the structure of the dashboard.styles.css: Contains styles for the dashboard layout and appearance.script.js: Handles data processing, chart rendering, and interactivity.data/: Contains CSV files with market data.
-
Setup:
- Ensure you have a web server to serve the files (e.g., using VS Code Live Server or Python's
http.server).
- Ensure you have a web server to serve the files (e.g., using VS Code Live Server or Python's
-
Load the Dashboard:
- Open
index.htmlin a browser.
- Open
-
Select Dataset:
- Use the dropdown menu to select a dataset from the
data/folder.
- Use the dropdown menu to select a dataset from the
-
Interact with the Charts:
- Hover over candlesticks to view order book depth data in the tooltip.
- Use the range selector to adjust the visible time range.
The CSV files should have the following columns:
_id: Unique identifier for the row.tradingSymbol: The trading symbol of the instrument.openPrice,highPrice,lowPrice,closePrice: OHLC data for the minute.bidDepth.<price>: Buy order quantities at specific price levels.askDepth.<price>: Sell order quantities at specific price levels.timeStamp: Timestamp for the minute (e.g.,2025-02-24 09:48:00).volume: Total trading volume for the minute.
- Highcharts: Used for rendering the charts.
- The project assumes the dataset contains data for a single trading day.
- Invalid timestamps in the dataset are skipped, and a warning is logged in the console.
- Add support for multiple trading days.
- Enhance the tooltip to include more detailed analytics.
- Optimize performance for larger datasets.