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

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 fechadas

Matemá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 × mult

Estratégias de saída

ModoDescrição
fixedTP e SL em ticks/preço fixo
atrTP e SL baseados em ATR × multiplicador
trailingTrailing stop ativo desde a entrada
time_basedSaída forçada ao fim da sessão
combinedTP fixo + trailing stop (saída pelo que vier primeiro)

API / Funções

FunçãoParâmetrosRetornoDescrição
setSession()startTime, endTime, timezoneDefine a janela de operação
entry()price, direction, tp, slRegistra entrada com TP/SL
update()high, low, closeboolAtualiza estado, retorna true se saiu
exitResult()ExitInfoRetorna causa e preço da saída
tpFromAtr()atr, multfloatCalcula TP em preço baseado em ATR
slFromAtr()atr, multfloatCalcula 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ída

Integrações

ScriptComo combinar
Vantage NewsBloquear entradas em dias de notícias dentro da sessão
LapseBacktestingTableExibir métricas avançadas do backtest
TradeTrackerv2Visualizar trades no gráfico

Limitações

LimitaçãoImpacto
Sessões definidas com horários fixosNão ajusta para horário de verão/inverno automaticamente
Sem simulação de gaps de aberturaTrades noturnos podem ter preços irreais
Uma posição por vezSem pyramiding

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

On this page