From 59e93aad9e552e95cc20cdf8d9c76a2b3378300d Mon Sep 17 00:00:00 2001 From: Mathieu Colmon Date: Sat, 14 Nov 2026 04:19:08 +0100 Subject: [PATCH] Simplify the README Shorter README in every language: a short pitch, the help link, the feature list, the install command and the doc links. Setup details move to docs/getting-started.md; the unused demo GIF is removed. --- README.md | 184 ++++++---------------------------------- assets/readme-demo.gif | Bin 177639 -> 0 bytes docs/README.es.md | 184 ++++++---------------------------------- docs/README.fr.md | 180 ++++++--------------------------------- docs/README.pt.md | 184 ++++++---------------------------------- docs/backtest.md | 2 +- docs/getting-started.md | 52 ++++++++++++ 7 files changed, 165 insertions(+), 621 deletions(-) delete mode 100644 assets/readme-demo.gif create mode 100644 docs/getting-started.md diff --git a/README.md b/README.md index a0005d47..1562576f 100644 --- a/README.md +++ b/README.md @@ -1,175 +1,47 @@ -# TradingView-API +# TradingView API [![GitHub stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API.svg?style=social&label=Star)](https://github.com/Mathieu2301/TradingView-API/stargazers) -**Build with market data, from your first chart to a running watcher.** Fetch candles and quotes, run indicators and strategies, and turn ideas into working tools. An independent community project, not an official TradingView API. - -[Get started](#get-started) · [Explore examples](examples) · [Read the data API guide](docs/data-api.md) - -**Language:** English · [Français](docs/README.fr.md) · [Español](docs/README.es.md) · [Português](docs/README.pt.md) - -[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) [![npm](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) [![Stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API?style=social)](https://github.com/Mathieu2301/TradingView-API) +[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) +[![CodeFactor](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/badge/main)](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/overview/main) +[![npm downloads](https://badgen.net/npm/dt/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) +[![npm version](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) Mathieu2301/TradingView-API | #1 Repo Of The Day on Trendshift -Film: a trader asks an AI agent to turn a private TradingView indicator into a bot; the agent installs TradingView-API, backtests it and trades it on a demo account - -**Turn your TradingView indicators into a trading bot, just by chatting.** An AI agent on molted installs TradingView-API, backtests your setup and runs it 24/7 on a demo account. Real money only when you say so. - -**[Create my AI agent →](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api)** - -▶ With sound: - -https://github.com/user-attachments/assets/88859255-9e80-435e-95d4-f6f40bf0946b - -### One request, real data - -> **V4 is the default npm release.** Install with `npm install @mathieuc/tradingview` to use `getCandles` and the new data API. - -```js -import { getCandles } from '@mathieuc/tradingview/data'; - -const candles = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: 'D', count: 40 }); -console.log(candles.at(-1)); // { time, open, high, low, close, volume } -``` - -![Recorded demonstration: a candle request returns 40 daily BTC/USDT candles, visualized as a line chart](assets/readme-demo.gif) +Get realtime market prices, indicator values and backtests from TradingView! 📈 -*An actual candle request, recorded on 2 October 2026 with the development preview (`fetchCandles`, called `getCandles` in version 4) and visualized for this demo. Prices are not live.* +🌐 English · [Français](docs/README.fr.md) · [Español](docs/README.es.md) · [Português](docs/README.pt.md) -Prefer to start without code? The setup paths below work too. +## 🟢 Need help with your project? -> **Version 4 is a breaking rewrite** in TypeScript, with a new API and no compatibility layer. Coming from v3? Read the [migration guide](docs/migration-v4.md). Every v3 feature is still available: see the [coverage matrix](docs/v4-coverage.md) and [reliability evidence](docs/v4-reliability.md). The [RC preparation report](docs/v4-stabilization.md) tracks current checks and remaining release gates. npm versions 3.x keep the previous `Client` API; check the [npm page](https://www.npmjs.com/package/@mathieuc/tradingview) for the version you install. +🚀 **[Click here to get help with your project](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api&utm_content=need-help)** -## Get started +Film: a trader gets help from an AI agent that installs TradingView-API, backtests the setup and runs it on a demo account -### Interactive quick-start +## ✨ Features -The interactive launcher is included in V4: +- ✅ Realtime candles and quotes +- ✅ Indicator values: built-in and Pine indicators, invite-only included (with access) +- ✅ Strategy reports +- ✅ Honest backtests: no look-ahead, fees, random-entry baseline +- ✅ Replay mode + fake replay mode (free plan) +- ✅ Values for a specific date range +- ✅ Screener and hotlists +- ✅ Your watchlists and the drawings on your charts +- ✅ TradingView's technical analysis +- 💡 Want a feature? [Ask here](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) -```bash -npx @mathieuc/tradingview -``` - -Run it from your project directory with Node.js 20+. Choose a path: - -1. **Autonomous agent (recommended)** — opens the [TradingView-API market watcher on Molted Studio](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api). No local project setup. -2. **Claude Code CLI** — starts your installed `claude` CLI here with a ready-to-use project prompt. -3. **Codex CLI** — starts your installed `codex` CLI here with the same prompt. -4. **Another local coding agent** — prints the prompt to paste into your agent. -5. **Install the library only** — runs `npm install @mathieuc/tradingview` here, without generating files or starting an agent. - -Claude Code and Codex must already be installed and authenticated. Their normal permission prompts remain enabled. If launch fails, the prompt is printed for manual use. If no browser is available, the hosted link remains visible. - -Use `--choice 4` to print the prompt directly, or `--help` for usage. Non-interactive callers must pass `--choice`. To try the launcher from this checkout: +## 📦 Installation ```bash -npm ci && npm run build -node bin/tradingview.mjs +npm i @mathieuc/tradingview ``` -### Install manually - -```bash -npm install @mathieuc/tradingview -# Or: bun add @mathieuc/tradingview -``` - -V4 is installed by default. V3 remains available with `@mathieuc/tradingview@3`; read the migration guide before upgrading existing V3 projects. - -The V4 package is ESM with TypeScript declarations. CommonJS projects can `require()` it on Node 20.19+ or 22.12+, or use `await import()`. - -### Want to contribute? - -[Open an issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) to discuss a feature or report a bug, or send a pull request. Questions and early ideas are welcome; you do not need a perfect reproduction to start a conversation. `npm run check` runs the type check, lint, tests, build and package smoke test. - -## Data API - -The data API handles connections, sessions, timeouts and cleanup for you. It suits any application: scripts, servers, dashboards, bots or agents. - -```ts -import { - getCandles, watchCandles, getQuote, getIndicatorData, searchMarkets, -} from '@mathieuc/tradingview/data'; - -// One-shot: resolves with complete data, then releases everything. -const hourly = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '60', count: 500 }); -const lastWeek = await getCandles({ symbol: 'NASDAQ:AAPL', timeframe: '15', from: new Date(Date.now() - 7 * 86_400_000) }); -const quote = await getQuote('BINANCE:BTCUSDT'); -const [market] = await searchMarkets('ethereum', { type: 'crypto' }); - -// Watcher: keeps streaming until stopped. -const watcher = await watchCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '1' }, { - onData: (candles) => console.log(candles.at(-1)?.close), - onError: (error) => console.error(error.code, error.message), -}); -await watcher.stop(); - -// Indicators and strategies (Pine scripts need an account). -const { values } = await getIndicatorData({ - symbol: 'BINANCE:BTCUSDT', indicator: 'STD;RSI', credentials: { session, signature }, -}); -``` - -| Need | Function | -| --- | --- | -| Candles: latest bars, deep history, date ranges, Heikin Ashi/Renko/... | `getCandles`, `watchCandles` | -| Quotes: last price, change, bid/ask, volume... | `getQuote`, `getQuotes`, `watchQuotes` | -| Indicator values, drawings and strategy reports | `getIndicatorData`, `watchIndicator` | -| Symbol metadata | `getSymbolInfo` | -| Stock/crypto screening and ranked lists | `getScreener`, `getHotlist` | -| Account watchlists (read-only) | `getWatchlists` | -| Search and ratings | `searchMarkets`, `searchIndicators`, `getTechnicalAnalysis` | - -Websocket data functions accept `timeoutMs`, an `AbortSignal`, account `credentials`, and an optional shared `client`. HTTP lookups accept an `AbortSignal` through their options. Errors are `TradingViewError`s with a `code` such as `SYMBOL_ERROR`, `TIMEOUT` or `STUDY_ERROR`. Read the [data API guide](docs/data-api.md) for every option. - -## Backtest API - -Write the entry rule; `@mathieuc/tradingview/backtest` does the rest: frozen candles, look-ahead rejection, entry at the next open, fees and slippage on both sides, pessimistic fills, in-sample/out-of-sample split, four exits and a seeded random-entry baseline. - -```ts -import { backtest, formatReport, rsiDivergence } from '@mathieuc/tradingview/backtest'; - -const { report } = await backtest({ - symbol: 'BINANCE:BTCUSDT', timeframe: '240', years: 2, - signal: rsiDivergence(), // Or your own: (candles) => [{ bar, direction: 'long' | 'short' }] -}); -console.log(formatReport(report)); // report is plain JSON: rows per exit and split, trades, warnings -``` - -It makes no claim of profitability: a negative or inconclusive result is a valid outcome. Read the [backtest guide](docs/backtest.md). - -## Low-level API - -For full control (several charts and studies on one connection, replay mode, raw packets), use the client and sessions directly: - -```ts -import { TradingViewClient, getIndicator } from '@mathieuc/tradingview'; - -const client = new TradingViewClient({ credentials: { session, signature } }); // Credentials are optional -const chart = client.createChart(); - -chart.on('update', () => console.log(chart.lastCandle?.close)); -chart.on('error', (error) => console.error(error.message)); -chart.setMarket('BINANCE:BTCUSDT', { timeframe: '60', count: 300 }); - -const supertrend = chart.createStudy(await getIndicator('STD;Supertrend')); -supertrend.on('update', () => console.log(supertrend.values.at(-1))); - -// When your application is finished: -await client.close(); -``` - -The [low-level API reference](docs/low-level-api.md) covers charts, replay, studies, quotes, account and layout functions, Pine permissions, custom transports and protocol helpers. The [examples](examples) show each feature. - -## Accounts and limits +📚 [Getting started](docs/getting-started.md) · [Data API](docs/data-api.md) · [Backtest](docs/backtest.md) · [Low-level API](docs/low-level-api.md) · [Examples](examples) -Without an account, TradingView serves limited data: shorter intraday history, no Pine studies, and possibly delayed or substitute feeds. With your `sessionid` and `sessionid_sign` cookies (`credentials`), you get what your account can access. Keep them in environment variables or a secret store; never put them in source files, issues or prompts. +## 🐛 Problems -## Project links +If you have errors or unwanted behavior, please [open an issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose). -- [GitHub repository](https://github.com/Mathieu2301/TradingView-API) -- [Trendshift community highlight](https://trendshift.io/repositories/26416) -- [npm package](https://www.npmjs.com/package/@mathieuc/tradingview) -- [Examples](examples) -- [Report a bug or ask for a feature](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) +___ -TradingView is a trademark of its respective owner. This project is not affiliated with or endorsed by TradingView. Check your data provider's terms and applicable market-data permissions for your use case. +Independent community project. TradingView is a trademark of its respective owner; this project is not affiliated with or endorsed by TradingView. diff --git a/assets/readme-demo.gif b/assets/readme-demo.gif deleted file mode 100644 index 103e220e63d92f910f45d775b7fda18d84ae2d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177639 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%0DfDCH~@{tng<|w>q%k8O=X7Z>j&ROg_{8J}t>? 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 z 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£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%0D%J`xGjb{MuzVmb73F28DD^TKw@ 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%0AH>6l>T8CjW?eg}|8Xz{W< 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/TradingView-API | #1 Repo Of The Day on Trendshift -Película: un trader pide a un agente de IA que convierta su indicador privado de TradingView en un bot; el agente instala TradingView-API, lo prueba con datos históricos y opera en una cuenta demo - -**Convierte tus indicadores de TradingView en un bot de trading, solo conversando.** Un agente de IA en molted instala TradingView-API, prueba tu estrategia con datos históricos y la ejecuta 24/7 en una cuenta demo. Dinero real solo cuando tú lo decidas. - -**[Crear mi agente de IA →](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api)** - -▶ Con sonido (en inglés): - -https://github.com/user-attachments/assets/88859255-9e80-435e-95d4-f6f40bf0946b - -### Una consulta, datos reales - -> **V4 es la versión predeterminada en npm.** Instálala con `npm install @mathieuc/tradingview` para usar `getCandles` y la nueva API de datos. - -```js -import { getCandles } from '@mathieuc/tradingview/data'; - -const candles = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: 'D', count: 40 }); -console.log(candles.at(-1)); // { time, open, high, low, close, volume } -``` - -![Demostración grabada: una consulta devuelve 40 velas diarias de BTC/USDT, representadas como un gráfico de líneas](../assets/readme-demo.gif) +¡Obtén precios en tiempo real, valores de indicadores y backtests desde TradingView! 📈 -*Una consulta real de velas, grabada el 2 de octubre de 2026 con la versión preliminar de desarrollo (`fetchCandles`, llamada `getCandles` en la versión 4) y representada para esta demostración. Los precios no son en directo.* +🌐 [English](../README.md) · [Français](README.fr.md) · Español · [Português](README.pt.md) -¿Prefieres empezar sin código? También puedes usar las opciones de abajo. +## 🟢 ¿Necesitas ayuda con tu proyecto? -> **La versión 4 es una reescritura incompatible en TypeScript**, con una API nueva y sin capa de compatibilidad. ¿Vienes de V3? Lee la [guía de migración](migration-v4.md). Todas las funciones de V3 siguen disponibles: consulta la [matriz de cobertura](v4-coverage.md) y las [pruebas de fiabilidad](v4-reliability.md). El [informe de preparación de la RC](v4-stabilization.md) documenta las comprobaciones y los requisitos pendientes para la versión estable. Las versiones npm 3.x conservan la API `Client` anterior; comprueba la versión que instalas en la [página de npm](https://www.npmjs.com/package/@mathieuc/tradingview). Estas guías técnicas están en inglés. +🚀 **[Haz clic aquí para recibir ayuda con tu proyecto](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api&utm_content=need-help)** -## Primeros pasos +Película: un trader recibe ayuda de un agente de IA que instala TradingView-API, prueba su estrategia con datos históricos y la ejecuta en una cuenta demo -### Inicio rápido interactivo +## ✨ Funcionalidades -El asistente interactivo está incluido en la V4: +- ✅ Velas y cotizaciones en tiempo real +- ✅ Valores de indicadores: integrados y Pine, incluidos los de invitación (con acceso) +- ✅ Informes de estrategia +- ✅ Backtests honestos: sin anticipación, con comisiones y comparación con entradas al azar +- ✅ Modo replay + replay simulado (plan gratuito) +- ✅ Valores en un rango de fechas concreto +- ✅ Screener y rankings +- ✅ Tus listas de seguimiento y los dibujos de tus gráficos +- ✅ El análisis técnico de TradingView +- 💡 ¿Te falta una funcionalidad? [Pídela aquí](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) -```bash -npx @mathieuc/tradingview -``` - -Ejecútalo desde el directorio de tu proyecto con Node.js 20+. Elige una opción: - -1. **Agente autónomo (recomendado)** — abre el [monitor de mercado TradingView-API en Molted Studio](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api). Sin configurar un proyecto local. -2. **Claude Code CLI** — inicia tu CLI `claude` instalado en este directorio con un prompt de proyecto listo para usar. -3. **Codex CLI** — inicia tu CLI `codex` instalado en este directorio con el mismo prompt. -4. **Otro agente de programación local** — muestra el prompt para pegarlo en tu agente. -5. **Instalar solo la biblioteca** — ejecuta `npm install @mathieuc/tradingview` aquí, sin generar archivos ni iniciar un agente. - -Claude Code y Codex deben estar instalados y autenticados. Sus solicitudes de permiso habituales siguen activadas. Si el inicio falla, se muestra el prompt para usarlo manualmente. Si no hay navegador disponible, el enlace alojado sigue visible. - -Usa `--choice 4` para mostrar el prompt directamente, o `--help` para consultar la ayuda. Las llamadas no interactivas deben pasar `--choice`. Para probar el asistente desde este repositorio: +## 📦 Instalación ```bash -npm ci && npm run build -node bin/tradingview.mjs +npm i @mathieuc/tradingview ``` -### Instalación manual - -```bash -npm install @mathieuc/tradingview -# O: bun add @mathieuc/tradingview -``` - -V4 se instala por defecto. V3 sigue disponible con `@mathieuc/tradingview@3`; consulta la guía de migración antes de actualizar un proyecto V3. - -El paquete V4 es ESM con declaraciones TypeScript. Los proyectos CommonJS pueden usar `require()` en Node 20.19+ o 22.12+, o `await import()`. - -### ¿Quieres contribuir? - -[Abre una issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) para comentar una función o informar de un error, o envía una pull request. Las preguntas y las ideas son bienvenidas; no necesitas una reproducción perfecta para iniciar la conversación. `npm run check` ejecuta la comprobación de tipos, el lint, las pruebas, la compilación y la prueba del paquete. - -## API de datos - -La API de datos gestiona las conexiones, las sesiones, los tiempos de espera y la limpieza. Sirve para scripts, servidores, paneles, bots y agentes. - -```ts -import { - getCandles, watchCandles, getQuote, getIndicatorData, searchMarkets, -} from '@mathieuc/tradingview/data'; - -// One-shot: resolves with complete data, then releases everything. -const hourly = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '60', count: 500 }); -const lastWeek = await getCandles({ symbol: 'NASDAQ:AAPL', timeframe: '15', from: new Date(Date.now() - 7 * 86_400_000) }); -const quote = await getQuote('BINANCE:BTCUSDT'); -const [market] = await searchMarkets('ethereum', { type: 'crypto' }); - -// Watcher: keeps streaming until stopped. -const watcher = await watchCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '1' }, { - onData: (candles) => console.log(candles.at(-1)?.close), - onError: (error) => console.error(error.code, error.message), -}); -await watcher.stop(); - -// Indicators and strategies (Pine scripts need an account). -const { values } = await getIndicatorData({ - symbol: 'BINANCE:BTCUSDT', indicator: 'STD;RSI', credentials: { session, signature }, -}); -``` - -| Necesidad | Función | -| --- | --- | -| Velas: barras recientes, historial profundo, rangos de fechas, Heikin Ashi/Renko/... | `getCandles`, `watchCandles` | -| Cotizaciones: último precio, variación, bid/ask, volumen... | `getQuote`, `getQuotes`, `watchQuotes` | -| Valores de indicadores, dibujos e informes de estrategias | `getIndicatorData`, `watchIndicator` | -| Metadatos de símbolos | `getSymbolInfo` | -| Screener de acciones/cripto y clasificaciones | `getScreener`, `getHotlist` | -| Listas de seguimiento de la cuenta (solo lectura) | `getWatchlists` | -| Búsqueda y evaluaciones | `searchMarkets`, `searchIndicators`, `getTechnicalAnalysis` | - -Las funciones de datos WebSocket aceptan `timeoutMs`, un `AbortSignal`, credenciales de cuenta (`credentials`) y un `client` compartido opcional. Las consultas HTTP aceptan un `AbortSignal` en sus opciones. Los errores son `TradingViewError` con un `code` como `SYMBOL_ERROR`, `TIMEOUT` o `STUDY_ERROR`. Consulta todas las opciones en la [guía de la API de datos](data-api.md). - -## API de backtest - -Escribe la regla de entrada; `@mathieuc/tradingview/backtest` hace el resto: velas congeladas, rechazo de la anticipación (look-ahead), entrada en la apertura siguiente, comisiones y slippage en ambos lados, ejecuciones pesimistas, división in-sample/out-of-sample, cuatro salidas y una referencia de entradas aleatorias con semilla. - -```ts -import { backtest, formatReport, rsiDivergence } from '@mathieuc/tradingview/backtest'; - -const { report } = await backtest({ - symbol: 'BINANCE:BTCUSDT', timeframe: '240', years: 2, - signal: rsiDivergence(), // O la tuya: (candles) => [{ bar, direction: 'long' | 'short' }] -}); -console.log(formatReport(report)); // report es JSON simple: filas por salida y segmento, operaciones, avisos -``` - -No promete ninguna rentabilidad: un resultado negativo o no concluyente es un resultado válido. Lee la [guía de backtest](backtest.md) (en inglés). - -## API de bajo nivel - -Para un control completo (varios gráficos y estudios en una conexión, modo replay, paquetes sin procesar), usa directamente el cliente y las sesiones: - -```ts -import { TradingViewClient, getIndicator } from '@mathieuc/tradingview'; - -const client = new TradingViewClient({ credentials: { session, signature } }); // Credentials are optional -const chart = client.createChart(); - -chart.on('update', () => console.log(chart.lastCandle?.close)); -chart.on('error', (error) => console.error(error.message)); -chart.setMarket('BINANCE:BTCUSDT', { timeframe: '60', count: 300 }); - -const supertrend = chart.createStudy(await getIndicator('STD;Supertrend')); -supertrend.on('update', () => console.log(supertrend.values.at(-1))); - -// When your application is finished: -await client.close(); -``` - -La [referencia de la API de bajo nivel](low-level-api.md) cubre gráficos, replay, estudios, cotizaciones, funciones de cuenta y diseños, permisos Pine, transportes personalizados y utilidades del protocolo. Los [ejemplos](../examples) muestran cada función. - -## Cuentas y límites +📚 [Primeros pasos](getting-started.md) · [API de datos](data-api.md) · [Backtest](backtest.md) · [API de bajo nivel](low-level-api.md) · [Ejemplos](../examples) (guías en inglés) -Sin una cuenta, TradingView ofrece datos limitados: menos historial intradía, sin estudios Pine y posibles fuentes retrasadas o alternativas. Con tus cookies `sessionid` y `sessionid_sign` (`credentials`), obtienes lo que tu cuenta permite. Guárdalas en variables de entorno o en un almacén de secretos; nunca en archivos fuente, issues o prompts. +## 🐛 Problemas -## Enlaces del proyecto +Si tienes errores o un comportamiento inesperado, [abre una issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose). -- [Repositorio GitHub](https://github.com/Mathieu2301/TradingView-API) -- [Reconocimiento de la comunidad en Trendshift](https://trendshift.io/repositories/26416) -- [Paquete npm](https://www.npmjs.com/package/@mathieuc/tradingview) -- [Ejemplos](../examples) -- [Informar de un error o solicitar una función](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) +___ -TradingView es una marca de su respectivo propietario. Este proyecto no está afiliado a TradingView ni cuenta con su respaldo. Consulta las condiciones de tu proveedor y los permisos de datos de mercado aplicables a tu caso de uso. +Proyecto comunitario independiente. TradingView es una marca de su propietario; este proyecto no está afiliado ni respaldado por TradingView. diff --git a/docs/README.fr.md b/docs/README.fr.md index c78964d9..9d0e7121 100644 --- a/docs/README.fr.md +++ b/docs/README.fr.md @@ -1,171 +1,47 @@ -# TradingView-API +# TradingView API [![GitHub stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API.svg?style=social&label=Star)](https://github.com/Mathieu2301/TradingView-API/stargazers) -**Construisez avec les données de marché, de votre premier graphique à une veille automatisée.** Récupérez des bougies et des cotations, exécutez des indicateurs et des stratégies, et transformez vos idées en outils. Projet communautaire indépendant, pas une API officielle de TradingView. - -[Démarrer](#démarrer) · [Explorer les exemples](../examples) · [Lire le guide de l’API de données](data-api.md) - -**Langue :** [English](../README.md) · Français · [Español](README.es.md) · [Português](README.pt.md) - -[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) [![npm](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) [![Stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API?style=social)](https://github.com/Mathieu2301/TradingView-API) +[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) +[![CodeFactor](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/badge/main)](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/overview/main) +[![npm downloads](https://badgen.net/npm/dt/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) +[![npm version](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) Mathieu2301/TradingView-API | #1 Repo Of The Day on Trendshift -Film : un trader demande à un agent IA de transformer son indicateur TradingView privé en bot ; l’agent installe TradingView-API, le backteste et le fait trader sur un compte démo - -**Transformez vos indicateurs TradingView en bot de trading, simplement en discutant.** Un agent IA sur molted installe TradingView-API, backteste votre setup et le fait tourner 24 h/24 sur un compte démo. L’argent réel, seulement quand vous le décidez. +Récupérez les prix en temps réel, les valeurs d’indicateurs et des backtests depuis TradingView ! 📈 -**[▶ Voir le film avec le son](https://molted.studio/fr/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api#film)** · **[Créer mon agent IA →](https://molted.studio/fr/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api)** +🌐 [English](../README.md) · Français · [Español](README.es.md) · [Português](README.pt.md) -### Une requête, de vraies données +## 🟢 Besoin d’aide sur votre projet ? -> **La V4 est la version npm par défaut.** Installez-la avec `npm install @mathieuc/tradingview` pour utiliser `getCandles` et la nouvelle API de données. - -```js -import { getCandles } from '@mathieuc/tradingview/data'; - -const candles = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: 'D', count: 40 }); -console.log(candles.at(-1)); // { time, open, high, low, close, volume } -``` +🚀 **[Cliquez ici pour obtenir de l’aide sur votre projet](https://molted.studio/fr/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api&utm_content=need-help)** -![Démonstration enregistrée : une requête renvoie 40 bougies quotidiennes BTC/USDT, représentées en courbe](../assets/readme-demo.gif) +Film : un trader se fait aider par un agent IA qui installe TradingView-API, backteste sa stratégie et la fait tourner sur un compte démo -*Une vraie requête de bougies, enregistrée le 2 octobre 2026 avec la préversion de développement (`fetchCandles`, appelée `getCandles` en version 4), puis représentée pour cette démonstration. Les prix ne sont pas en direct.* +## ✨ Fonctionnalités -Vous préférez commencer sans coder ? Les parcours ci-dessous le permettent aussi. +- ✅ Bougies et cotations en temps réel +- ✅ Valeurs d’indicateurs : intégrés et Pine, y compris sur invitation (avec accès) +- ✅ Rapports de stratégie +- ✅ Backtests honnêtes : sans anticipation, avec frais et comparaison au hasard +- ✅ Mode replay + faux replay (offre gratuite) +- ✅ Valeurs sur une plage de dates précise +- ✅ Screener et palmarès +- ✅ Vos listes de suivi et les dessins de vos graphiques +- ✅ L’analyse technique de TradingView +- 💡 Une fonctionnalité vous manque ? [Demandez ici](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) -> **La version 4 est une réécriture incompatible en TypeScript**, avec une nouvelle API et sans couche de compatibilité. Vous venez de la V3 ? Lisez le [guide de migration](migration-v4.md). Toutes les fonctionnalités V3 restent disponibles : voir la [matrice de couverture](v4-coverage.md) et les [preuves de fiabilité](v4-reliability.md). Le [rapport de préparation de la RC](v4-stabilization.md) suit les vérifications et les conditions restantes avant publication stable. Les versions npm 3.x conservent l’ancienne API `Client` ; vérifiez la version installée sur la [page npm](https://www.npmjs.com/package/@mathieuc/tradingview). Ces guides techniques sont en anglais. - -## Démarrer - -### Quick-start interactif - -Le lanceur interactif est inclus dans la V4 : +## 📦 Installation ```bash -npx @mathieuc/tradingview +npm i @mathieuc/tradingview ``` -Lancez-le depuis le dossier de votre projet avec Node.js 20+. Choisissez un parcours : - -1. **Agent autonome (recommandé)** — ouvre la [veille de marché TradingView-API sur Molted Studio](https://molted.studio/fr/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api). Aucune configuration de projet local. -2. **Claude Code CLI** — démarre votre CLI `claude` installé dans ce dossier, avec un prompt de projet prêt à l’emploi. -3. **Codex CLI** — démarre votre CLI `codex` installé dans ce dossier, avec le même prompt. -4. **Un autre coding-agent local** — affiche le prompt à coller dans votre agent. -5. **Installer seulement la librairie** — exécute `npm install @mathieuc/tradingview` dans ce dossier, sans générer de fichiers ni démarrer d’agent. - -Claude Code et Codex doivent déjà être installés et authentifiés. Leurs demandes d’autorisation habituelles restent actives. Si le lancement échoue, le prompt est affiché pour une utilisation manuelle. Si aucun navigateur n’est disponible, le lien hébergé reste visible. - -Utilisez `--choice 4` pour afficher directement le prompt, ou `--help` pour l’aide. En mode non interactif, `--choice` est obligatoire. Pour essayer le lanceur depuis ce dépôt : - -```bash -npm ci && npm run build -node bin/tradingview.mjs -``` - -### Installation manuelle - -```bash -npm install @mathieuc/tradingview -# Ou : bun add @mathieuc/tradingview -``` - -La V4 est installée par défaut. La V3 reste disponible avec `@mathieuc/tradingview@3` ; consultez le guide de migration avant de mettre à jour un projet V3. - -Le paquet V4 est ESM avec des déclarations TypeScript. Les projets CommonJS peuvent utiliser `require()` avec Node 20.19+ ou 22.12+, ou `await import()`. - -### Envie de contribuer ? - -[Ouvrez une issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) pour discuter d’une fonctionnalité ou signaler un bug, ou proposez une pull request. Questions et idées sont bienvenues ; une reproduction parfaite n’est pas nécessaire pour engager la discussion. `npm run check` lance la vérification des types, le lint, les tests, la compilation et le test du paquet. - -## API de données - -L’API de données gère les connexions, les sessions, les délais et le nettoyage à votre place. Elle convient aux scripts, serveurs, tableaux de bord, bots et agents. - -```ts -import { - getCandles, watchCandles, getQuote, getIndicatorData, searchMarkets, -} from '@mathieuc/tradingview/data'; - -// One-shot: resolves with complete data, then releases everything. -const hourly = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '60', count: 500 }); -const lastWeek = await getCandles({ symbol: 'NASDAQ:AAPL', timeframe: '15', from: new Date(Date.now() - 7 * 86_400_000) }); -const quote = await getQuote('BINANCE:BTCUSDT'); -const [market] = await searchMarkets('ethereum', { type: 'crypto' }); - -// Watcher: keeps streaming until stopped. -const watcher = await watchCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '1' }, { - onData: (candles) => console.log(candles.at(-1)?.close), - onError: (error) => console.error(error.code, error.message), -}); -await watcher.stop(); - -// Indicators and strategies (Pine scripts need an account). -const { values } = await getIndicatorData({ - symbol: 'BINANCE:BTCUSDT', indicator: 'STD;RSI', credentials: { session, signature }, -}); -``` - -| Besoin | Fonction | -| --- | --- | -| Bougies : dernières barres, historique profond, plages de dates, Heikin Ashi/Renko/... | `getCandles`, `watchCandles` | -| Cotations : dernier prix, variation, bid/ask, volume... | `getQuote`, `getQuotes`, `watchQuotes` | -| Valeurs d’indicateurs, dessins et rapports de stratégie | `getIndicatorData`, `watchIndicator` | -| Métadonnées des symboles | `getSymbolInfo` | -| Screener actions/crypto et classements | `getScreener`, `getHotlist` | -| Listes de suivi du compte (lecture seule) | `getWatchlists` | -| Recherche et évaluations | `searchMarkets`, `searchIndicators`, `getTechnicalAnalysis` | - -Les fonctions de données WebSocket acceptent `timeoutMs`, un `AbortSignal`, les identifiants du compte (`credentials`) et un `client` partagé facultatif. Les requêtes HTTP acceptent un `AbortSignal` via leurs options. Les erreurs sont des `TradingViewError` avec un `code` comme `SYMBOL_ERROR`, `TIMEOUT` ou `STUDY_ERROR`. Le [guide de l’API de données](data-api.md) détaille toutes les options. - -## API de backtest - -Écrivez la règle d’entrée ; `@mathieuc/tradingview/backtest` fait le reste : bougies figées, rejet de l’anticipation (look-ahead), entrée à l’ouverture suivante, frais et slippage aux deux bouts, exécutions pessimistes, séparation in-sample/out-of-sample, quatre sorties et une référence d’entrées aléatoires seedées. - -```ts -import { backtest, formatReport, rsiDivergence } from '@mathieuc/tradingview/backtest'; - -const { report } = await backtest({ - symbol: 'BINANCE:BTCUSDT', timeframe: '240', years: 2, - signal: rsiDivergence(), // Ou la vôtre : (candles) => [{ bar, direction: 'long' | 'short' }] -}); -console.log(formatReport(report)); // report est du JSON simple : lignes par sortie et segment, trades, avertissements -``` - -Il ne promet aucune rentabilité : un résultat négatif ou non concluant est un résultat valable. Lire le [guide du backtest](backtest.md) (en anglais). - -## API bas niveau - -Pour un contrôle complet (plusieurs graphiques et études sur une connexion, mode replay, paquets bruts), utilisez directement le client et les sessions : - -```ts -import { TradingViewClient, getIndicator } from '@mathieuc/tradingview'; - -const client = new TradingViewClient({ credentials: { session, signature } }); // Credentials are optional -const chart = client.createChart(); - -chart.on('update', () => console.log(chart.lastCandle?.close)); -chart.on('error', (error) => console.error(error.message)); -chart.setMarket('BINANCE:BTCUSDT', { timeframe: '60', count: 300 }); - -const supertrend = chart.createStudy(await getIndicator('STD;Supertrend')); -supertrend.on('update', () => console.log(supertrend.values.at(-1))); - -// When your application is finished: -await client.close(); -``` - -La [référence de l’API bas niveau](low-level-api.md) couvre les graphiques, le replay, les études, les cotations, les comptes et les mises en page, les permissions Pine, les transports personnalisés et les outils du protocole. Les [exemples](../examples) illustrent chaque fonctionnalité. - -## Comptes et limites +📚 [Démarrer](getting-started.md) · [API de données](data-api.md) · [Backtest](backtest.md) · [API bas niveau](low-level-api.md) · [Exemples](../examples) (guides en anglais) -Sans compte, TradingView fournit des données limitées : historique intraday réduit, pas d’études Pine et flux éventuellement différés ou de substitution. Avec vos cookies `sessionid` et `sessionid_sign` (`credentials`), vous accédez à ce que permet votre compte. Gardez-les dans des variables d’environnement ou un gestionnaire de secrets ; jamais dans les fichiers source, les issues ou les prompts. +## 🐛 Problèmes -## Liens du projet +En cas d’erreur ou de comportement inattendu, [ouvrez une issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose). -- [Dépôt GitHub](https://github.com/Mathieu2301/TradingView-API) -- [Mise en avant communautaire sur Trendshift](https://trendshift.io/repositories/26416) -- [Paquet npm](https://www.npmjs.com/package/@mathieuc/tradingview) -- [Exemples](../examples) -- [Signaler un bug ou proposer une fonctionnalité](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) +___ -TradingView est une marque de son propriétaire. Ce projet n’est ni affilié à TradingView ni approuvé par TradingView. Vérifiez les conditions de votre fournisseur de données et les autorisations applicables à votre usage. +Projet communautaire indépendant. TradingView est une marque de son propriétaire ; ce projet n’est ni affilié ni approuvé par TradingView. diff --git a/docs/README.pt.md b/docs/README.pt.md index 90271113..8e5d52da 100644 --- a/docs/README.pt.md +++ b/docs/README.pt.md @@ -1,175 +1,47 @@ -# TradingView-API +# TradingView API [![GitHub stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API.svg?style=social&label=Star)](https://github.com/Mathieu2301/TradingView-API/stargazers) -**Crie com dados de mercado, do primeiro gráfico a um monitor em funcionamento.** Obtenha candles e cotações, execute indicadores e estratégias e transforme ideias em ferramentas. Um projeto comunitário independente, não uma API oficial do TradingView. - -[Primeiros passos](#primeiros-passos) · [Explorar exemplos](../examples) · [Ler o guia da API de dados](data-api.md) - -**Idioma:** [English](../README.md) · [Français](README.fr.md) · [Español](README.es.md) · Português - -[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) [![npm](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) [![Stars](https://img.shields.io/github/stars/Mathieu2301/TradingView-API?style=social)](https://github.com/Mathieu2301/TradingView-API) +[![Tests](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/Mathieu2301/TradingView-API/actions/workflows/tests.yml) +[![CodeFactor](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/badge/main)](https://www.codefactor.io/repository/github/mathieu2301/tradingview-api/overview/main) +[![npm downloads](https://badgen.net/npm/dt/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) +[![npm version](https://badgen.net/npm/v/@mathieuc/tradingview)](https://www.npmjs.com/package/@mathieuc/tradingview) Mathieu2301/TradingView-API | #1 Repo Of The Day on Trendshift -Filme: um trader pede a um agente de IA que transforme seu indicador privado do TradingView em um bot; o agente instala a TradingView-API, faz o backtest e opera em uma conta demo - -**Transforme seus indicadores do TradingView em um bot de trading, só conversando.** Um agente de IA na molted instala a TradingView-API, faz o backtest da sua estratégia e a executa 24/7 em uma conta demo. Dinheiro real só quando você decidir. - -**[Criar meu agente de IA →](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api)** - -▶ Com som (em inglês): - -https://github.com/user-attachments/assets/88859255-9e80-435e-95d4-f6f40bf0946b - -### Uma consulta, dados reais - -> **A V4 é a versão padrão no npm.** Instale com `npm install @mathieuc/tradingview` para usar `getCandles` e a nova API de dados. - -```js -import { getCandles } from '@mathieuc/tradingview/data'; - -const candles = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: 'D', count: 40 }); -console.log(candles.at(-1)); // { time, open, high, low, close, volume } -``` - -![Demonstração gravada: uma consulta retorna 40 candles diários de BTC/USDT, exibidos em um gráfico de linhas](../assets/readme-demo.gif) +Obtenha preços em tempo real, valores de indicadores e backtests do TradingView! 📈 -*Uma consulta real de candles, gravada em 2 de outubro de 2026 com a prévia de desenvolvimento (`fetchCandles`, chamada `getCandles` na versão 4) e representada para esta demonstração. Os preços não estão em tempo real.* +🌐 [English](../README.md) · [Français](README.fr.md) · [Español](README.es.md) · Português -Prefere começar sem código? Os caminhos abaixo também funcionam. +## 🟢 Precisa de ajuda com seu projeto? -> **A versão 4 é uma reescrita incompatível em TypeScript**, com uma nova API e sem camada de compatibilidade. Vem da V3? Leia o [guia de migração](migration-v4.md). Todas as funcionalidades da V3 continuam disponíveis: veja a [matriz de cobertura](v4-coverage.md) e as [evidências de confiabilidade](v4-reliability.md). O [relatório de preparação da RC](v4-stabilization.md) acompanha as verificações e os requisitos pendentes para a versão estável. As versões npm 3.x mantêm a API `Client` anterior; confira a versão instalada na [página do npm](https://www.npmjs.com/package/@mathieuc/tradingview). Esses guias técnicos estão em inglês. +🚀 **[Clique aqui para receber ajuda com seu projeto](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api&utm_content=need-help)** -## Primeiros passos +Filme: um trader recebe ajuda de um agente de IA que instala a TradingView-API, faz o backtest da estratégia e a executa em uma conta demo -### Início rápido interativo +## ✨ Funcionalidades -O assistente interativo está incluído na V4: +- ✅ Candles e cotações em tempo real +- ✅ Valores de indicadores: nativos e Pine, inclusive os de convite (com acesso) +- ✅ Relatórios de estratégia +- ✅ Backtests honestos: sem antecipação, com taxas e comparação com entradas aleatórias +- ✅ Modo replay + replay simulado (plano gratuito) +- ✅ Valores em um intervalo de datas específico +- ✅ Screener e rankings +- ✅ Suas listas de observação e os desenhos dos seus gráficos +- ✅ A análise técnica do TradingView +- 💡 Falta alguma funcionalidade? [Peça aqui](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) -```bash -npx @mathieuc/tradingview -``` - -Execute no diretório do seu projeto com Node.js 20+. Escolha um caminho: - -1. **Agente autônomo (recomendado)** — abre o [monitor de mercado TradingView-API no Molted Studio](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=readme&utm_campaign=tradingview-api). Sem configurar um projeto local. -2. **Claude Code CLI** — inicia seu CLI `claude` instalado neste diretório com um prompt de projeto pronto para usar. -3. **Codex CLI** — inicia seu CLI `codex` instalado neste diretório com o mesmo prompt. -4. **Outro agente de programação local** — exibe o prompt para colar no seu agente. -5. **Instalar apenas a biblioteca** — executa `npm install @mathieuc/tradingview` aqui, sem gerar arquivos nem iniciar um agente. - -Claude Code e Codex devem estar instalados e autenticados. As solicitações normais de permissão continuam ativas. Se a inicialização falhar, o prompt será exibido para uso manual. Se não houver navegador disponível, o link hospedado continuará visível. - -Use `--choice 4` para exibir o prompt diretamente ou `--help` para consultar a ajuda. Chamadas não interativas devem passar `--choice`. Para testar o assistente a partir deste repositório localmente: +## 📦 Instalação ```bash -npm ci && npm run build -node bin/tradingview.mjs +npm i @mathieuc/tradingview ``` -### Instalação manual - -```bash -npm install @mathieuc/tradingview -# Ou: bun add @mathieuc/tradingview -``` - -A V4 é instalada por padrão. A V3 continua disponível com `@mathieuc/tradingview@3`; consulte o guia de migração antes de atualizar um projeto V3. - -O pacote V4 é ESM com declarações TypeScript. Projetos CommonJS podem usar `require()` no Node 20.19+ ou 22.12+, ou `await import()`. - -### Quer contribuir? - -[Abra uma issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) para discutir uma funcionalidade ou relatar um bug, ou envie uma pull request. Perguntas e ideias são bem-vindas; não é preciso ter uma reprodução perfeita para iniciar uma conversa. `npm run check` executa a verificação de tipos, o lint, os testes, a compilação e o teste do pacote. - -## API de dados - -A API de dados gerencia conexões, sessões, tempos limite e limpeza para você. É adequada para scripts, servidores, painéis, bots e agentes. - -```ts -import { - getCandles, watchCandles, getQuote, getIndicatorData, searchMarkets, -} from '@mathieuc/tradingview/data'; - -// One-shot: resolves with complete data, then releases everything. -const hourly = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '60', count: 500 }); -const lastWeek = await getCandles({ symbol: 'NASDAQ:AAPL', timeframe: '15', from: new Date(Date.now() - 7 * 86_400_000) }); -const quote = await getQuote('BINANCE:BTCUSDT'); -const [market] = await searchMarkets('ethereum', { type: 'crypto' }); - -// Watcher: keeps streaming until stopped. -const watcher = await watchCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: '1' }, { - onData: (candles) => console.log(candles.at(-1)?.close), - onError: (error) => console.error(error.code, error.message), -}); -await watcher.stop(); - -// Indicators and strategies (Pine scripts need an account). -const { values } = await getIndicatorData({ - symbol: 'BINANCE:BTCUSDT', indicator: 'STD;RSI', credentials: { session, signature }, -}); -``` - -| Necessidade | Função | -| --- | --- | -| Candles: barras recentes, histórico profundo, intervalos de datas, Heikin Ashi/Renko/... | `getCandles`, `watchCandles` | -| Cotações: último preço, variação, bid/ask, volume... | `getQuote`, `getQuotes`, `watchQuotes` | -| Valores de indicadores, desenhos e relatórios de estratégias | `getIndicatorData`, `watchIndicator` | -| Metadados de símbolos | `getSymbolInfo` | -| Screener de ações/cripto e rankings | `getScreener`, `getHotlist` | -| Listas de acompanhamento da conta (somente leitura) | `getWatchlists` | -| Pesquisa e avaliações | `searchMarkets`, `searchIndicators`, `getTechnicalAnalysis` | - -As funções de dados WebSocket aceitam `timeoutMs`, um `AbortSignal`, credenciais da conta (`credentials`) e um `client` compartilhado opcional. Consultas HTTP aceitam um `AbortSignal` nas opções. Os erros são `TradingViewError` com um `code` como `SYMBOL_ERROR`, `TIMEOUT` ou `STUDY_ERROR`. Veja todas as opções no [guia da API de dados](data-api.md). - -## API de backtest - -Escreva a regra de entrada; `@mathieuc/tradingview/backtest` faz o resto: velas congeladas, rejeição de antecipação (look-ahead), entrada na abertura seguinte, taxas e slippage nas duas pontas, execuções pessimistas, divisão in-sample/out-of-sample, quatro saídas e uma referência de entradas aleatórias com semente. - -```ts -import { backtest, formatReport, rsiDivergence } from '@mathieuc/tradingview/backtest'; - -const { report } = await backtest({ - symbol: 'BINANCE:BTCUSDT', timeframe: '240', years: 2, - signal: rsiDivergence(), // Ou a sua: (candles) => [{ bar, direction: 'long' | 'short' }] -}); -console.log(formatReport(report)); // report é JSON simples: linhas por saída e segmento, trades, avisos -``` - -Não promete nenhuma rentabilidade: um resultado negativo ou inconclusivo é um resultado válido. Leia o [guia de backtest](backtest.md) (em inglês). - -## API de baixo nível - -Para controle completo (vários gráficos e estudos em uma conexão, modo replay, pacotes brutos), use o cliente e as sessões diretamente: - -```ts -import { TradingViewClient, getIndicator } from '@mathieuc/tradingview'; - -const client = new TradingViewClient({ credentials: { session, signature } }); // Credentials are optional -const chart = client.createChart(); - -chart.on('update', () => console.log(chart.lastCandle?.close)); -chart.on('error', (error) => console.error(error.message)); -chart.setMarket('BINANCE:BTCUSDT', { timeframe: '60', count: 300 }); - -const supertrend = chart.createStudy(await getIndicator('STD;Supertrend')); -supertrend.on('update', () => console.log(supertrend.values.at(-1))); - -// When your application is finished: -await client.close(); -``` - -A [referência da API de baixo nível](low-level-api.md) cobre gráficos, replay, estudos, cotações, funções de conta e layouts, permissões Pine, transportes personalizados e utilitários do protocolo. Os [exemplos](../examples) mostram cada funcionalidade. - -## Contas e limites +📚 [Primeiros passos](getting-started.md) · [API de dados](data-api.md) · [Backtest](backtest.md) · [API de baixo nível](low-level-api.md) · [Exemplos](../examples) (guias em inglês) -Sem uma conta, o TradingView fornece dados limitados: histórico intradiário reduzido, sem estudos Pine e possíveis fontes atrasadas ou alternativas. Com seus cookies `sessionid` e `sessionid_sign` (`credentials`), você obtém o que sua conta permite. Guarde-os em variáveis de ambiente ou em um gerenciador de segredos; nunca em arquivos-fonte, issues ou prompts. +## 🐛 Problemas -## Links do projeto +Se tiver erros ou um comportamento inesperado, [abra uma issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose). -- [Repositório GitHub](https://github.com/Mathieu2301/TradingView-API) -- [Destaque da comunidade no Trendshift](https://trendshift.io/repositories/26416) -- [Pacote npm](https://www.npmjs.com/package/@mathieuc/tradingview) -- [Exemplos](../examples) -- [Relatar um bug ou solicitar uma funcionalidade](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) +___ -TradingView é uma marca de seu respectivo proprietário. Este projeto não é afiliado ao TradingView nem endossado por ele. Confira os termos do seu provedor de dados e as permissões de dados de mercado aplicáveis ao seu caso de uso. +Projeto comunitário independente. TradingView é uma marca de seu proprietário; este projeto não é afiliado nem endossado pelo TradingView. diff --git a/docs/backtest.md b/docs/backtest.md index 0b94d071..b35778e8 100644 --- a/docs/backtest.md +++ b/docs/backtest.md @@ -22,7 +22,7 @@ writeFileSync('trades.csv', tradesToCsv(report.trades)); writeFileSync('snapshot.json', JSON.stringify(snapshot)); // Replay later, exactly ``` -No account is needed for public symbols. With `credentials`, history goes as far as the account allows (see [Accounts and limits](../README.md#accounts-and-limits)). After the download, the reference strategy on about 4 500 4H bars (4 exits × 2 splits × 1 000 random runs) runs in about 0.2 s; a rule with a thousand signals takes about 10 s, mostly in the random baseline (lower `runs` while iterating). +No account is needed for public symbols. With `credentials`, history goes as far as the account allows (see [Accounts and limits](getting-started.md#accounts-and-limits)). After the download, the reference strategy on about 4 500 4H bars (4 exits × 2 splits × 1 000 random runs) runs in about 0.2 s; a rule with a thousand signals takes about 10 s, mostly in the random baseline (lower `runs` while iterating). ## Writing the signal diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..a32c6b56 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,52 @@ +# Getting started + +## Install + +```bash +npm install @mathieuc/tradingview +# Or: bun add @mathieuc/tradingview +``` + +Version 4 is installed by default: TypeScript, ESM, Node.js 20+ or Bun. CommonJS projects can `require()` it on Node 20.19+ or 22.12+, or use `await import()`. Version 3 remains available with `@mathieuc/tradingview@3`. + +> **Version 4 is a breaking rewrite**, with a new API and no compatibility layer. Coming from v3? Read the [migration guide](migration-v4.md). Every v3 feature is still available: see the [coverage matrix](v4-coverage.md) and the [reliability evidence](v4-reliability.md). + +```js +import { getCandles } from '@mathieuc/tradingview/data'; + +const candles = await getCandles({ symbol: 'BINANCE:BTCUSDT', timeframe: 'D', count: 40 }); +console.log(candles.at(-1)); // { time, open, high, low, close, volume } +``` + +Then read the [data API guide](data-api.md), the [backtest guide](backtest.md), the [low-level API reference](low-level-api.md) or the [examples](../examples). + +## Interactive quick-start + +```bash +npx @mathieuc/tradingview +``` + +Run it from your project directory with Node.js 20+. Choose a path: + +1. **Autonomous agent (recommended)** — opens the [TradingView-API page on molted.studio](https://molted.studio/dreams/ai-agent-for-tradingview-data?utm_source=github&utm_medium=docs&utm_campaign=tradingview-api). No local project setup. +2. **Claude Code CLI** — starts your installed `claude` CLI here with a ready-to-use project prompt. +3. **Codex CLI** — starts your installed `codex` CLI here with the same prompt. +4. **Another local coding agent** — prints the prompt to paste into your agent. +5. **Install the library only** — runs `npm install @mathieuc/tradingview` here, without generating files or starting an agent. + +Claude Code and Codex must already be installed and authenticated. Their normal permission prompts remain enabled. If launch fails, the prompt is printed for manual use. If no browser is available, the hosted link remains visible. + +Use `--choice 4` to print the prompt directly, or `--help` for usage. Non-interactive callers must pass `--choice`. To try the launcher from a checkout: + +```bash +npm ci && npm run build +node bin/tradingview.mjs +``` + +## Accounts and limits + +Without an account, TradingView serves limited data: shorter intraday history, no Pine studies, and possibly delayed or substitute feeds. With your `sessionid` and `sessionid_sign` cookies (`credentials`), you get what your account can access. Keep them in environment variables or a secret store; never put them in source files, issues or prompts. + +## Contributing + +[Open an issue](https://github.com/Mathieu2301/TradingView-API/issues/new/choose) to discuss a feature or report a bug, or send a pull request. Questions and early ideas are welcome; you do not need a perfect reproduction to start a conversation. `npm run check` runs the type check, lint, tests, build and package smoke test.