Kaique Mitsuo Silva Yamamoto
Mercado financeiroAutomação de EstratégiasTradingView / Pine ScriptBibliotecasBacktesting

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  → Excelente

Sortino 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çãoParâmetrosRetornoDescrição
render()stats, position, sizeExibe a tabela no gráfico
sharpe()returns[], riskFreefloatCalcula Sharpe Ratio
sortino()returns[], riskFreefloatCalcula Sortino Ratio
omega()returns[], thresholdfloatCalcula Omega Ratio
setTheme()colorSchemeDefine esquema de cores da tabela

Posicionamento da tabela

ValorPosição
position.top_rightCanto superior direito
position.top_leftCanto superior esquerdo
position.bottom_rightCanto inferior direito
position.bottom_leftCanto 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

ScriptComo combinar
BackTestLibFonte primária de métricas para a tabela
Position (Electrified)Dados de trade individuais
MonthlyReturnsVsMarketComplementar com visão mensal de P&L

Limitações

LimitaçãoImpacto
Depende de dados calculados por outra bibliotecaNão calcula métricas sozinha
Sharpe/Sortino sensíveis ao períodoResultados variam muito com o lookback
Tabela ocupa espaço no gráficoPode sobrepor outros elementos visuais

Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.

On this page