7 de Setembro de 2026 · opções

A linha sobre a qual seu backtest de opções é construído: uma call de BTC da Deribit, campo por campo

A linha sobre a qual seu backtest de opções é construído: uma call de BTC da Deribit, campo por campo

No mês passado, alguém da equipe de pesquisa me perguntou por que nossos agentes de opções continuavam rejeitando uma ideia de long gamma que parecia perfeitamente razoável. O sinal estava bom. A previsão de vol estava boa. O problema eram dois campos no feed de dados de mercado e um número que não aparece no feed.

Então, aqui está o objeto real sobre o qual estávamos discutindo. Resposta do ticker da Deribit, BTC-25SEP26-110000-C, capturada às 11:20 UTC de uma segunda-feira, com dezoito dias restantes até o vencimento do contrato. Removi os campos obsoletos e mantive tudo o que importa.

{
  "instrument_name": "BTC-25SEP26-110000-C",
  "index_price": 96412.18,
  "underlying_price": 96980.44,
  "underlying_index": "SYN.BTC-25SEP26",
  "estimated_delivery_price": 96412.18,
  "mark_price": 0.0041,
  "mark_iv": 42.14,
  "best_bid_price": 0.0038,  "best_bid_amount": 4.9,
  "best_ask_price": 0.0045,  "best_ask_amount": 12.1,
  "bid_iv": 40.42,           "ask_iv": 43.94,
  "last_price": 0.0043,
  "interest_rate": 0.0,
  "open_interest": 812.7,
  "greeks": {
    "delta": 0.0962, "gamma": 0.0000189,
    "vega": 36.77,   "theta": -42.91,  "rho": 4.61
  },
  "stats": { "volume": 61.2, "high": 0.0051, "low": 0.0036 }
}

instrument_name: quatro fatos, uma string

BTC-25SEP26-110000-C. Ativo subjacente BTC, vencimento em 25 de setembro de 2026, strike 110,000, call. O que a string não diz — e o que todo backtest de opções novo erra pelo menos uma vez — é o restante das especificações do contrato: cada contrato equivale a 1 BTC do ativo subjacente, o prêmio é cotado e pago em BTC, e o vencimento ocorre às 08:00 UTC, não às 16:00 em algum horário local.

A cotação em BTC é o ponto crítico. Um mark de 0.0041 equivale a 0.0041 BTC, cerca de $395 pelo índice. Se você armazena essa coluna como preço e depois a combina com o P&L de uma estratégia denominado em USD, acaba criando, sem perceber, uma posição cujo valor em dólares varia com o spot mesmo quando a opção não varia. Já vi um backtest em que a perna de long call deu lucro num dia de queda do BTC, simplesmente porque o prêmio foi interpretado como dólares e, na verdade, o pesquisador estava vendido no prêmio denominado em moeda contra uma contabilidade em dólares. Levamos dois dias para descobrir.

index_price vs underlying_price: diferença de 568 dólares, e só um está correto

A diferença entre eles é de $568.26, e isso não é um erro. index_price é o índice de BTC da Deribit — a referência de spot, uma combinação de grandes exchanges e o valor usado na liquidação final do contrato. underlying_price é o preço do forward sintético para aquele vencimento específico, SYN.BTC-25SEP26, derivado do mercado futuro para a mesma data. Dezoito dias de carregamento a cerca de 12% anualizados resultam nesses $568.

Todas as gregas do payload e a IV do mark são calculadas com base no forward. Se você recalcular a volatilidade implícita usando o spot porque foi essa série que carregou, vai obter um número diferente para cada strike, e o erro terá uma direção sistemática: calls parecerão mais baratas em termos de vol do que realmente são, e puts parecerão mais caras. Num contrato de 18 dias com uma base de 0.6%, você erraria a IV do mark em cerca de 1.5 ponto nesse strike. Isso é maior que a maioria das vantagens de vol em torno das quais as pessoas criam estratégias.

interest_rate: 0.0 indica que a Deribit faz o desconto usando o forward, e não uma taxa. Não procure uma curva livre de risco para inserir; você contará o efeito duas vezes.

mark_price e mark_iv: um preço sem contraparte

