Loading Data ...
This demo uses the PineTS library to load the market data and calculate the indicators, and QFChart library for visualizing the results.
Loading Data ...
This is the most comprehensive QFChart demo, demonstrating the library's full capabilities for building professional-grade financial charting applications. It combines multiple technical indicators, interactive drawing tools, and advanced chart controls in a single, production-ready interface. This demo serves as a reference implementation for developers building trading platforms, portfolio management tools, or financial analysis applications.
This demo calculates and displays three powerful technical indicators simultaneously:
The demo includes all of QFChart's interactive capabilities:
This demo demonstrates advanced integration patterns:
Promise.all() to load multiple indicators simultaneouslyThe demo follows best practices for organizing a multi-indicator chart application:
// 1. Load all indicators in parallel
const promises = [
getIndicatorData(sqzmomIndicator, 'BTCUSDT', 'W', 500),
getIndicatorData(macdIndicator, 'BTCUSDT', 'W', 500),
getIndicatorData(institBiasIndicator, 'BTCUSDT', 'W', 500),
];
const results = await Promise.all(promises);
// 2. Extract market data and plots
const { marketData, plots: sqzmomPlots } = results[0];
const { plots: macdPlots } = results[1];
const { plots: institBiasPlots } = results[2];
// 3. Initialize chart
const chart = new QFChart.QFChart(container, {
title: 'BTC/USDT',
height: '800px',
layout: { mainPaneHeight: '60%', gap: 5 },
controls: { collapse: true, maximize: true, fullscreen: true }
});
// 4. Set data and add indicators
chart.setMarketData(ohlcvData);
chart.addIndicator('Institutional Bias', institBiasPlots, { isOverlay: true });
chart.addIndicator('MACD', macdPlots, { isOverlay: false, height: 14 });
chart.addIndicator('SQZMOM', sqzmomPlots, { isOverlay: false, height: 14 });
// 5. Register drawing tools
chart.registerPlugin(new QFChart.MeasureTool());
chart.registerPlugin(new QFChart.LineTool());
chart.registerPlugin(new QFChart.FibonacciTool());
This demo can be easily customized:
'W' to '1d', '4h', '1h', etc.'BTCUSDT' with any Binance trading pairDATA_LENGTH to load more or fewer candlesheight: 14 to change indicator pane sizes (percentage)titleColor for each indicatorThe demo includes comprehensive event logging for drawing tool interactions. Check the browser console to see events triggered by hovering, clicking, selecting, moving, or deleting drawings. This event system allows you to build features like:
This demo is optimized for production use:
This demo works in all modern browsers (Chrome, Firefox, Safari, Edge) and adapts to different screen sizes. The mobile-optimized databox automatically switches to floating mode on smaller screens, ensuring a great user experience across devices.