SAT_BACKTEST
Biblioteca Pine Script de backtesting com suporte a sessões, fusos horários, matemática de TP/SL e estratégias de saída configuráveis.
Tipo: Biblioteca (library)
Categoria: Backtesting
Fonte: TradingView Script
Visão geral
SAT_BACKTEST é uma biblioteca de backtesting especializada em sistemas que operam em sessões específicas (ex: apenas durante a sessão de Nova York) com lógica de saída configurável (TP/SL em ticks ou %, trailing stop, time-based exit).
Diferencial vs. BackTestLib: SAT_BACKTEST foca em estratégias com restrições de horário e fusos — essencial para sistemas de day trading em futuros americanos.
Como funciona
Gerenciamento de sessões
SAT_BACKTEST define "janelas de operação" baseadas em horário:
New York session: 09:30–16:00 ET
Asian session: 20:00–02:00 ET
London session: 03:00–12:00 ET
Fora da sessão configurada → sem entradas novas, posições podem ser fechadasMatemática de TP/SL
A biblioteca oferece conversão automática entre:
Ticks → Preço: price = entry + (ticks × syminfo.mintick)
Preço → %: pct = (target_price - entry) / entry × 100
ATR-based: tp = entry + atr × mult
sl = entry - atr × multEstratégias de saída
| Modo | Descrição |
|---|---|
fixed | TP e SL em ticks/preço fixo |
atr | TP e SL baseados em ATR × multiplicador |
trailing | Trailing stop ativo desde a entrada |
time_based | Saída forçada ao fim da sessão |
combined | TP fixo + trailing stop (saída pelo que vier primeiro) |
API / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
setSession() | startTime, endTime, timezone | — | Define a janela de operação |
entry() | price, direction, tp, sl | — | Registra entrada com TP/SL |
update() | high, low, close | bool | Atualiza estado, retorna true se saiu |
exitResult() | — | ExitInfo | Retorna causa e preço da saída |
tpFromAtr() | atr, mult | float | Calcula TP em preço baseado em ATR |
slFromAtr() | atr, mult | float | Calcula SL em preço baseado em ATR |
Exemplo de uso
//@version=6
indicator("SAT Backtest — Day Trading Futuros", overlay=true)
import author/SAT_BACKTEST/1 as sat
// Configurar sessão (ES, NQ, YM — sessão NY)
sat.setSession("0930", "1600", "America/New_York")
// Parâmetros
atr = ta.atr(14)
tpMult = 2.0
slMult = 1.0
// Sinal de entrada
longSignal = ta.crossover(ta.ema(close, 10), ta.ema(close, 30))
shortSignal = ta.crossunder(ta.ema(close, 10), ta.ema(close, 30))
if longSignal and sat.inSession()
tp = sat.tpFromAtr(atr, tpMult)
sl = sat.slFromAtr(atr, slMult)
sat.entry(close, "long", tp, sl)
// Atualizar estado da posição
if sat.update(high, low, close)
result = sat.exitResult()
// result.reason: "tp", "sl", "time_exit"
// result.price: preço de saídaIntegrações
| Script | Como combinar |
|---|---|
| Vantage News | Bloquear entradas em dias de notícias dentro da sessão |
| LapseBacktestingTable | Exibir métricas avançadas do backtest |
| TradeTrackerv2 | Visualizar trades no gráfico |
Limitações
| Limitação | Impacto |
|---|---|
| Sessões definidas com horários fixos | Não ajusta para horário de verão/inverno automaticamente |
| Sem simulação de gaps de abertura | Trades noturnos podem ter preços irreais |
| Uma posição por vez | Sem pyramiding |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
BackTestLib
Biblioteca Pine Script para backtesting completo dentro de indicadores (indicator()), contornando as limitações do strategy() nativo do TradingView.
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.