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

OrderLib

Biblioteca Pine Script para gestão de ordens com elementos visuais, suporte a múltiplos take-profits e cálculo de taxas da Binance (maker/taker).

Tipo: Biblioteca (library) Categoria: Gestão de Ordens Fonte: TradingView Script


Visão geral

OrderLib encapsula a lógica de criação e gerenciamento de ordens em Pine Script, adicionando elementos visuais (linhas, labels, boxes) e calculando automaticamente o impacto das taxas da Binance no resultado real do trade.

Problema que resolve: Simular com precisão o lucro líquido de um trade em cripto requer descontar maker/taker fees em cada leg — algo que o strategy() nativo suporta mas que se torna complexo ao combinar com visualizações customizadas.


Como funciona

Gestão de múltiplos TPs

Entrada: 100
  TP1: 102 (50% da posição)
  TP2: 105 (30% da posição)
  TP3: 110 (20% da posição)
  SL:   98

Resultado se TP1 e TP2 atingidos, depois SL:
  TP1: +50% × 2% = +1.0%
  TP2: +30% × 5% = +1.5%
  SL:  -20% × 2% = -0.4%
  Net (antes de fees): +2.1%
  Fees (Binance taker 0.04% × 4 legs): -0.16%
  Net real: +1.94%

Cálculo de taxas Binance

NívelMakerTaker
Regular0.02%0.04%
VIP 10.016%0.04%
VIP 20.014%0.035%

API / Funções

FunçãoParâmetrosRetornoDescrição
createOrder()entry, sl, directionOrderIdCria uma ordem com SL
addTP()id, price, qty_pctAdiciona TP parcial à ordem
updateOrder()id, high, lowboolAtualiza estado; retorna true se fechou
netPnL()id, makerFee, takerFeefloatPnL líquido descontando fees
drawOrder()idDesenha a ordem no gráfico

Exemplo de uso

//@version=6
indicator("OrderLib — Multi-TP com Fees", overlay=true)

import author/OrderLib/1 as ol

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

var int orderId = na

if longSignal
    entry = close
    sl    = close - atr * 1.0
    orderId := ol.createOrder(entry, sl, "long")

    // Adicionar 3 TPs
    ol.addTP(orderId, close + atr * 1.5, 0.50)  // 50% em TP1
    ol.addTP(orderId, close + atr * 3.0, 0.30)  // 30% em TP2
    ol.addTP(orderId, close + atr * 5.0, 0.20)  // 20% em TP3

    // Desenhar no gráfico
    ol.drawOrder(orderId)

// Atualizar estado
if not na(orderId)
    if ol.updateOrder(orderId, high, low)
        // Calculado com fees da Binance (maker 0.02%, taker 0.04%)
        pnl = ol.netPnL(orderId, 0.0002, 0.0004)
        label.new(bar_index, close, "Net: " + str.tostring(pnl, "##.##%"))

Integrações

ScriptComo combinar
LevelsManagerGerenciar até 6 TPs com OrderLib como executor
WCWebLibEnviar alertas de cada TP atingido via webhook
TradeTrackerv2Visualizar trades fechados no histórico

Limitações

LimitaçãoImpacto
Taxas hardcoded para BinanceAjustar manualmente para outras exchanges
Sem simulação de slippagePnL pode ser mais otimista que o real
Pine Script tem limite de objetos visuaisHistórico longo pode atingir limites

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

On this page