7 septembrie 2026 · opțiuni

Rândul pe care se bazează backtestul tău de opțiuni: un call BTC Deribit, câmp cu câmp

Rândul pe care se bazează backtestul tău de opțiuni: un call BTC Deribit, câmp cu câmp

Luna trecută, cineva din echipa de cercetare m-a întrebat de ce agenții noștri pentru opțiuni tot respingeau o idee long-gamma care părea perfect rezonabilă. Semnalul era bun. Prognoza de volatilitate era bună. Problema era în două câmpuri din fluxul de date de piață și într-o cifră care nu apare deloc în flux.

Iată, așadar, obiectul concret despre care ne contraziceam. Răspunsul tickerului Deribit pentru BTC-25SEP26-110000-C, preluat luni la 11:20 UTC, cu optsprezece zile rămase până la expirarea contractului. Am eliminat câmpurile depreciate și le-am păstrat pe toate cele importante.

{
  "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: patru informații, un singur șir

BTC-25SEP26-110000-C. Activ suport BTC, expirare 25 septembrie 2026, strike 110,000, call. Ce nu spune șirul și ce greșește măcar o dată fiecare backtest nou de opțiuni este restul specificației contractului: un contract reprezintă 1 BTC din activul suport, prima este cotată și plătită în BTC, iar expirarea are loc la 08:00 UTC, nu la 16:00 ora locală.

Cotarea în BTC e capcana aici. Un mark de 0.0041 înseamnă 0.0041 BTC, adică aproximativ $395 la nivelul indicelui. Dacă stochezi coloana ca preț și apoi o asociezi cu P&L-ul unei strategii exprimat în USD, ai construit pe nesimțite o poziție a cărei valoare în dolari se mișcă odată cu spotul, chiar dacă opțiunea nu se mișcă. Am văzut un backtest în care poziția long call a avut profit într-o zi în care BTC a scăzut, numai fiindcă prima din coloană fusese interpretată ca dolari, iar cercetătorul era, de fapt, short prima exprimată în monedă într-un cadru contabil în dolari. Ne-au trebuit două zile să găsim problema.

index_price vs underlying_price: diferență de 568 de dolari, dar numai unul e corect

Între ele e o diferență de $568.26 și nu e o eroare. index_price este indicele BTC Deribit — referința spot, un mix de burse majore și valoarea față de care se decontează în cele din urmă contractul. underlying_price este prețul forward-ului sintetic pentru acea expirare, SYN.BTC-25SEP26, calculat pe baza pieței futures pentru aceeași dată. Costul de report pentru optsprezece zile, la aproximativ 12% anualizat, explică acei $568.

Fiecare greek din payload, precum și mark IV, sunt calculate pornind de la forward. Dacă îți recalculezi singur volatilitatea implicită pornind de la spot fiindcă tocmai acea serie o aveai încărcată, vei obține o valoare diferită pentru fiecare strike, iar eroarea va avea o direcție sistematică: call-urile vor părea mai ieftine în termeni de volatilitate decât sunt, iar put-urile mai scumpe. Pentru un contract cu 18 zile până la expirare și o bază de 0.6%, ai estima greșit mark IV cu aproximativ un punct și jumătate la acest strike. E mai mult decât majoritatea avantajelor de volatilitate pe care oamenii își construiesc strategiile.

interest_rate: 0.0 înseamnă că Deribit îți spune că actualizează prin forward, nu printr-o rată. Nu căuta o curbă fără risc pe care s-o introduci; ai număra efectul de două ori.

mark_price și mark_iv: un preț fără contraparte

0.0041 BTC. Nimeni nu a plătit atât. Deribit calculează mark-ul pe baza unei suprafețe de volatilitate ajustate, ancorată în carnetul de ordine, dar netezită pe strike-uri și scadențe, astfel încât marja și lichidările să nu sară când se mișcă o singură cotație cu spread mare. Mark-ul e folosit la calcularea marjei și a P&L-ului nerealizat și apare în fiecare endpoint de poziție.

Tocmai de aceea e cel mai seducător preț de execuție din cercetarea cripto-opțiunilor și cel mai greșit. Un backtest care cumpără la mark și vinde la mark tranzacționează împotriva unei spline de netezire. Va produce un Sharpe. Acel Sharpe descrie potrivirea suprafeței și nu spune nimic despre posibilitatea de a fi executat tranzacția.

Regula pe care am codificat-o: mark-ul e pentru marjă, risc și atribuirea mid-to-mid. Nu este niciodată un preț de execuție. Dacă backtestul are nevoie de un preț de execuție și nu există un instantaneu al carnetului pentru acel moment, rularea e marcată ca neprețuită, în loc să fie considerată executată la mark. Preferăm să pierdem rândul.

best_bid 0.0038 / best_ask 0.0045: spread-ul exprimat în trei unități

Șapte ticks lățime în BTC. Asta înseamnă $67.50 pentru o opțiune de $395, sau 17% din primă. În termeni de volatilitate, spread-ul e de 3.5 puncte, 40.4 la bid față de 43.9 la ask — cifra pe care ți-o va da un trader de opțiuni dacă îl întrebi cât de mare e spread-ul.

Dimensiunile contează la fel de mult ca prețurile: 4.9 contracte la bid, 12.1 la ask. Dimensiunea pentru opțiunile Deribit e exprimată în contracte, deci 4.9 BTC din activul suport, cu valoare noțională de aproximativ $472k — dar numai 0.47 BTC de delta la acest strike. Dacă strategia ta vrea gamma semnificativă, are nevoie de zeci de contracte, iar volumul vizibil la cel mai bun bid și ask reprezintă doar o fracțiune din atât. De obicei, nivelul următor e la încă două sau trei ticks distanță. Orice backtest de opțiuni care modelează dimensiunea trebuie să parcurgă carnetul de ordine sau să presupună prețuri RFQ/bloc, iar aceste două ipoteze dau rezultate foarte diferite.

last_price: 0.0043 este o tranzacție care a avut loc cândva în ultimele 24 de ore, poate acum nouăsprezece ore, la un nivel spot foarte diferit. E depășită din construcție pentru un instrument cu 61 de contracte tranzacționate pe zi. Nu construi o serie de randamente din ea.

greeks: cinci valori, patru convenții de unități

Blocul acesta provoacă mai multe daune invizibile decât restul payloadului la un loc, fiindcă fiecare valoare e corectă dimensional, dar niciuna nu e exprimată în unitățile la care te-ai aștepta.

CâmpValoareUnitățiInterpretare greșită frecventă
delta0.0962BTC din activul suport per contractInterpretată ca delta în dolari
gamma0.0000189Δdelta per $1 de variație a activului suportPresupusă per variație de 1%
vega36.77USD per 1 punct de volatilitatePresupusă per 100% volatilitate sau exprimată în BTC
theta-42.91USD per zi calendaristicăPresupusă per zi de tranzacționare
rho4.61USD per rată de 1%Ignorată, pe bună dreptate

Delta e exprimată în monede, vega și theta în dolari, iar gamma e per dolar de variație a prețului spot. Dacă amesteci delta exprimată în monede într-o agregare a riscului exprimată în dolari, poți ajunge cu un portofoliu care pare neutru, dar e long 40 BTC. Faptul că theta e per zi calendaristică e capcana strategiilor de weekend: de la închiderea de vineri până la deschiderea de luni se acumulează trei zile de depreciere, aproximativ $129 per contract aici, deși nu sunt sesiuni de tranzacționare. Dacă backtestul avansează bară cu bară și aplică theta la fiecare pas, weekendurile dispar, iar strategiile short premium se degradează pe nesimțite față de realitate.

open_interest 812.7, volume 61.2: unde se concentrează activitatea pe lanț

Opt sute de contracte în open interest pentru un strike pe care s-au tranzacționat ieri șaizeci și unu. E un strike activ, cu piață reală — 110,000 e un număr rotund cu trei săptămâni înainte de expirare, exact unde se concentrează fluxul. Mergi două strike-uri mai departe, la 120,000, iar open interest scade de zece ori; mergi la un strike care nu e rotund și la o expirare care nu e lunară și găsești instrumente cu bid, ask la distanță de patruzeci la sută și nicio tranzacție de o săptămână.

Un backtest pe tot lanțul, care parcurge fiecare instrument listat, te va executa fără probleme pe toate. Am ajuns să folosim un filtru cu trei condiții simultane: spread-ul cotat sub 20% din mark, cel puțin 1 contract pe ambele părți și volum nenul în ultimele 24 de ore. Într-o zi obișnuită, cam o treime din lanțul BTC listat trece filtrul. Cealaltă două treimi sunt locul unde se ascunde alfa falsă.

Câmpul care nu apare în payload

Nimic din obiectul acesta nu-ți spune cât costă o tranzacție. Deribit percepe 0.0003 BTC per contract de opțiune, indiferent dacă ești maker sau taker — 0.03% din activul suport, nu din primă — cu un plafon de 12.5% din prețul opțiunii. Pentru contractul acesta, comisionul e $28.92 pe sens, înainte de aplicarea plafonului, fiindcă 12.5% din 0.0041 înseamnă 0.000513, iar comisionul fix e mai mic.

Comisionul se aplică la valoarea noțională, iar prima depinde de volatilitate, astfel că, pe măsură ce opțiunea iese din bani, costul ca proporție din suma plătită explodează.

$67.50spread cotat (17% din mark)
$28.92comision per contract, pe sens
31%dus-întors, ca % din primă
3.5 punctelățimea bid/ask în volatilitate

Cumperi la ask, la 0.0045 ($434), vinzi la bid, la 0.0038 ($366), și plătești comisionul de două ori: $125.80 pentru o tranzacție dus-întors cu un contract marcat la $395. Înainte să ajungi măcar pe zero, perspectiva ta trebuie să valoreze 31% din primă. De asta a fost respinsă ideea long-gamma, iar semnalul n-a avut nicio legătură cu decizia.

Devine și mai interesant dacă întrebi cât costă o unitate de delta, fiindcă comisioanele sunt proporționale cu numărul de contracte, iar numărul de contracte variază invers cu delta. Pentru calcul, menținem mark IV constantă la 42.1% pentru toate strike-urile (un lanț real are skew, iar în cripto aripile call se tranzacționează de obicei peste ATM, ceea ce face ca tabelul să fie optimist):

InstrumentMark (BTC)DeltaContracte per 1 BTC deltaComision pe sensCost per 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 (cu plafon)$383
BTC perp—1.01.0$48.21$48.21

Plafonul de 12.5% contează cu adevărat pe ultimul rând; fără el, aripa adâncă ar costa $2,300 per BTC de delta, iar strategiile de tip bilet de loterie ar fi imposibile matematic, nu doar proaste. Chiar și cu plafonul, obținerea expunerii prin strike-ul 120,000 costă cam de opt ori mai mult decât prin perpetual. Opțiunile nu sunt o modalitate ieftină de a exprima o perspectivă direcțională, iar orice backtest care spune contrariul a omis tabelul acesta.

08:00 UTC, 25 septembrie

Ultimul lucru pe care tickerul nu ți-l spune este cum se încheie poziția. Deribit decontează opțiunile pe baza mediei indicelui în intervalul de 30 de minute dinaintea orei 08:00 UTC în ziua expirării și percepe un comision de livrare de 0.00015 BTC pentru contractele in-the-money, plafonat tot la 12.5% din valoarea de decontare.

Două consecințe pentru un backtest. În primul rând, fereastra de mediere contează: poți greși. O opțiune care e cu $300 in-the-money la 07:59 poate expira fără valoare dacă ultima jumătate de oră a fost nefavorabilă, iar un backtest care decontează la prețul afișat la 08:00 nu va coincide cu contul tău demo cu câteva puncte de bază la majoritatea expirărilor și cu mult la câteva dintre ele. În al doilea rând, comisionul de livrare se aplică indiferent dacă doreai decontarea, așa că o strategie păstrată până la expirare plătește trei comisioane pe ciclu, iar una închisă la 07:30 plătește două comisioane plus spread-ul. Care variantă e mai ieftină depinde de strike și se schimbă în jurul unei prime de 0.0012 BTC. Calculăm costul pentru fiecare poziție în parte, în loc să alegem o regulă fixă.

Versiunea acestui articol pe care voiam s-o scriu era despre prognoza volatilității. În schimb, am petrecut o săptămână cu unități și plafoane de comision, ceea ce reflectă destul de bine raportul dintre farmec și realitate în cercetarea opțiunilor.

Douăzeci de câmpuri. Două prețuri care diferă intenționat, un preț la care nu s-a tranzacționat niciodată, greeks în patru sisteme de unități, iar modelul de costuri se află în întregime în afara payloadului, pe o pagină de documentație. Dacă pui pe picioare un backtest de opțiuni, petrece-ți prima zi scriind o singură funcție care transformă unul dintre aceste obiecte într-o poziție cu toate costurile incluse și cu unitățile corecte — spread, comision, plafon, livrare, monede versus dolari. Fiecare strategie pe care o vei scrie după aceea va moșteni ipotezele încorporate în acea funcție.

opțiuni cryptoderibitvolatilitate implicităcomisioanebacktesting
← Toate articolele