0.0041 BTC. Ninguém pagou esse preço. A Deribit calcula o mark a partir de uma superfície de vol ajustada, ancorada no livro de ofertas, mas suavizada entre strikes e vencimentos para que a margem e as liquidações não oscilem quando uma única cotação muito aberta se move. O mark é usado na sua margem e no P&L não realizado, e aparece em todos os endpoints de posição.

Por isso ele é o preço de execução mais sedutor na pesquisa de opções de cripto — e o mais errado. Um backtest que compra no mark e vende no mark está negociando contra uma spline de suavização. Vai produzir um Sharpe. Esse Sharpe descreve o ajuste da superfície e não informa se você conseguiria realizar a operação.

A regra que acabamos codificando: o mark serve para margem, risco e atribuição de mid a mid. Nunca é um preço de execução. Se o backtest precisa de um preço de execução e não há snapshot do livro naquele horário, a execução é sinalizada como sem preço, em vez de usar o mark. Preferimos perder a linha.

best_bid 0.0038 / best_ask 0.0045: o spread em três unidades

Sete ticks de largura em BTC. São $67.50 numa opção de $395, ou 17% do prêmio. Em termos de vol, são 3.5 pontos: 40.4 no bid contra 43.9 no ask, que é o número que um operador de opções realmente vai citar se você perguntar qual é a abertura do spread.

Os tamanhos importam tanto quanto os preços: 4.9 contratos no bid, 12.1 no ask. O tamanho nas opções da Deribit é expresso em contratos, então são 4.9 BTC do ativo subjacente, cerca de $472k de valor nocional — mas apenas 0.47 BTC de delta nesse strike. Se sua estratégia precisa de gamma relevante, são necessárias dezenas de contratos, e o livro visível no melhor preço oferece só uma fração disso. O segundo nível costuma ficar a mais dois ou três ticks. Qualquer backtest de opções com modelo de tamanho precisa percorrer o livro ou assumir preços de RFQ/bloco, e essas duas premissas dão respostas bem diferentes.

last_price: 0.0043 é uma negociação que aconteceu em algum momento nas últimas 24 horas, possivelmente dezenove horas atrás, com o spot num nível bem diferente. É obsoleto por definição num instrumento que negocia 61 contratos por dia. Não crie uma série de retornos com isso.

gregas: cinco números, quatro convenções de unidade

Este bloco causa mais danos silenciosos do que o restante do payload somado, porque cada valor está dimensionalmente correto e nenhum está nas unidades que você imaginaria.

CampoValorUnidadesInterpretação comum equivocada
delta0.0962BTC do ativo subjacente por contratoInterpretado como delta em dólares
gamma0.0000189Δdelta por $1 de variação do ativo subjacenteAssumido por variação de 1%
vega36.77USD por 1 ponto de volAssumido por 100% de vol, ou em BTC
theta-42.91USD por dia corridoAssumido por dia de negociação
rho4.61USD por variação de 1% na taxaIgnorado, corretamente

Delta é expresso em moedas, vega e theta em dólares, e gamma por dólar de variação do spot. Misturar um delta denominado em moeda num agregado de risco em dólares é como um livro que parece neutro acaba ficando comprado em 40 BTC. E theta por dia corrido é o que afeta as estratégias de fim de semana: de sexta no fechamento até segunda na abertura são três dias de decaimento, cerca de $129 por contrato aqui, sem nenhuma sessão de negociação. Se seu backtest avança por barras e aplica theta por barra, os fins de semana desaparecem e toda estratégia de prêmio vendido fica silenciosamente pior do que deveria.

open_interest 812.7, volume 61.2: onde está a liquidez da chain

Oitocentos contratos em aberto num strike que negociou sessenta e um ontem. Esse é um strike ativo de verdade — 110,000 é um número redondo a três semanas do vencimento, exatamente onde o fluxo se concentra. Avance dois strikes até 120,000 e o open interest cai uma ordem de grandeza; vá para um strike não redondo num vencimento fora do ciclo mensal e encontrará instrumentos com bid, ask 40% distante e nenhuma negociação há uma semana.

Um backtest de toda a chain que percorre cada instrumento listado vai executar ordens em todos eles sem dificuldade. Acabamos aplicando um filtro com condições simultâneas: spread cotado abaixo de 20% do mark, pelo menos 1 contrato dos dois lados e volume diferente de zero nas 24 horas anteriores. Num dia típico, cerca de um terço da chain listada de BTC passa pelo filtro. É nos outros dois terços que mora o alfa falso.

