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

LiveTracker by N&M

Biblioteca Pine Script para rastreamento de posição ao vivo com MTM PnL em tempo real, execução de take-profits parciais e monitoramento de posição aberta barra a barra.

Autores: N&M Tipo: Biblioteca (library) Categoria: Gestão de Ordens Fonte: TradingView Script


Visão geral

LiveTracker é projetado para monitoramento em tempo real de posições abertas, exibindo o MTM (Mark-to-Market) PnL atual e gerenciando execuções de take-profits parciais conforme o preço atinge os alvos.

Diferença das outras bibliotecas de gestão: enquanto OrderLib e LevelsManager focam na estrutura das ordens, LiveTracker foca no estado ao vivo — ideal para estratégias que precisam de feedback visual em tempo real durante o pregão.


Conceitos

MTM (Mark-to-Market) PnL

MTM PnL = (preço atual − preço de entrada) × quantidade × direção

Para Long  com entrada em 100, preço atual 103:
  MTM = (103 − 100) × qtd = +3.0 por unidade

Atualizado a cada tick/barra — reflete o estado real da posição a qualquer momento.

Partial TPs (take-profits parciais)

Posição: 100 contratos a 100

Preço atinge TP1 = 102:
  → Fechar 50 contratos → restam 50
  → MTM PnL: realizado $100 + flutuante dos 50 restantes

Preço atinge TP2 = 105:
  → Fechar 50 contratos restantes → posição fechada
  → PnL total realizado

API / Funções

FunçãoParâmetrosRetornoDescrição
open()price, qty, directionAbre rastreamento de posição
addTP()price, qty_pctRegistra TP parcial
setSL()priceDefine stop-loss
tick()currentPriceMTMResultAtualiza MTM a cada tick/barra
getMTM()currentPricefloatPnL não realizado atual
realizedPnL()floatSoma dos PnLs realizados
totalPnL()currentPricefloatRealizado + não realizado
isOpen()boolPosição ainda está aberta?
render()positionExibe painel visual no gráfico

Exemplo de uso

//@version=6
indicator("LiveTracker — Monitoramento em Tempo Real", overlay=true)

import NM/LiveTracker/1 as lt

atr = ta.atr(14)
longSignal = ta.crossover(ta.ema(close, 10), ta.ema(close, 30))

if longSignal and not lt.isOpen()
    lt.open(close, 100, "long")       // 100 contratos a preço atual
    lt.addTP(close + atr, 0.50)       // TP1: 50% da posição
    lt.addTP(close + atr * 2, 0.50)   // TP2: restante
    lt.setSL(close - atr * 0.75)      // Stop-loss

// Atualizar a cada barra
if lt.isOpen()
    result = lt.tick(close)
    // result.tpHit:   qual TP foi atingido (1, 2, 3... ou 0)
    // result.slHit:   verdadeiro se SL foi atingido
    // result.pnl:     MTM PnL atual

// Renderizar painel
lt.render(position.top_right)

Painel visual renderizado

┌──────────────────────────────────┐
│  LIVE TRACKER                    │
├─────────────┬────────────────────┤
│ Direção     │ LONG               │
│ Entrada     │ 100.00             │
│ Qtd         │ 50/100             │
│ MTM PnL     │ +3.50%             │
│ Realizado   │ +2.00% (TP1 ✓)    │
│ Total       │ +5.50%             │
│ SL          │ 97.50              │
└─────────────┴────────────────────┘

Integrações

ScriptComo combinar
LevelsManagerLevelsManager define a estrutura, LiveTracker monitora ao vivo
AlertSenderLibraryEnviar webhook quando cada TP for atingido
TradeTrackerv2Registrar historicamente os trades ao fechar

Limitações

LimitaçãoImpacto
Atualiza por barra (não tick em tempo real)Em timeframes baixos, pode perder intrabar
Apenas uma posição por vezSem suporte a múltiplas posições simultâneas
Sem conexão com exchangeApenas simulação — não executa ordens reais

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

On this page