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

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 <= endTimestamp

Uso em conjunto com sinais

Sinal de entrada detectado

inRange(time)?
   Sim → executar backtest normalmente
   Não → ignorar sinal

API / Funções

FunçãoParâmetrosRetornoDescrição
inRange()time, startDate, endDateboolVerdadeiro se a barra está dentro do range
setRange()startDate, endDateDefine o range global da sessão
daysInRange()intNú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

ScriptComo combinar
BackTestLibAdicionar filtro de data ao motor de backtesting
SAT_BACKTESTRestringir sessões a um período específico
MonthlyReturnsVsMarketAnalisar retornos apenas no range selecionado

Limitações

LimitaçãoImpacto
Pine Script v1Pode 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 rangeSe endDate < startDate, comportamento indefinido
Sem suporte a horário de verãoRanges 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.

On this page