Files
fn_registry/cpp/functions/viz/candlestick.md
T
egutierrez 0bdf35a461 feat: add C++ ImGui functions for core UI and visualization
Funciones C++/ImGui para dashboards (grid, panel, docking, sidebar, tabs),
visualizaciones (candlestick, gauge, histogram, pie, sparkline, heatmap,
scatter, line, bar, surface3d, kpi, table), grafos (force layout, renderer,
viewport, spatial hash, types) y utilidades (time series buffer, tracy zones,
memory/fps overlay, plot theme).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 00:10:18 +02:00

2.8 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path framework params output
candlestick component cpp viz 1.0.0 pure void candlestick(const char* title, const double* dates, const double* opens, const double* closes, const double* lows, const double* highs, int count, float width_percent = 0.25f, bool tooltip = true) Renderiza un grafico de velas OHLC usando ImPlot custom rendering. Verde para velas alcistas (close >= open), rojo para bajistas.
implot
chart
visualization
gpu
candlestick
ohlc
finance
false
implot
imgui
false
cpp/functions/viz/candlestick.cpp imgui
name desc
title Titulo del grafico, se muestra como header del plot
name desc
dates Array de timestamps Unix o indices numericos del eje X, uno por vela
name desc
opens Array de precios de apertura, uno por vela
name desc
closes Array de precios de cierre, uno por vela
name desc
lows Array de precios minimos (punta inferior del wick), uno por vela
name desc
highs Array de precios maximos (punta superior del wick), uno por vela
name desc
count Numero de velas (longitud de todos los arrays)
name desc
width_percent Ancho del body de cada vela como fraccion del espacio entre puntos consecutivos (0.0-1.0, default 0.25)
name desc
tooltip Si true, muestra tooltip con valores O/H/L/C al hacer hover sobre una vela
Renderiza el grafico de velas OHLC en el frame ImGui actual, sin retornar valor

candlestick

Grafico de velas OHLC completo usando custom rendering de ImPlot. Dibuja body (open-close) y wicks (high-low) por vela usando ImPlot::GetPlotDrawList() y ImPlot::PlotToPixels() para conversion de coordenadas.

Debe llamarse dentro del render callback de fn::run_app (o cualquier contexto con un frame ImGui activo). El eje X se configura con ImPlotScale_Time para timestamps Unix.

Solo tiene overload double porque los datos financieros requieren doble precision.

Ejemplo

// arrays de datos financieros (timestamps Unix, precios)
candlestick("BTC/USD", dates, opens, closes, lows, highs, 90);

// sin tooltip, velas mas anchas
candlestick("ETH/USD", dates, opens, closes, lows, highs, 30, 0.6f, false);

Notas

  • El ancho de cada vela se calcula como (dates[1] - dates[0]) * width_percent * 0.5 en cada lado. Asume spacing uniforme entre velas.
  • Para un solo punto (count == 1) el spacing por defecto es 1.0.
  • La deteccion de hover usa un margen de 4px alrededor del area cuerpo+wick para facilitar la interaccion.
  • El eje X usa ImPlotScale_Time — si los datos son indices numericos simples (0, 1, 2...) en lugar de timestamps, pasar ImPlotAxisFlags_NoDecorations o cambiar SetupAxisScale.