LapseBacktestingTable
Biblioteca Pine Script para exibição visual de métricas avançadas de backtesting: Sharpe Ratio, Sortino Ratio, Omega Ratio e tabela de performance personalizada.
Tipo: Biblioteca (library)
Categoria: Backtesting
Fonte: TradingView Script
Visão geral
LapseBacktestingTable é a camada de apresentação do stack de backtesting em indicadores. Ela recebe as métricas calculadas por outras bibliotecas e as exibe em uma tabela visual formatada diretamente no gráfico.
Métricas suportadas: Sharpe Ratio, Sortino Ratio, Omega Ratio, Win Rate, Profit Factor, Max Drawdown, Total Trades, Avg Win, Avg Loss.
Métricas calculadas
Sharpe Ratio
Sharpe = (Retorno médio − Taxa livre de risco) / Desvio padrão dos retornos
Interpretação:
< 1.0 → Pobre
1.0–2.0 → Aceitável
> 2.0 → Bom
> 3.0 → ExcelenteSortino Ratio
Sortino = (Retorno médio − Taxa livre de risco) / Desvio padrão dos retornos NEGATIVOS
Diferença do Sharpe: penaliza APENAS a volatilidade negativa (drawdowns),
não a volatilidade positiva (gains). Mais justo para estratégias de tendência.Omega Ratio
Omega = Soma dos ganhos acima do threshold / Soma das perdas abaixo do threshold
Interpretação:
> 1.0 → Mais ganhos que perdas (bom)
= 1.0 → Equivalente
< 1.0 → Mais perdas que ganhos (ruim)API / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
render() | stats, position, size | — | Exibe a tabela no gráfico |
sharpe() | returns[], riskFree | float | Calcula Sharpe Ratio |
sortino() | returns[], riskFree | float | Calcula Sortino Ratio |
omega() | returns[], threshold | float | Calcula Omega Ratio |
setTheme() | colorScheme | — | Define esquema de cores da tabela |
Posicionamento da tabela
| Valor | Posição |
|---|---|
position.top_right | Canto superior direito |
position.top_left | Canto superior esquerdo |
position.bottom_right | Canto inferior direito |
position.bottom_left | Canto inferior esquerdo |
Exemplo de uso
//@version=6
indicator("Backtest com Tabela de Métricas", overlay=true)
import author/BackTestLib/1 as bt
import author/LapseBacktestingTable/1 as lt
bt.init()
// Lógica de sinais
longSignal = ta.crossover(ta.ema(close, 10), ta.ema(close, 30))
shortSignal = ta.crossunder(ta.ema(close, 10), ta.ema(close, 30))
if longSignal then bt.entry(close, "long", 1)
if shortSignal then bt.exit(close, "saída")
// Obter métricas
stats = bt.stats()
// Calcular ratios avançados
returns = bt.returnsSeries()
s = lt.sharpe(returns, 0.0) // risk-free = 0
so = lt.sortino(returns, 0.0)
o = lt.omega(returns, 0.0)
// Exibir tabela
if barstate.islastconfirmedhistory
lt.render(stats, position.top_right, size.normal)Exemplo visual da tabela
┌─────────────────────────────┐
│ BACKTEST PERFORMANCE │
├─────────────┬───────────────┤
│ Trades │ 142 │
│ Win Rate │ 58.5% │
│ Profit F. │ 1.87 │
│ Max DD │ -12.3% │
│ Sharpe │ 1.54 │
│ Sortino │ 2.31 │
│ Omega │ 1.62 │
└─────────────┴───────────────┘Integrações
| Script | Como combinar |
|---|---|
| BackTestLib | Fonte primária de métricas para a tabela |
| Position (Electrified) | Dados de trade individuais |
| MonthlyReturnsVsMarket | Complementar com visão mensal de P&L |
Limitações
| Limitação | Impacto |
|---|---|
| Depende de dados calculados por outra biblioteca | Não calcula métricas sozinha |
| Sharpe/Sortino sensíveis ao período | Resultados variam muito com o lookback |
| Tabela ocupa espaço no gráfico | Pode sobrepor outros elementos visuais |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
LibBacktestingDayRange
Biblioteca Pine Script para filtrar backtesting por range de datas específico. Escrita em Pine Script v1 com documentação incompleta (TODOs).
Position (Electrified)
Biblioteca Pine Script v6 para simulação de trades individuais dentro de indicadores: rastreia entrada, saída, PnL e estado da posição sem usar strategy().