Saltar al contenido

Informe · Medallion Insights

El informe Power BI, con cada medida a la vista

El warehouse del pipeline alimenta un informe interactivo de Power BI, Medallion Insights. Está versionado como proyecto de Power BI (PBIP): el modelo semántico en TMDL, las páginas en PBIR, todo texto plano que se revisa en una pull request. Esta página es el catálogo de ese modelo, copiado de los archivos fuente, para que nadie tenga que creer en la palabra «Power BI» sin ver qué hay detrás.

Catálogo copiado del commit 23109f5 (2026-08-20) · el modelo se carga contra el warehouse en Supabase desde Power BI Desktop

Modelo semántico

Una dimensión, cuatro tablas de hechos y dos agregados

Estrella clásica: dim_assets es la única dimensión y las cuatro tablas de hechos se relacionan con ella por symbol. Los dos agregados, overfitting_summary y leaderboard, se leen solos: llegan resumidos desde dbt para que el informe y el sitio no puedan discrepar.

Relaciones

  • assets_to_combinationscombination_analysis.symboldim_assets.symbolmuchos a uno hacia dim_assets.symbol
  • assets_to_summaryasset_summary.symboldim_assets.symbolmuchos a uno hacia dim_assets.symbol
  • assets_to_fxfx_decomposition.symboldim_assets.symbolmuchos a uno hacia dim_assets.symbol
  • assets_to_curvesequity_curves.symboldim_assets.symbolmuchos a uno hacia dim_assets.symbol

Tablas

dim_assets

dimensión

una fila por activo · fuente silver.dim_assets · 6 columnas
combination_analysis

hechos

una fila por activo y variante de estrategia · fuente gold.mart_combination_analysis · 21 columnas · 11 medidas
asset_summary

hechos

una fila por activo · fuente gold.mart_asset_summary · 8 columnas
fx_decomposition

hechos

una fila por ADR y ventana · fuente gold.mart_fx_decomposition · 9 columnas · 4 medidas
equity_curves

hechos

una fila por activo, estrategia y barra · fuente gold.backtest_runs ⨝ gold.backtest_equity_curves · 5 columnas · 2 medidas
overfitting_summary

agregado

una fila por número de señales combinadas, más un total · fuente gold.mart_overfitting_summary · 9 columnas
leaderboard

agregado

una fila por estrategia, clase y región, más totales · fuente gold.mart_strategy_leaderboard · 15 columnas

Medidas DAX

Diecisiete medidas, con su expresión

Cada fila enlaza a la línea exacta del archivo TMDL que la define, fijada al commit del catálogo.

MedidaExpresiónFormatoQué responde
combination_analysis · 11 medidas
Variants EvaluatedCOUNTROWS('combination_analysis')#,0Cuántas variantes de estrategia hay en el filtro actual.
Winners In-SampleCALCULATE([Variants Evaluated], 'combination_analysis'[beat_bh_is] = TRUE())#,0Cuántas superaron a comprar y mantener en la ventana de entrenamiento.
Winners IS & OOSCALCULATE([Variants Evaluated], 'combination_analysis'[beat_bh_is] = TRUE(), 'combination_analysis'[beat_bh_oos] = TRUE())#,0Cuántas de esas siguieron ganando en la ventana ciega.
OOS Survival RateDIVIDE([Winners IS & OOS], [Winners In-Sample])0.0%La cifra de honestidad: supervivientes sobre ganadoras dentro de muestra.
Beat B&H % (full)DIVIDE(CALCULATE([Variants Evaluated], 'combination_analysis'[beat_bh_full] = TRUE()), [Variants Evaluated])0.0%Proporción que supera a comprar y mantener en todo el periodo.
Beat B&H % (OOS)DIVIDE(CALCULATE([Variants Evaluated], 'combination_analysis'[beat_bh_oos] = TRUE()), [Variants Evaluated])0.0%Proporción que lo supera fuera de muestra.
Avg ExposureAVERAGE('combination_analysis'[exposure])0.0%Fracción del tiempo con posición abierta.
Avg Excess ReturnAVERAGE('combination_analysis'[excess_return])+0.0%;-0.0%;0.0%Retorno medio por encima de comprar y mantener.
Avg OOS Excess ReturnAVERAGE('combination_analysis'[oos_excess_return])+0.0%;-0.0%;0.0%Lo mismo, solo en la ventana ciega.
Median SharpeMEDIAN('combination_analysis'[sharpe])0.00Sharpe mediano, que un valor extremo no arrastra.
Zero-Trade VariantsCALCULATE([Variants Evaluated], 'combination_analysis'[n_trades] = 0)#,0Variantes que nunca operaron: no pueden contar como ganadoras.
fx_decomposition · 4 medidas
USD ReturnAVERAGE('fx_decomposition'[usd_return])+0.0%;-0.0%;0.0%Retorno del ADR para quien invierte en dólares.
Local ReturnAVERAGE('fx_decomposition'[local_return])+0.0%;-0.0%;0.0%Retorno de la empresa en su moneda.
FX MoveAVERAGE('fx_decomposition'[fx_return])+0.0%;-0.0%;0.0%Movimiento de la divisa en la ventana.
FX Drag (pp)AVERAGE('fx_decomposition'[fx_drag_pp])+0.0%;-0.0%;0.0%Puntos porcentuales que la divisa quitó o sumó al inversor en dólares.
equity_curves · 2 medidas
Strategy EquityAVERAGE('equity_curves'[equity])$#,0Valor de la cartera de la estrategia en cada barra.
Buy & Hold EquityAVERAGE('equity_curves'[buy_hold_equity])$#,0Valor de comprar y mantener en la misma barra.