O campo que não está no payload

Nada neste objeto informa quanto custa uma negociação. A Deribit cobra 0.0003 BTC por contrato de opção, tanto maker quanto taker — 0.03% do ativo subjacente, não do prêmio — com teto de 12.5% do preço da opção. Neste contrato, são $28.92 por lado, sem aplicar o teto, porque 12.5% de 0.0041 é 0.000513 e a taxa fixa é menor.

Taxa sobre o nocional e prêmio baseado em vol fazem o custo explodir como proporção do valor pago à medida que você avança para fora do dinheiro.

$67.50spread cotado (17% do mark)
$28.92taxa por contrato, por lado
31%ida e volta como % do prêmio
3.5 ptslargura do bid/ask em vol

Compre no ask a 0.0045 ($434), venda no bid a 0.0038 ($366), pague a taxa duas vezes: $125.80 para fazer uma ida e volta num contrato marcado a $395. Sua tese precisa valer 31% do prêmio para você chegar ao zero a zero. Foi esse o motivo da rejeição da ideia de long gamma, e não teve nada a ver com o sinal.

A coisa fica mais interessante se você perguntar quanto custa obter delta, já que as taxas escalam com o número de contratos e a quantidade de contratos varia inversamente com o delta. Para fazer a conta, mantemos a IV do mark constante em 42.1% entre strikes (uma chain real tem skew e, em cripto, a ponta de calls costuma negociar acima do ATM, o que torna esta tabela otimista):

InstrumentoMark (BTC)DeltaContratos por 1 BTC de deltaTaxa por ladoCusto por BTC de delta
97000-C (ATM)0.03730.5181.93$28.92$55.80
110000-C0.00410.09610.4$28.92$301
120000-C0.00040.01379.4$4.82 (com teto)$383
BTC perp—1.01.0$48.21$48.21

O teto de 12.5% faz diferença real na linha de baixo; sem ele, a ponta fora do dinheiro custaria $2,300 por BTC de delta, e estratégias de bilhete de loteria seriam impossíveis até do ponto de vista aritmético, em vez de apenas ruins. Mesmo com o teto, comprar exposição pelo strike 120,000 custa cerca de oito vezes mais que pelo perpétuo. Opções não são uma forma barata de expressar uma direção, e qualquer backtest que diga o contrário deixou esta tabela de fora.

08:00 UTC, 25 de setembro

A última coisa que o ticker não informa é como a posição termina. A Deribit liquida opções com base numa média de 30 minutos do índice até as 08:00 UTC do dia do vencimento e cobra uma taxa de entrega de 0.00015 BTC nos contratos dentro do dinheiro, também limitada a 12.5% do valor de liquidação.

Duas consequências para um backtest. Primeiro, essa janela de média existe e você pode errar ao modelá-la: uma opção que está $300 dentro do dinheiro às 07:59 pode liquidar sem valor se a última meia hora tiver sido ruim, e um backtest que use o preço das 08:00 para liquidar vai divergir da sua conta simulada por alguns pontos-base na maioria dos vencimentos e bastante em alguns. Segundo, a taxa de entrega se aplica mesmo que você não quisesse a liquidação; portanto, uma estratégia mantida até o vencimento paga três taxas por ciclo, enquanto uma que fecha às 07:30 paga duas taxas mais um spread. Qual sai mais barato depende do strike, e o resultado muda perto de 0.0012 BTC de prêmio. Calculamos isso por posição em vez de adotar uma regra única.

A versão deste post que eu queria escrever era sobre previsão de vol. Em vez disso, passei uma semana lidando com unidades e tetos de taxas, o que representa mais ou menos a proporção correta entre glamour e realidade na pesquisa de opções.

Vinte campos. Dois preços que divergem por definição, um preço que nunca foi negociado, gregas em quatro sistemas de unidades e um modelo de custo que mora inteiramente fora do payload, numa página de documentação. Se você está montando um backtest de opções, passe o primeiro dia escrevendo uma única função que transforme um desses objetos numa posição com custos completos e denominação correta — spread, taxa, teto, entrega, moeda ou dólar. Toda estratégia que você escrever depois vai herdar as premissas dessa função.

opções de criptoderibitvolatilidade implícitataxasbacktesting
← Todos os artigos