Type/to search
2
Follow
484
Followers
Lançamento de instrumentos TradFi: Estratégia de Grid Adaptável
Original
Created 2026-05-15 11:21:55  Updated 2026-05-18 16:52:00
 2
 315

img

Prefácio: Por que não fazer criptomoedas, e sim TradFi?

Qualquer pessoa que já fez grid trading no mercado de criptomoedas já teve o mesmo pesadelo: o grid é montado, o preço despenca, todas as posições ficam presas, você precisa aumentar a margem ou é liquidado diretamente. O charme das criptomoedas é que não há limites para a alta ou baixa, mas isso é exatamente o maior inimigo da estratégia de grid — o grid nasceu para mercados laterais; um movimento unilateral pode levar à ruína total.

Então, existe uma classe de ativos que mantenha volatilidade intradiária suficiente para acionar o grid com frequência, mas que não sofra puxadas ou quebras violentas de 30%, 50% do nada? A resposta são os produtos TradFi.

Os derivativos TradFi (Finanças Tradicionais), incluindo contratos perpétuos de ativos tradicionais como S&P 500, Nasdaq, Ouro, Petróleo, Forex, são ancorados por fundamentos reais subjacentes. Os índices de ações são restringidos pelos lucros corporativos e políticas do Federal Reserve, as commodities são influenciadas pela oferta e demanda, e as taxas de câmbio são determinadas pela relação relativa entre duas economias soberanas. Esses ativos não sobem 5x da noite para o dia sem motivo, nem despencam 80% por causa de um tweet. Seus preços têm "gravidade" — podem oscilar no curto prazo, mas no longo prazo tendem a reverter aos fundamentos.

Essa característica é quase uma combinação perfeita para a estratégia de grid: flutuações normais intradiárias de 1% a 3% são suficientes para acionar os grids repetidamente; mesmo em condições extremas de mercado, o grid não é completamente destruído, dando espaço suficiente para stop loss e gerenciamento de capital. Esta estratégia é construída exatamente sobre essa lógica — escanear automaticamente todos os ativos TradFi, encontrar os que estão mais ativos em termos de volatilidade, construir grids circulantes neles, e realizar a rotação automática de ativos quando a estrutura de volatilidade muda.


Contexto: Exchanges de criptomoedas listaram silenciosamente uma série de novos produtos

Nos últimos dois anos, exchanges líderes de criptomoedas como OKX, Bitget listaram silenciosamente uma grande quantidade de produtos de contratos perpétuos TradFi, cobrindo desde índices de ações dos EUA (S&P 500, Nasdaq 100), ações individuais (Apple, NVIDIA, Tesla), até commodities (Ouro, Petróleo, Gás Natural) e Forex (Euro, Iene). Simplificando, agora você pode negociar ações dos EUA, ouro e forex diretamente em exchanges de criptomoedas, 7×24 horas, e ainda pode usar alavancagem.

Isso tem um significado importante para traders quantitativos. Por um lado, esses ativos herdam as propriedades fundamentais dos ativos financeiros tradicionais, e os preços não disparam ou desabam sem razão; por outro lado, ao serem listados em exchanges de criptomoedas, eles usam a estrutura de negociação de contratos perpétuos, com liquidez suficiente, taxas transparentes, e a API é completamente idêntica à das moedas comuns, permitindo integração perfeita com estratégias quantitativas.

Em outras palavras, esses produtos abriram um novo espaço de arbitragem: usar a infraestrutura de negociação de criptomoedas para fazer arbitragem lateral em ativos financeiros tradicionais. Esta estratégia é personalizada para este cenário — usar um programa para filtrar automaticamente os ativos mais voláteis, rodar grids neles e lucrar com a oscilação.


I. Lógica de Seleção: Apenas os Ativos com Maior Volatilidade

Se o grid pode ou não lucrar, 60% da batalha está na seleção do ativo. Escolha o ativo certo, e o grid será acionado dezenas de vezes por dia, acumulando lucros naturalmente; escolha o ativo errado, e o grid ficará parado por uma semana, com o capital imobilizado e consumindo margem.

O critério de seleção desta estratégia tem apenas uma dimensão: a amplitude média diária das últimas N velas diárias.

Pontuação de Volatilidade = Σ [ (Máxima_i − Mínima_i) / Fechamento_i × 100 ] / N

A implementação do código é a seguinte, a lógica é clara:

python
def score_symbol(info): bars = exchange.GetRecords(info["sym"], PERIOD_D1, KLINE_COUNT + 2) if not bars or len(bars) < 3: return None bars = bars[-KLINE_COUNT:] atr_pcts = [(b["High"] - b["Low"]) / b["Close"] * 100 for b in bars if b["Close"] > 0] avg_atr = sum(atr_pcts) / len(atr_pcts) # A amplitude média diária deve ser pelo menos 1,5 vezes o espaçamento do grid, caso contrário, é descartado if avg_atr < GRID_RATIO * 100 * 1.5: return None return {"sym": info["sym"], "atr": round(avg_atr, 3), "price": bars[-1]["Close"]}

