OpenChart
Free Desktop charting with Claude or Codex. Describe alerts, research chart moves, and choose your data providers.
Seguimiento de FX, brecha, proyecciones.
Translation pending
FinanceHTML · PythonGitHub @lucascepuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Última revisión de esta documentación: 19 de junio de 2026
Dashboard web estático que visualiza el tipo de cambio mayorista (SIOPEL Divisa Venta) versus el techo de la banda cambiaria del BCRA, con proyecciones hasta diciembre 2026.
URL de producción: https://seguimiento-fx.vercel.app/
| Componente | Tecnología |
|---|---|
| Frontend | HTML + JS vanilla + Chart.js v4 |
| Hosting | Vercel (deploy automático desde main) |
| Automatización | GitHub Actions |
| Fuente de datos | API oficial BCRA (api.bcra.gob.ar) |
No hay backend, base de datos ni dependencias de npm. Todo el estado histórico vive en arrays de JS dentro de index.html.
SEGUIMIENTO-FX/
├── index.html ← Dashboard completo (UI + datos + lógica)
├── scripts/
│ └── update_fx.py ← Script de actualización diaria
├── test/
│ └── smoke-test.js ← Validación JS (sin browser)
└── .github/
└── workflows/
└── update-fx.yml ← Workflow de automatización diaria
index.htmlTodos los datos históricos están embebidos como arrays de JS en el mismo index.html. No hay fetch de datos externos en el frontend.
| Variable | Tipo | Contenido |
|---|---|---|
hS | Estático | SIOPEL Divisa Venta diario (null = sin dato) |
hT | Estático | Techo oficial BCRA diario (pre-calculado) |
hLbl / hDispLbl | Estático | Labels de fechas para el eje X |
hPt | Estático | Radio de cada punto (3 = normal, 7 = último dato) |
brechaVals | Dinámico | Calculado en JS: (hT[i]-hS[i])/hS[i]*100 |
hA | Dinámico | Calculado por setAvgWindow(): techo/(1+avgBrecha/100) |
avgRef | Dinámico | Rolling average de brecha (30d/90d/6M) |
| Variable | Contenido |
|---|---|
pLbl | Fechas: 4 mayo + 21 junio + 21 julio + 5 mensuales (ago–dic) |
pS | SIOPEL real (hasta última rueda) + null para fechas futuras |
pT | Techo proyectado (pre-calculado con crawling peg ~2.5%/mes) |
pREM / pSCA / pSCB / pSCC | Escenarios: REM, brecha actual, brecha 15%, brecha 5% |
var ia = mode==='proj' ? 16 : 283; // índice del último dato real
Controla la zona divisoria "con datos / sin SIOPEL" en el gráfico.
GitHub Actions corre todos los días hábiles a las 17:30 hs Argentina (UTC-3), es decir cron: '30 20 * * 1-5'.
update-fx.yml (17:30 ARG)
→ checkout del repo
→ python3 scripts/update_fx.py YYYY-MM-DD
→ consulta api.bcra.gob.ar/estadisticascambiarias/v1.0/Cotizaciones/USD
→ identifica el valor SIOPEL del día
→ actualiza index.html (ver detalle abajo)
→ node test/smoke-test.js (valida los 3 modos del chart)
→ si smoke test OK → commit + push
→ Vercel detecta el push → redeploya (~20 segundos)
update_fx.py en cada actualizaciónhS[new_idx] — agrega el nuevo valor SIOPELhPt[prev]=3; hPt[new]=7 — mueve el punto destacadoia — incrementa el índice de la zona divisoriasJunActual — agrega valor al sub-array de junio (modo proyección)pPt — mueve el punto en modo proyecciónGET /estadisticascambiarias/v1.0/Cotizaciones/USD?fechaDesde=X&fechaHasta=X
Si la API falla o el dato no está disponible:
# Desde GitHub Actions → Run workflow → campo "valor_manual"
# O localmente:
python3 scripts/update_fx.py 2026-06-19 1455.0
| Modo | Descripción |
|---|---|
| Histórico | Serie completa abr 2025 – presente vs techo BCRA |
| Proyección | Mayo–diciembre 2026 con 4 escenarios (REM, brecha actual, 15%, 5%) |
| Brecha % | Evolución diaria de la brecha (techo−SIOPEL)/SIOPEL |
El smoke test (test/smoke-test.js) corre en Node.js sin browser. Valida:
window.sw() está definida y funcionahist, proj, brecha) ejecutan sin excepcionesnode test/smoke-test.js
# ✅ SMOKE TEST OK — todo funciona correctamente
| Evento | Acción requerida |
|---|---|
| Publicación REM julio 2026 | Actualizar pREM, pSCA, pSCB, pSCC en index.html |
| Inicio ruedas julio 2026 | El automático lo maneja (pLbl ya tiene fechas de julio) |
| Agosto 2026 en adelante | Ampliar arrays históricos y de proyección |
index.html facilita el deploy estático pero hace que los datos históricos estén hardcodeados. Cada actualización es un commit que modifica el HTML.brechaVals, hA y avgRef se recalculan en el cliente al cargar la página. Solo hS (precios SIOPEL) necesita actualizarse via script.null y se visualizan como "sin datos".This is the beginning of the README. Read the rest at the original. Read the full README ↗