O serie continuă de contracte futures unește contractele succesive, aflate la expirare, într-un singur istoric. Poți folosi acest istoric pentru a cerceta semnale, dar calcularea directă a P&L-ului tranzacțiilor din variațiile de preț poate inventa câștiguri și pierderi la fiecare rostogolire. Seria nu-ți spune ce contract dețineai.
Să luăm un exemplu deosebit de neiertător: țițeiul WTI NYMEX, pe 20 aprilie 2020. Contractul din mai s-a decontat la minus $37.63 pe baril. Cel din iunie s-a decontat la plus $20.43. Ambele prețuri au fost reale. Și diferența de $58.06 a fost reală. Dar trecerea graficului de la mai la iunie nu i-a adus unei poziții long acel câștig.
Să desfacem această îmbinare. Acestea sunt prețuri istorice de decontare; exemplele ipotetice de contabilizare de mai jos le folosesc pentru a ilustra calculele, nu pentru a pretinde că un ordin s-ar fi putut executa la acele prețuri.
CLK20 și CLM20: identificatorii eliminați de grafic
| Câmp | Contractul din mai | Contractul din iunie |
|---|---|---|
| Identificatorul contractului | CLK20 | CLM20 |
| Luna livrării | Mai 2020 | Iunie 2020 |
| Prețul de decontare din 20 aprilie, dolari pe baril | −37.63 | 20.43 |
| Mărimea contractului | 1,000 de barili | 1,000 de barili |
Codul lunii contează mai mult decât prefixul simbolului. K înseamnă mai; M înseamnă iunie. Aceste contracte aveau obligații de livrare și prețuri diferite. Contractul din mai se apropia de expirare într-un context de presiuni extraordinare asupra capacității de stocare. Cel din iunie oferea încă o lună.
Simbolul continuu al unui furnizor ascunde această distincție într-o formă plăcut de compactă. Îmi plac simbolurile compacte până când ele rămân singurii identificatori din jurnalul tranzacțiilor. Atunci depanarea începe să semene cu arheologia, dar cu o cafea mai proastă.
Nici nu există un singur istoric continuu universal. Un furnizor poate face rostogolirea cu un număr fix de zile lucrătoare înainte de expirare, la depășirea volumului sau după un alt calendar. Multe istorice trecuseră deja de la contractul din mai înainte de 20 aprilie. În exemplul nostru, îmbinăm intenționat aceste două prețuri de decontare pentru a face problema vizibilă; nu pretindem că descriem rostogolirea unui anumit furnizor.
1,000 de barili: multiplicatorul din spatele fiecărui preț
Contractul standard de contracte futures NYMEX WTI reprezintă 1,000 de barili. Prin urmare, o variație de $1 schimbă valoarea unei poziții long de un contract cu $1,000. Un tick de $0.01 valorează $10.
Pentru o poziție neschimbată într-un singur contract, calculul de bază este:
gross_pnl = contracts × 1,000 × (ending_price − starting_price)
Formula funcționează și sub zero. Randamentele procentuale calculate pe prețul futures cotat devin mult mai puțin utile: trecerea prin zero le poate face nedefinite sau le poate inversa sensul aparent. Randamentele strategiei ar trebui calculate pe baza capitalului propriu al contului și a convenției privind fluxurile de numerar. Prețul cotat pe baril nu reprezintă capitalul angajat în strategie.
$58.06: discontinuitatea de la îmbinare
Să presupunem că un motor naiv vede prețul de decontare al contractului din mai, urmat de cel al contractului din iunie, și aplică formula ca și cum instrumentul nu s-ar fi schimbat:
invented_pnl = 1 × 1,000 × (20.43 − (−37.63))
= $58,060
În această comparație, nimic nu s-a mișcat în timp. Sunt prețurile a două contracte din aceeași sesiune. Motorul a confundat diferența de preț dintre contracte cu un câștig obținut pe durata deținerii.
Într-o îmbinare zilnică reală, prețul de ieri al contractului vechi și prețul de azi al celui nou includ și mișcarea obișnuită a pieței. Astfel, greșeala devine mai greu de observat. Variația înregistrată combină mișcarea contractului vechi cu diferența dintre contracte în momentul schimbării.
Nici scăderea celor $58,060 ca presupus „cost al rostogolirii” în numerar nu repară modelul. Contractele futures nu se cumpără plătind întreaga valoare noțională cotată. Închiderea unui contract și deschiderea altuia generează modificări ale poziției, P&L realizat sau decontat, comisioane, efecte de execuție și cerințe de marjă. Diferența dintre nivelurile lor de preț nu este automat o plată în numerar.
+58.06: ajustarea retrospectivă înscrisă în istoric
O metodă obișnuită de construire a seriilor continue adaugă diferența de la rostogolire la prețurile mai vechi. Conform acestei convenții, prețul contractului din mai, −37.63, devine 20.43 și se aliniază cu cel din iunie, fără salt. Și observațiile anterioare din același segment istoric cresc cu 58.06.
| Metodă de construire | Ce se întâmplă la această îmbinare | Consecință pentru cercetare |
|---|---|---|
| Neadjustată | Diferența de $58.06 rămâne | Indicatorii pot interpreta schimbarea contractului drept o mișcare a pieței |
| Ajustare retrospectivă aditivă | Se adaugă 58.06 segmentului mai vechi | Variațiile în dolari din interiorul segmentului rămân neschimbate; nivelurile istorice și variațiile procentuale se modifică |
| Ajustare retrospectivă prin raport | Segmentul mai vechi se înmulțește cu 20.43 / −37.63, aproximativ −0.543 | Factorul negativ inversează semnul variațiilor de preț din interiorul segmentului |
Ultimul rând este motivul pentru care nu accept „ajustat prin raport” drept specificație completă a datelor. O metodă care funcționează bine când prețurile sunt strict pozitive are nevoie de o politică explicită pentru valorile zero și negative.
Ajustarea aditivă are și ea consecințe. Un semnal care cumpără sub un prag absolut de $30 se poate schimba când rostogolirile ulterioare rescriu nivelurile istorice. Un semnal bazat pe diferența dintre o medie mobilă rapidă și una lentă poate rămâne invariant la o deplasare aditivă comună, dacă ambele ferestre primesc aceeași deplasare. Ferestrele care traversează o limită de ajustare trebuie analizate separat.
Păstrează alături de rezultatul cercetării metoda de ajustare, calendarul rostogolirilor și versiunea datelor. Pentru semnalele sensibile la nivelurile ajustate, reconstruiește istoricul disponibil la fiecare dată de decizie. O descărcare curentă poate include ajustări provenite din rostogoliri care încă nu avuseseră loc.
Cele două rânduri de ordine care lipsesc din graficul continuu
Iată un registru intenționat simplificat. Să presupunem că un contract long din mai era evaluat la −30.00 înainte de rostogolire. Să presupunem că ieșirea din contractul din mai și intrarea în cel din iunie au loc la prețurile istorice de decontare de mai sus, apoi că evaluăm contractul din iunie la 21.00. Aceste execuții ipotetice ilustrează contabilizarea.
| Eveniment din registru | Calcul | P&L brut |
|---|---|---|
| Închidere poziție long de un contract din mai la −37.63 | 1,000 × (−37.63 − (−30.00)) | −$7,630 |
| Deschidere poziție long de un contract din iunie la 20.43 | Fără mișcare de preț la intrare | $0 |
| Evaluare la piață a contractului din iunie la 21.00 | 1,000 × (21.00 − 20.43) | +$570 |
| Total | Înainte de costurile de execuție și comisioane | −$7,060 |
Diferența de $58.06 nu apare nicăieri ca venit sau cheltuială de sine stătătoare. Marja de variație zilnică determină momentul în care P&L-ul contractelor futures ajunge în numerar; nu creează încă o copie a acelui P&L.
O rostogolire reală se poate executa printr-un ordin de spread calendaristic, în locul a două ordine independente. Simulatorul ar trebui să reprezinte mecanismul presupus, inclusiv execuțiile și costurile aferente, păstrând totodată pozițiile pe fiecare contract în parte.
Criteriul meu de acceptare este simplu: fiecare dolar din P&L-ul tranzacțiilor futures trebuie reconciliat cu un contract identificat, o cantitate, un multiplicator și două prețuri care aparțin acelui contract. Vreau și momentul deciziei de rostogolire și datele folosite. O regulă bazată pe volum, care folosește volumul înregistrat pentru sesiunea de azi după încheierea ei, nu poate executa pe ascuns mai devreme în aceeași sesiune.
Afișează linia continuă pentru context. Dedesubt, afișează contractele deținute efectiv și marchează fiecare tranziție. Dacă valoarea capitalului sare la o tranziție, primele lucruri la care mă uit sunt cele două rânduri de ordine.
← Toate articolele