A estratégia escaneia periodicamente todos os ativos TradFi e os classifica, selecionando os TOP_N para manter na carteira. O design do limite de entrada é crítico: a amplitude média diária deve ser pelo menos 1,5 vezes o espaçamento do grid; caso contrário, o preço pode nem passar por um grid em um dia, e o ativo é descartado para evitar que o capital fique parado em ativos ineficientes, consumindo margem à toa.

A identificação dos ativos também requer tratamento especial. Na plataforma FMZ, os ativos TradFi são distinguidos das criptomoedas comuns pelo campo instCategory:

python
def scan_tradfi(): markets = exchange.GetMarkets() for sym, mkt in markets.items(): if not sym.endswith("USDT.swap"): continue info = mkt.get("Info") or {} # Apenas ativos com instCategory != 1 são TradFi if int(info.get("instCategory", 1)) == 1: continue result.append({"sym": sym, "base": base, "cat": cat})

II. Estrutura do Grid: Comprar na Baixa, Vender na Alta, Arbitragem em Ciclo

img

No ativo selecionado, com o preço atual como centro, estenda uma certa proporção para cima e para baixo, e divida os grids em intervalos iguais (proporção geométrica). Abaixo do preço atual, coloque uma ordem de compra em cada grid, esperando que o preço caia e seja executado.

O código central para construir o grid é o seguinte:

python
def build_grid(sym, price): low = price * (1 - LOWER_RANGE) high = price * (1 + LOWER_RANGE) # Dividir grids em proporção geométrica grids, p = [], low while p <= high * 1.001: grids.append(round(p, g_states[sym]["pp"])) p = p * (1 + GRID_RATIO) for i in range(len(grids) - 1): buy_p, sell_p = grids[i], grids[i + 1] if buy_p < price: oid = buy_open(sym, buy_p, GRID_VALUE) # Abaixo do preço atual, colocar ordem de compra diretamente g["status"] = "pending_buy" if oid else "skip" else: g["status"] = "above" # Acima do preço atual, não colocar ordem ainda, esperar o preço cair

A sincronização do grid é o loop central da operação da estratégia, responsável por verificar o status de cada ordem e responder:

python
def sync(sym): for g in grids: if g["status"] == "pending_buy": s, deal, avgp = check_order(g["buy_oid"]) if s == "filled": # Ordem de compra executada → colocar ordem de take profit imediatamente oid = sell_close(sym, g["sp"], ct) g["status"] = "pending_sell" elif g["status"] == "pending_sell": s, deal, avgp = check_order(g["sell_oid"]) if s == "filled": # Take profit executado → calcular lucro, recolocar ordem de compra, ciclo profit = g["ct"] * cv * (avgp - g["fp"]) g_total_profit += profit oid = buy_open(sym, g["bp"], GRID_VALUE) g["status"] = "pending_buy"

A lógica de operação é clara: o preço cruza um grid para baixo, acionando a compra; o preço cruza o grid superior para cima, acionando o take profit; após o take profit, a ordem de compra é recolocada na posição original, e o ciclo se repete. Mecanismos para retirada de ordens, anomalias em ordens de take profit, etc., são todos detectados e corrigidos automaticamente, garantindo que a estratégia não pare devido a anomalias ocasionais de ordens.


III. Troca Inteligente de Ativos: Manter o Capital Sempre nos Ativos Mais Ativos

img

O ritmo de volatilidade dos ativos TradFi muda de acordo com eventos macroeconômicos, temporadas de resultados, mudanças de políticas. Em um período, o Ouro pode ser o mais ativo; em outro, pode ser o Petróleo ou o Futuro do S&P. Ficar preso a um único ativo para rodar o grid, mais cedo ou mais tarde, encontrará um período de baixa volatilidade desse ativo, com os grids parados por uma semana.

Esta estratégia reavalia e classifica todos os ativos TradFi a cada número fixo de horas (padrão 48 horas), determinando se é necessário substituir os ativos atualmente na carteira. Para evitar custos de taxa devido a trocas frequentes causadas por diferenças mínimas, um mecanismo de histerese é introduzido:

python
def needs_rebalance(new_selected): cur_scores = {s["sym"]: s["atr"] for s in g_score_log if s["sym"] in g_active} for s in new_selected: if s["sym"] in g_active: continue weakest_atr = min(cur_scores.values()) threshold = weakest_atr * (1 + HYSTERESIS) # Deve ser 20% maior para acionar rebalanceamento if s["atr"] >= threshold: Log(f"{s['base']} ATR={s['atr']:.2f}% > limiar={threshold:.2f}%, rebalanceamento acionado") else: Log(f"{s['base']} ATR={s['atr']:.2f}% < limiar={threshold:.2f}%, histerese mantida")

