Full Featured Demo

This demo uses the PineTS library to load the market data and calculate the indicators, and QFChart library for visualizing the results.


Loading Data ...

Full Featured QFChart Demo

What This Demo Showcases

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.

Featured Indicators

This demo calculates and displays three powerful technical indicators simultaneously:

Interactive Features

The demo includes all of QFChart's interactive capabilities:

Technical Architecture

This demo demonstrates advanced integration patterns:

Code Structure

The 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());

Customization Options

This demo can be easily customized:

Event System

The 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:

Performance Considerations

This demo is optimized for production use:

Use Cases

Browser Compatibility

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.

Learn More