No mercado de opções, a volatilidade opera em frações de segundo. Uma reversão repentina no ativo subjacente pode transformar uma operação lucrativa em prejuízo antes mesmo que o trader consiga abrir a interface da corretora e enviar uma ordem a mercado. Para quem opera opções ativamente na Angel One, o gerenciamento de risco manual introduz atrito emocional e latência operacional, dois fatores que degradam sistematicamente o capital no longo prazo.
A solução para eliminar essa ineficiência é delegar o encerramento defensivo a um script Python conectado diretamente à SmartAPI da Angel One, configurado para vigiar cada posição aberta e disparar uma ordem de saída no instante exato em que a perda atinge 10%.
Arquitetura de Monitoramento com a SmartAPI
A Angel One disponibiliza a SmartConnect API, permitindo autenticação programática via API Key e autenticação de dois fatores (TOTP). Para construir um bot de stop-loss determinístico, dividimos a aplicação em três etapas fundamentais:
- Autenticação e Leitura de Posições: Obter o feed de posições abertas (
getPositions). - Loop de Avaliação de Risco: Comparar o preço médio de compra (Average Buy Price) com o último preço negociado (LTP – Last Traded Price).
- Execução de Saída: Submeter a ordem de encerramento (
placeOrder) assim que a condição for satisfeita.
Implementando a Lógica em Python
O exemplo a seguir ilustra a estrutura essencial de monitoramento contínuo:
python
from smartapi import SmartConnect
import pyotp
import time
1. Conexão Segura
apikey = “SUAAPIKEY”
clientid = “SEUCLIENTID”
pwd = “SEUPIN”
totptoken = “SEUSEGREDOTOTP”
smartapi = SmartConnect(apikey)
totp = pyotp.TOTP(totptoken).now()
data = smartapi.generateSession(client_id, pwd, totp)
def verificarposicoes():
posicoes = smartapi.position().get(‘data’, [])
for pos in posicoes:
quantidade = int(pos.get('netqty', 0))
# Apenas posições compradas ativas
if quantidade > 0:
preco_medio = float(pos.get('buyprice', 0))
ltp = float(pos.get('ltp', 0))
simbolo = pos.get('tradingsymbol')
token = pos.get('symboltoken')
exchange = pos.get('exchange')
# Cálculo do drawdown percentual
desvalorizacao = ((ltp - preco_medio) / preco_medio) * 100
if desvalorizacao <= -10.0:
print(f"[STOP-LOSS DISPARADO] {simbolo}: Queda de {desvalorizacao:.2f}%. Executando saída...")
executar_venda(simbolo, token, exchange, quantidade)
def executarvenda(simbolo, token, exchange, quantidade):
params = {
“variety”: “NORMAL”,
“tradingsymbol”: simbolo,
“symboltoken”: token,
“transactiontype”: “SELL”,
“exchange”: exchange,
“ordertype”: “MARKET”,
“producttype”: “CARRYFORWARD”,
“duration”: “DAY”,
“price”: “0”,
“quantity”: str(quantidade)
}
smartapi.placeOrder(params)
Loop de monitoramento controlado para respeitar os limites da API
while True:
try:
verificar_posicoes()
time.sleep(1) # Intervalo para evitar rate-limits
except Exception as e:
print(f”Erro de comunicação: {e}”)
time.sleep(5)
Otimização Técnica: WebSocket vs. Polling REST
Fazer requisições REST periódicas a cada segundo funciona para carteiras pequenas, mas consome cotas de requisição e introduz um atraso de até 1000ms. Como especialista em IA e sistemas orientados a eventos para o mercado financeiro, a recomendação para ambientes de produção é migrar o rastreamento do LTP para o WebSocket da Angel One.
Com o SmartStream (WebSocket):
- O script subscreve apenas aos tokens das opções em carteira.
- A atualização ocorre por evento de tick (orientada a push, sem sobrecarga de rede).
- O cálculo da condição
<= -10%ocorre na memória local em microsegundos, emitindo a ordem com slippage reduzido.
Tratamento de Falhas e Robustez Operacional
Em automações financeiras, o código deve ser defensivo:
- Reconexão Silenciosa: Quedas de socket devem ser tratadas com reconexão exponencial imediata.
- Controle de Estado de Ordens: Evitar o envio de ordens duplicadas garantindo que a posição seja marcada como ‘pendente de saída’ assim que a ordem for disparada.
- Notificações em Tempo Real: Integrar webhooks do Telegram para alertar o operador a cada intervenção realizada pelo bot.
Conclusão
Construir um utilitário de stop-loss automático para a Angel One protege seu capital contra movimentos anômalos e disciplina a estratégia. Se você procura desenvolver infraestruturas de trading algorítmico, integrações avançadas de baixa latência ou estratégias inteligentes com gestão de risco personalizada, entre em contato para analisarmos o seu projeto de automação.