Somente quando a amplitude diária média do novo ativo candidato é superior a 20% em relação ao ativo atualmente mais fraco na carteira, o rebalanceamento é efetivamente acionado. O processo de rebalanceamento é: primeiro cancela todas as ordens pendentes do ativo antigo, fecha todas as posições, e depois reconstrói a grade completa no novo ativo. Todo o processo é executado automaticamente.


4. Descrição dos Parâmetros Chave

-- TOP_N controla o número de ativos mantidos simultaneamente, padrão 3, ou seja, os fundos são distribuídos entre os 3 ativos de maior volatilidade.
-- GRID_RATIO é a proporção do espaçamento da grade, padrão 1,5%, representando o take profit de cada célula.
-- GRID_VALUE é o valor fixo em USDT investido por célula, padrão 50, não ajustado conforme o preço.
-- LOWER_RANGE define a faixa de preço coberta pela grade, padrão 10% acima e abaixo do preço atual.
-- REBALANCE_HOURS é o período de avaliação do rebalanceamento, padrão 48 horas.
-- HYSTERESIS é o limiar de histerese, padrão 20%, para evitar rebalanceamentos frequentes.
-- LEVERAGE é o multiplicador de alavancagem, recomenda-se não ultrapassar 3x.
-- STOP_LOSS_RATIO é o limite de stop loss global, quando a perda da conta ultrapassa essa proporção, todas as posições são fechadas automaticamente, padrão 30%.
-- KLINE_COUNT é o número de candles diários usados na pontuação, padrão 20 velas passadas.
-- EXCLUDE_SYMBOLS é a lista negra, insira os códigos dos ativos que não deseja que a estratégia toque, múltiplos separados por vírgula.


5. Controle de Risco

O stop loss global é a última linha de defesa da estratégia. Quando o patrimônio da conta sofrer perda superior à proporção definida do valor inicial, as ordens são canceladas, posições fechadas e todas as operações subsequentes são interrompidas automaticamente:

python
def check_stop(): acc = exchange.GetAccount() loss = (g_init_equity - acc.Equity) / g_init_equity if loss >= STOP_LOSS_RATIO: Log(f"Stop loss acionado! Perda={loss*100:.1f}% → Fechando todas as posições") for sym in list(g_active): close_all(sym) g_state = "STOP"

Na fase de seleção, os ativos com volatilidade insuficiente são filtrados, garantindo que cada ativo que entra na estratégia tenha amplitude intradiária suficiente para impulsionar o funcionamento da grade. O mecanismo de lista negra permite excluir manualmente ativos com baixa liquidez, spread anômalo ou comportamento instável. Todos os preços e quantidades das ordens são rigorosamente alinhados com os requisitos de precisão da exchange, eliminando na origem problemas de rejeição devido a incompatibilidade de precisão. Os fundos são distribuídos igualmente entre os ativos, e a perda de um único ativo não compromete a estrutura geral da carteira.


6. Cenários de Mercado Aplicáveis e Observações

Esta estratégia apresenta melhor desempenho em mercados laterais (sem tendência clara). Quando o ativo alvo oscila repetidamente dentro de uma faixa, as células são acionadas com alta frequência, e os ganhos se acumulam linearmente com o tempo, exigindo pouca intervenção manual.

É importante notar que, se o preço cair continuamente em tendência de baixa e romper o limite inferior da grade, todas as ordens de compra ficarão "presas", sendo necessário aguardar o retorno do preço ou o acionamento do stop loss global. Alguns ativos TradFi (como ações dos EUA) sofrem queda drástica de liquidez durante períodos de não negociação (ex: feriados), e ordens podem não ser executadas por longos períodos – isso é normal. O espaçamento da grade (GRID_RATIO) deve ser definido com base na amplitude diária média do ativo alvo; recomenda-se mantê-lo entre 1/3 e 1/2 da amplitude média diária. Se for muito grande, a frequência de acionamento será baixa; se muito pequeno, as taxas corroerão os lucros. A alavancagem deve ser mantida em até 3x; alavancagens mais altas aceleram perdas em condições extremas, dificultando o controle antes do stop loss ser acionado.


Conclusão

A lógica central desta estratégia pode ser resumida em uma frase: manter os fundos sempre nos ativos TradFi de maior volatilidade, deixando a grade trabalhar a favor do tempo. Os quatro módulos – seleção, construção da grade, rebalanceamento e controle de risco – operam em conjunto e de forma totalmente automatizada. As características fundamentais dos ativos TradFi fornecem a garantia subjacente de que os preços não se desviarão indefinidamente, enquanto a triagem programática de volatilidade assegura que os fundos sejam alocados nos ativos mais eficientes. Com parâmetros bem ajustados, a estratégia pode gerar ganhos estáveis com grade na maioria dos ambientes de mercado, mantendo o risco de queda dentro de limites aceitáveis através dos mecanismos de stop loss e histerese.


Este artigo é uma descrição original da estratégia da plataforma FMZ Quant, destinada apenas a fins de aprendizado e intercâmbio, não constituindo qualquer recomendação de investimento.

Comment
All comments (2)

    梦总 公布代码吧 我要试试

    a month ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)