A részvényfájlban a hivatalos záróár úgy néz ki, mint bármelyik másik ár. Időbélyeg 16:00:00 keleti parti idő, egy szám, készen a teljesülésre. A napi szignálok ezt jelölik. Az újrasúlyozások ide csapnak. Egy kutatóügynök úgy kezeli, mint egy jegyzést, amely a könyvön ült, és rád várt.
A zárás aukció, nem jegyzés. Az on-close megbízások uncross ára, amelyeket egy cutoff előtt kellett elfogadni. Ha a backtest oda teljesített anélkül, hogy belépett volna abba a kötegbe, egy olyan kötést könyvelt el, amelynek te nem lettél volna a része.
A 16:00 teljesítése úgy, mintha az uncross market megbízás lenne
A szokásos rövidítés: számold ki a szignált a záráskor vagy közvetlenül előtte, teljesíts a hivatalos záróáron, pecsételd 16:00-ra. Egy csendes kedden az AAPL-ben a hazugság néhány cent. Azokon a napokon, amelyek egy napi újrasúlyozó könyvet uralnak, ez a teljes ügylet.
16:00:00.000-kor a záró cross fut, vagy épp lefutott. Egy akkor küldött marketable megbízás nem kerül bele ebbe a crossba. Abba landol, ami maradt: visszamaradt displayed méret, egy odd lot, kiterjesztett kereskedés az ARCA-n vagy a Nasdaqon. Ez a kötés lehet két centre a hivatalos záróártól, vagy negyven bázispontra, és egy másik likviditási pool. Russell-reconstitutionkor, hónap végén vagy triple-witching pénteken a zárás gyakran a napi forgalom kétszámjegyű hányada. Az volt a likviditás. Te nem voltál benne.
Ezt véletlenül papírkereskedésben csináltuk. Egy paraméterállítás 15:48-ra esett. A backtest ettől még minden papírt a hivatalos záróáron teljesített. Az OMS sima market megbízásokat küldött 16:00:03-kor, mert senki nem kötötte be a MOC-ot. After-hours kötések, néhány reject, és 19 bázispontos shortfall a fájlhoz képest egy olyan napon, amikor a fájl szerint a zárásra flat voltunk. A stratégia nem romlott el. A teljesülési szabály romlott el.
15:49-re még mindig fizikai helyként gondolok. Valaki súlyt változtat. Valaki más az órát figyeli. A cutoffot nem érdekli, hogy kinek van igaza.
A MOC az a megbízás, amely ténylegesen kéri azt az uncross-t, és még a MOC sem ígéret. Egy halt, egy LULD-szünet, egy törölt aukció, egy papír, amely soha nem nyitott: 16:00-kor flat lehetsz egy working on-close megbízással, amely elhal. A LOC teljesen is kimaradhat. Ha az uncross $40.12, a limited pedig $40.00, semmid sincs. Rengeteg backtest ettől még lekönyveli a zárást.
Rosszabb, hogy egyes adatszolgáltatói fájlok olyan composite záróárat tárolnak, amely soha nem kötődött egyetlen piacon sem. Composite-hoz nem lehet csatlakozni. Ha a stratégia NYSE MOC-ot küldött volna, a lényeges teljesülés a NYSE uncross, abban a méretben, amelyet az aukció elnyelt volna.
Az utolsó, rendes idejű kötést zárásnak hívni
Egyes pipeline-ok elvből elutasítják a hivatalos záróárat, és az utolsó SIP-kötést veszik 16:00 előtt, mert az a kötés legalább „megtörtént”. Egy mega-capen az utolsó és a hivatalos gyakran egy-két centre van egymástól, és észre sem veszed. Egy mid-capen az utolsó kötés lehet 200 részvény 15:59:51-kor, annak a jegye alatt, aki felvett egy visszamaradt displayt. A hivatalos záróár két másodperccel később egy milliórészvényes uncross, más áron.
Az index, az ETF-létrehozási kosár és minden MOC-újrasúlyozás az uncross-t kereskedte. A backtested a maradékot kereskedte. És egy last print nem jár a te méreteddel. Ha az a kötés 400 részvény, a clipped pedig 5,000, nem azt az árat kaptad. Egy időbélyeget kaptál, amely véletlenül az utolsó volt.
Láttam már mid-cap fájlt, ahol a last-print a hivatalos záróárhoz képest 28 centet mozdult egy újrasúlyozó csütörtökön. A lastet használó backtest „mikrostruktúra-tudatosabbnak” tűnt. Csak egy másik, vékonyabb piac volt, és továbbra is azt feltételezte, hogy mi lehettünk volna az a 200 részvény.
A teljesülés holnapi nyitásra csúsztatása, hogy konzervatív legyen
A harmadik kitérő code review-ban jelenik meg kommentként: ne feltételezzük, hogy tudjuk kereskedni a zárást, ezért teljesítsük a következő nyitáson. Felnőttesen hangzik. Egy másik stratégiát épít.
A close-to-close szignál, amelyet a következő nyitáson hajtanak végre, megette az overnight gapet. Sok részvényfaktor esetében ez a gap a mozgás nagy darabja, amelyről azt hitted, hogy a tiéd. A nyitás teljesítése nem teszi óvatossá a backtestet. Áthelyezi a P&L-t egy olyan sessionbe, amelyet nem szántál kereskedésre, és bedob egy nyitóaukcióba, amelyet szintén nem modelleztél.
Papíron a romhalmazt könnyű félreolvasni. A backtest napi P&L-je továbbra is illeszkedik a szignálhoz. A papírkönyv egy éjszakányi index gapet és egy reggelnyi opening-cross slippage-et tart. Aztán implementation shortfallról vitatkoznak, holott a becsületes leírás az, hogy a két rendszer nem ugyanazt az ügyletet csinálja.
De a nyitás is aukció. Ha tegnap lekésted a cutoffot, nem kapsz automatikusan egy tiszta 9:30-as lastet. MOO/LOO-mechanikát kapsz, egy imbalance-t és egy gapet. Ha ezt konzervatív záró-teljesülésnek nevezed, csak egy második, modellezetlen crosst rejt el egy erényes komment alá.
| A teljesülés, amit lekönyveltél | Amit a piac valójában igényelt | Hogyan néz ki a romhalmaz |
|---|---|---|
| Hivatalos záróár, megbízástípus nélkül | MOC vagy LOC, az adott piac cutoffja előtt elfogadva | After-hours kötés, egy reject, vagy egy composite ár, amelyet senki nem hostolt |
| Utolsó SIP-kötés 16:00 előtt | Egy ügylet, amelyben a te méreteddel benne lehettél volna | 200 részvényes maradék clip-teljesülésként kezelve |
| Következő nyitás mint „biztonságosabb” zárás | Egy opening-cross modell, plusz az overnight gap | Más stratégia, még mindig aukció, még mindig lekésve |
A becsületes kettéválasztás szűk. Vagy a kutatási szerződés azt mondja, hogy a zárásban vagyunk, és akkor a megbízás on-close, időbélyegezve 15:50 előtt a NYSE-n vagy 15:55 előtt a Nasdaqon, a várható záróforgalomhoz méretezve, és ha LOC, kitöltetlenül is lejárhat. Vagy nem vagyunk a zárásban, és akkor az after-hours vagy a next-open egy néven nevezett politika a saját aukciójával, és az equity curve nem visel többé 16:00-es címkét.
Mostantól megbuktatunk minden olyan backtestet, amely a hivatalos záróárat könyveli anélkül, hogy on-close megbízás ült volna a cutoffon belül az adott piacon. Szép napi szignálgörbéket ölt meg. Azok a görbék soha nem voltak végrehajthatók azon az áron, amelyet állítottak.
← Összes bejegyzés


