Price + volume charts
Candlestick and volume rendered in one canvas, with sensible defaults out of the box.
See overlay example
Candlesticks, volume, and ten-plus technical indicators on Chart.js — Vue, React, Angular, or vanilla JS.
A price chart with an EMA overlay:
A standalone RSI oscillator:
An oscillator paired with the price chart (:with-overlay="true"):
Each instance is independent and manages its own ChartManager. Drop as many as you want on a page.
npm install @facioquo/indy-charts chart.js chartjs-plugin-annotationpnpm add @facioquo/indy-charts chart.js chartjs-plugin-annotationyarn add @facioquo/indy-charts chart.js chartjs-plugin-annotationIn any TS/JS project:
import { createApiClient, OverlayChart, setupIndyCharts } from "@facioquo/indy-charts";
setupIndyCharts();
const client = createApiClient({ baseUrl: "https://api.example.com" });
const quotes = await client.getQuotes();
const canvas = document.getElementById("chart") as HTMLCanvasElement;
const chart = new OverlayChart(canvas, { isDarkTheme: false, showTooltips: true });
chart.render(quotes.slice(-250));In Vue / VitePress, register the adapter once and use the global component:
// .vitepress/theme/index.ts (or main.ts)
import { setupIndyChartsForVue } from "@facioquo/indy-charts/vue";
export default {
enhanceApp({ app }) {
setupIndyChartsForVue(app, {
api: { baseUrl: "https://api.example.com" },
indicators: { ema: { uiid: "EMA", params: { lookbackPeriods: 20 } } }
});
}
};<ClientOnly>
<StockIndicatorChart indicator="ema" />
</ClientOnly>Built on Chart.js. Runs anywhere ES2020 + Canvas + fetch are available — every browser shipped in the last few years. Source: github.com/facioquo/stock-charts.