2026. november 12. · végrehajtás

A backtested a hivatalos záróáron teljesült. Az aukcióba soha nem léptél be.

A backtested a hivatalos záróáron teljesült. Az aukcióba soha nem léptél be.

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.

3:50NYSE on-close cutoff (ET)
3:55Nasdaq záró-cross cutoff (ET)
~10%jellemző large-cap forgalom a zárásban

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élAmit a piac valójában igényeltHogyan néz ki a romhalmaz
Hivatalos záróár, megbízástípus nélkülMOC vagy LOC, az adott piac cutoffja előtt elfogadvaAfter-hours kötés, egy reject, vagy egy composite ár, amelyet senki nem hostolt
Utolsó SIP-kötés 16:00 előttEgy ügylet, amelyben a te méreteddel benne lehettél volna200 részvényes maradék clip-teljesülésként kezelve
Következő nyitás mint „biztonságosabb” zárásEgy opening-cross modell, plusz az overnight gapMás stratégia, még mindig aukció, még mindig lekésve
Ha a papírszámla nem tud MOC-ot vagy LOC-ot küldeni, a backtest nem kapja meg a hivatalos záróárat. Változtasd meg a teljesülést. Ne közelítsd az uncross-t egy 16:00-es market megbízással.

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.

visszateszteléspiaci mikrostruktúrarészvényekzáróaukcióvégrehajtás
← Összes bejegyzés