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ível | Maker | Taker |
|---|---|---|
| Regular | 0.02% | 0.04% |
| VIP 1 | 0.016% | 0.04% |
| VIP 2 | 0.014% | 0.035% |
API / Funções
| Função | Parâmetros | Retorno | Descrição |
|---|---|---|---|
createOrder() | entry, sl, direction | OrderId | Cria uma ordem com SL |
addTP() | id, price, qty_pct | — | Adiciona TP parcial à ordem |
updateOrder() | id, high, low | bool | Atualiza estado; retorna true se fechou |
netPnL() | id, makerFee, takerFee | float | PnL líquido descontando fees |
drawOrder() | id | — | Desenha 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
| Script | Como combinar |
|---|---|
| LevelsManager | Gerenciar até 6 TPs com OrderLib como executor |
| WCWebLib | Enviar alertas de cada TP atingido via webhook |
| TradeTrackerv2 | Visualizar trades fechados no histórico |
Limitações
| Limitação | Impacto |
|---|---|
| Taxas hardcoded para Binance | Ajustar manualmente para outras exchanges |
| Sem simulação de slippage | PnL pode ser mais otimista que o real |
| Pine Script tem limite de objetos visuais | Histórico longo pode atingir limites |
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
TradeTrackerv2
Biblioteca Pine Script para visualização de trades diretamente no gráfico, com cálculo de R-multiple e rastreamento histórico de entradas e saídas.
LevelsManager
Biblioteca Pine Script para gerenciamento de até 6 take-profits escalonados e 1 stop-loss dinâmico por condição, com ajuste automático de tamanho de posição por TP.