Páginas del informe

Las páginas, visual por visual

Lo que muestra cada página sale de los archivos PBIR. Las capturas se exportan desde Power BI Desktop y aparecen aquí cuando existen.

The Verdict

7 visuales

El embudo de honestidad: variantes evaluadas, ganadoras dentro de muestra y supervivientes fuera de muestra, con la supervivencia y el tiempo en mercado por número de señales combinadas.

Sin captura todavía: la lista de visuales sale del archivo PBIR de la página.

  1. tarjetacardVariants[Variants Evaluated]
  2. tarjetacardWinnersIS[Winners In-Sample]
  3. tarjetacardSurvivors[Winners IS & OOS]
  4. tarjetacardSurvival[OOS Survival Rate]
  5. columnasOut-of-sample survival by number of combined signalscombination_analysis.n_components · [OOS Survival Rate]
  6. columnasTime in market collapses as signals are ANDedcombination_analysis.n_components · [Avg Exposure]
  7. tablaThe honesty funnel, row by rowoverfitting_summary.n_components · overfitting_summary.n_variants · overfitting_summary.n_beat_is · overfitting_summary.n_beat_is_and_oos · overfitting_summary.oos_survival_rate · overfitting_summary.avg_exposure

Filtros por región, clase de activo y tipo de estrategia sobre todas las variantes: dispersión de exposición contra exceso fuera de muestra, tabla de líderes y la tabla completa.

Sin captura todavía: la lista de visuales sale del archivo PBIR de la página.

  1. segmentadorslRegiondim_assets.region
  2. segmentadorslClassdim_assets.asset_class
  3. segmentadorslKindcombination_analysis.strategy_kind
  4. tarjetacardBeatOOS[Beat B&H % (OOS)]
  5. dispersiónExposure vs out-of-sample excess (each dot = a strategy)combination_analysis.strategy · [Avg Exposure] · [Avg OOS Excess Return]
  6. tablaLeaderboard (filter is_grand_total = True for the 5-strategy view)leaderboard.strategy · leaderboard.n_backtests · leaderboard.beat_rate · leaderboard.avg_excess_return · leaderboard.median_sharpe · leaderboard.oos_survival_rate
  7. tablaEvery variantcombination_analysis.symbol · combination_analysis.strategy · combination_analysis.n_components · combination_analysis.exposure · combination_analysis.excess_return · combination_analysis.oos_excess_return · combination_analysis.beat_bh_oos

Los ADR latinoamericanos partidos en empresa y divisa, con selector de ventana: 30, 90 o 365 días, o todo el periodo.

Sin captura todavía: la lista de visuales sale del archivo PBIR de la página.

  1. segmentadorslWindowfx_decomposition.window_label
  2. tarjetacardDrag[FX Drag (pp)]
  3. barrasWhat the currency did to the USD investor, by ADRfx_decomposition.symbol · [FX Drag (pp)]
  4. tabla(1 + r_USD) x (1 + r_FX) = (1 + r_local)fx_decomposition.symbol · fx_decomposition.fx_pair · [USD Return] · [Local Return] · [FX Move] · [FX Drag (pp)]

Licenciamiento

Por qué no hay un informe embebido

«Publicar en la web» exige una licencia Power BI Pro sobre un tenant de trabajo cuyo administrador permita el embebido público, y además hace público el propio conjunto de datos. Este proyecto corre con presupuesto cero, así que el informe se entrega como fuente: el proyecto PBIP se abre gratis en Power BI Desktop y se refresca contra el warehouse. Decirlo abiertamente también es evidencia: saber qué cuesta publicar un informe es parte del oficio.

  1. 1Instalar Power BI Desktop, gratis y sin cuenta para editar.
  2. 2Abrir MedallionInsights.pbip desde la carpeta powerbi del repositorio.
  3. 3Al refrescar, introducir la credencial de la base de datos una sola vez; queda en el almacén local de Desktop.

Volver al inicio