Tęstinė ateities sandorių seka sujungia vieną po kito pasibaigiančius kontraktus į vieną istoriją. Šią istoriją galite naudoti signalams tirti, tačiau tiesiogiai skaičiuojant prekybos P&L iš kainų pokyčių, per kiekvieną kontraktų keitimą gali atsirasti išgalvoto pelno ar nuostolio. Iš sekos nematyti, kurį kontraktą turėjote.
Panagrinėkime itin negailestingą pavyzdį: 2020 m. balandžio 20 d. NYMEX WTI naftą. Gegužės kontrakto atsiskaitymo kaina buvo neigiama – 37.63 $ už barelį. Birželio kontrakto – teigiama, 20.43 $. Abi kainos buvo tikros. Tikras buvo ir 58.06 $ skirtumas tarp jų. Tačiau grafiko perjungimas iš gegužės į birželį ilgosios pozicijos neuždirbo šio skirtumo.
Išnarstykime šį sujungimą. Tai istorinės atsiskaitymo kainos; toliau pateiktuose hipotetiniuose apskaitos pavyzdžiuose jos naudojamos aritmetikai parodyti, o ne teigti, kad pavedimas būtų buvęs įvykdytas būtent tokiomis kainomis.
CLK20 ir CLM20: identifikatoriai, kuriuos grafikas paslėpė
| Laukas | Gegužės kontraktas | Birželio kontraktas |
|---|---|---|
| Kontrakto identifikatorius | CLK20 | CLM20 |
| Pristatymo mėnuo | 2020 m. gegužė | 2020 m. birželis |
| Balandžio 20 d. atsiskaitymo kaina, doleriais už barelį | −37.63 | 20.43 |
| Kontrakto dydis | 1,000 barelių | 1,000 barelių |
Mėnesio raidė svarbesnė už simbolio pradžią. K reiškia gegužę, M – birželį. Šie kontraktai turėjo skirtingus pristatymo įsipareigojimus ir skirtingas kainas. Gegužės kontrakto galiojimo pabaiga artėjo, o saugyklų trūkumas buvo neįprastai didelis. Birželio kontraktas suteikė dar vieną mėnesį.
Duomenų tiekėjo tęstinis simbolis šį skirtumą paslepia po maloniai trumpu pavadinimu. Man patinka trumpi simboliai, kol jie netampa vieninteliu identifikatoriumi prekybos žurnale. Tada derinimas primena archeologiją, tik kava prastesnė.
Be to, nėra vienos universalios tęstinės istorijos. Duomenų tiekėjas gali keisti kontraktą likus nustatytam skaičiui darbo dienų iki galiojimo pabaigos, pasikeitus apyvartos santykiui arba pagal kitą tvarkaraštį. Daugelyje istorijų balandžio 20 d. gegužės kontrakto jau nebebuvo. Šiame pavyzdyje sąmoningai sujungiame šių dviejų kontraktų atsiskaitymo kainas, kad matytųsi problema; tai nėra teiginys apie konkretaus tiekėjo keitimo tvarką.
1,000 barelių: kiekvienos kainos daugiklis
Standartinis NYMEX WTI ateities sandorių kontraktasapima 1,000 barelių. Todėl 1 $ pokytis vieno kontrakto ilgajai pozicijai pakeičia vertę 1,000 $. 0.01 $ žingsnis vertas 10 $.
Nepakitusiai vieno kontrakto pozicijai taikomas paprastas skaičiavimas:
gross_pnl = contracts × 1,000 × (ending_price − starting_price)
Šis skaičiavimas tinka ir kainai nukritus žemiau nulio. Procentinė grąža pagal kotiruojamą ateities sandorio kainą tampa daug mažiau naudinga: kainai kertant nulį ji gali būti neapibrėžta arba apversti tariamą pokyčio reikšmę. Strategijos grąžą reikėtų skaičiuoti pagal sąskaitos nuosavą kapitalą ir pinigų srautų apskaitos metodą. Kotiruojama barelio kaina nėra strategijai skirtas kapitalas.
58.06 $: kainų trūkis sujungimo vietoje
Tarkime, naivus variklis pamato gegužės atsiskaitymo kainą, o po jos – birželio kainą, ir pritaiko formulę taip, lyg instrumentas nebūtų pasikeitęs:
invented_pnl = 1 × 1,000 × (20.43 − (−37.63))
= $58,060
Šiame palyginime laikas nepraėjo nė akimirkos. Tai dviejų kontraktų kainos iš tos pačios prekybos sesijos. Variklis kainų skirtumą tarp kontraktų palaikė pelnu už pozicijos laikymo laikotarpį.
Tikroje kasdienėje sujungtoje sekoje vakarykštė seno kontrakto kaina ir šiandieninė naujo kontrakto kaina taip pat apima įprastą rinkos pokytį. Dėl to klaidą pastebėti sunkiau. Užfiksuotas pokytis apima seno kontrakto kainos judėjimą ir kontraktų kainų skirtumą jų keitimo metu.
O 58,060 $ atėmimas kaip tariamų piniginių „keitimo sąnaudų“ modelio taip pat nepataiso. Ateities sandoriai neįsigyjami sumokant visą jų kotiruojamą nominaliąją vertę. Vieno kontrakto uždarymas ir kito atidarymas lemia pozicijų pokyčius, realizuotą arba atsiskaitymo P&L, mokesčius, vykdymo poveikį ir garantinės įmokos reikalavimus. Skirtumas tarp jų kainų lygių savaime nėra piniginis nurašymas.
+58.06: koregavimas atgal, įrašytas į istoriją
Taikant vieną įprastą tęstinės sekos sudarymo metodą, ankstesnės kainos padidinamos kontraktų keitimo skirtumu. Pagal šią tvarką gegužės kaina −37.63 tampa 20.43, todėl su birželio kontraktu susijungia be šuolio. Kainos toje pačioje ankstesnėje istorijos dalyje taip pat padidėja 58.06.
| Sudarymo būdas | Kas vyksta šioje sujungimo vietoje | Poveikis tyrimui |
|---|---|---|
| Nekoreguota seka | Išlieka 58.06 $ skirtumas | Indikatoriai kontrakto keitimą gali palaikyti rinkos judėjimu |
| Koregavimas atgal sudedant | Prie ankstesnės sekos dalies pridėti 58.06 | Doleriniai pokyčiai tos pačios sekos dalyje išlieka; istoriniai lygiai ir procentiniai pokyčiai pasikeičia |
| Koregavimas atgal dauginant iš santykio | Ankstesnę sekos dalį padauginti iš 20.43 / −37.63, apytiksliai −0.543 | Neigiamas daugiklis apverčia kainų pokyčių toje sekos dalyje ženklą |
Būtent dėl paskutinės eilutės nelaikau „koreguota santykiniu metodu“ išsamiu duomenų aprašu. Metodui, kuris tinkamai veikia esant vien teigiamoms kainoms, reikia aiškios nulinės ir neigiamų kainų tvarkos.
Koregavimas sudedant taip pat turi pasekmių. Signalas, kuris perka kainai nukritus žemiau absoliučios 30 $ ribos, gali pasikeisti, kai vėlesni kontraktų keitimai perrašo ankstesnius kainų lygius. Greitojo ir lėtojo slankiųjų vidurkių skirtumu paremtas signalas gali nekisti, kai abiem vidurkiams pritaikomas tas pats sudėtinis pokytis. Tačiau langus, kertančius koregavimo ribą, reikia nagrinėti atskirai.
Kartu su tyrimo rezultatu saugokite koregavimo metodą, kontraktų keitimo tvarkaraštį ir duomenų versiją. Jei signalai priklauso nuo koreguotų kainų lygių, atkurkite istoriją tokią, kokia ji buvo prieinama kiekvieną sprendimo dieną. Dabartiniame atsisiuntime gali būti įtraukti koregavimai dėl kontraktų keitimų, kurie tuo metu dar nebuvo įvykę.
Dvi pavedimų eilutės, kurių trūksta tęstinių sandorių grafike
Štai sąmoningai supaprastintas registras. Tarkime, kad prieš keičiant kontraktą vieno gegužės kontrakto vertė buvo −30.00. Tarkime, kad gegužės kontraktas uždaromas, o birželio kontraktas atidaromas anksčiau pateiktomis istorinėmis atsiskaitymo kainomis, o vėliau birželio kontrakto vertė nustatoma ties 21.00. Šios tariamos įvykdymo kainos skirtos apskaitai paaiškinti.
| Registro įvykis | Skaičiavimas | Bendrasis P&L |
|---|---|---|
| Uždaryti vieną ilgąją gegužės poziciją ties −37.63 | 1,000 × (−37.63 − (−30.00)) | −$7,630 |
| Atidaryti vieną ilgąją birželio poziciją ties 20.43 | Įėjimo metu kainos pokyčio nėra | $0 |
| Nustatyti birželio kontrakto vertę ties 21.00 | 1,000 × (21.00 − 20.43) | +$570 |
| Iš viso | Neįskaičiuotos vykdymo sąnaudos ir mokesčiai | −$7,060 |
58.06 $ skirtumas niekur nepasirodo kaip atskiras uždarbis ar išlaidos. Kasdienis kintamosios garantinės įmokos atsiskaitymas lemia, kada ateities sandorių P&L pasiekia grynuosius pinigus; jis nesukuria antros to paties P&L kopijos.
Tikras kontrakto keitimas gali būti įvykdytas kalendorinio spredo pavedimu, o ne dviem atskirais pavedimais. Simuliatorius turėtų atvaizduoti pasirinktą mechanizmą, įskaitant įvykdymus ir mokesčius, kartu išsaugodamas atskiras pozicijas pagal kontraktą.
Mano paprastas priėmimo kriterijus: kiekvienas ateities sandorių prekybos P&L doleris turi būti susietas su konkrečiu kontraktu, kiekiu, daugikliu ir dviem to paties kontrakto kainomis. Taip pat noriu žinoti kontrakto keitimo sprendimo laiką ir jo įvesties duomenis. Taisyklė, paremta šiandienos užbaigtos sesijos apyvarta, negali tyliai sudaryti sandorio anksčiau tos pačios sesijos metu.
Tęstinę liniją braižykite kontekstui. Po ja parodykite faktiškai laikytus kontraktus ir pažymėkite kiekvieną perėjimą. Jei perėjimo vietoje šokteli nuosavo kapitalo kreivė, pirmiausia tikrinu tas dvi pavedimų eilutes.
← Visi įrašai


