LibBacktestingDayRange
Biblioteca Pine Script para filtrar backtesting por range de datas específico. Escrita em Pine Script v1 com documentação incompleta (TODOs).
Tipo: Biblioteca (library)
Categoria: Backtesting
Versão Pine Script: v1 (sintaxe legada)
Aviso: Documentação incompleta — contém seções marcadas como TODO
Fonte: TradingView Script
Visão geral
LibBacktestingDayRange resolve um problema simples mas fundamental: restringir a execução de um backtest a um intervalo específico de datas, sem que sinais fora desse período sejam contabilizados.
Caso de uso típico: Você quer testar uma estratégia apenas durante 2024, ou apenas no primeiro trimestre de 2025, sem precisar mudar o zoom do gráfico ou filtrar manualmente as barras.
⚠️ Esta biblioteca é escrita em Pine Script v1 (sintaxe legada) e possui seções de documentação marcadas como TODO pelo autor. Use com cautela e verifique compatibilidade com versões mais recentes.
Como funciona
Filtro por timestamp
// A biblioteca verifica se a barra atual está dentro do range:
inRange = time >= startTimestamp and time <= endTimestampUso em conjunto com sinais
Sinal de entrada detectado
↓
inRange(time)?
Sim → executar backtest normalmente
Não → ignorar sinalAPI / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
inRange() | time, startDate, endDate | bool | Verdadeiro se a barra está dentro do range |
setRange() | startDate, endDate | — | Define o range global da sessão |
daysInRange() | — | int | Número de dias calendário no range |
Exemplo de uso
//@version=6
indicator("Backtest com Range de Datas", overlay=true)
// Nota: esta lib é v1, mas pode ser importada em v6
import author/LibBacktestingDayRange/1 as dr
// Definir range: 2024 inteiro
startDate = timestamp("2024-01-01 00:00")
endDate = timestamp("2024-12-31 23:59")
// Filtrar barras dentro do range
ativo = dr.inRange(time, startDate, endDate)
// Sua lógica de backtest
longSignal = ta.crossover(ta.ema(close, 10), ta.ema(close, 30))
if ativo and longSignal
// Registrar trade apenas se dentro do range
label.new(bar_index, low, "Long", style=label.style_label_up, color=color.green)Integrações
| Script | Como combinar |
|---|---|
| BackTestLib | Adicionar filtro de data ao motor de backtesting |
| SAT_BACKTEST | Restringir sessões a um período específico |
| MonthlyReturnsVsMarket | Analisar retornos apenas no range selecionado |
Limitações
| Limitação | Impacto |
|---|---|
| Pine Script v1 | Pode gerar avisos de depreciação em versões mais novas |
| Documentação incompleta (TODOs) | Comportamento em edge cases pode ser imprevisível |
| Sem validação de range | Se endDate < startDate, comportamento indefinido |
| Sem suporte a horário de verão | Ranges podem deslocar 1 hora em transições DST |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
Replica Backtesting Engine
Biblioteca Pine Script que replica o motor de backtesting nativo do TradingView usando arrays, permitindo simulação de estratégias dentro de indicadores. Suporta apenas posições long.
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.