Maaaring ganap na tama ang isang row ng market data, pero hindi pa rin ito magamit na ebidensya para sa backtest. Naganap ang trade, tama ang presyo, at wasto ang timestamp; pero maaaring huli itong naihatid ng feed, maaaring itinama ito ng vendor sa kalaunan, o maaaring hindi naaabot ng iyong strategy ang market na naka-quote.
Para malaman kung naipagpapalit ang makasaysayang data, huwag event timestamp lang ang i-audit. Kailangan mong malaman kung ano ang inilalarawan ng row, kung kailan ito naging available sa system, kung anong venue o instrumento ang kinakatawan nito, at kung makatwirang makasuporta sa iyong order ang quote o trade.
Sapat na ba ang tamang makasaysayang presyo para sa backtest?
Hindi. Sinasagot ng katumpakan ang tanong na, “Anong presyo ang naitala ng source sa huli?” Kailangan ding sagutin ng backtest ang, “Ano ang maaaring nalaman ng aking strategy noong oras ng pagpapasya?” at “Ano ang maaari nitong na-execute?” Magkaibang tanong ang mga ito.
Isipin na may crypto trade na naitala sa 12:00:00.120, pero naihatid ito ng stream ng data vendor sa iyong proseso sa 12:00:00.480. Hindi magagamit ng strategy na nagpapasya sa .200 ang trade na iyon, kahit na nauna sa desisyon nito ang event timestamp. Kung event time lang ang pinananatili ng makasaysayang file, maaari nitong tahimik na bigyan ang strategy ng impormasyong hindi pa matatanggap ng live na proseso nito.
| Oras o field | Ano ang ipinapaalam nito | Pagpalya ng backtest kapag nawawala |
|---|---|---|
| Event time | Kung kailan sinasabi ng exchange na naganap ang event | Pagkalito sa oras ng market at availability sa strategy |
| Receive time | Kung kailan natanggap ng collector mo ang mensahe | Paggamit sa naantalang data na para bang agad itong dumating |
| Sequence o update ID | Kung saan pumapasok ang event sa pagkakasunod-sunod ng feed | Paglalapat ng mga update nang wala sa ayos o hindi pagpansin sa mga ito |
| Revision time | Kung kailan nalaman ang itinamang makasaysayang value | Pag-backtest gamit ang value na wala sa orihinal na feed |
Kung walang receive time ang archive mo, maging tapat sa kakulangang iyon. Maaari kang sumubok ng palagay tungkol sa latency, o limitahan ang pahayag sa pananaliksik batay sa event time. Hindi mo maibabalik ang eksaktong impormasyong available noon gamit ang mga timestamp na hindi naman na-save.
Paano ko malalaman kung mae-execute ang isang quote?
Magsimula sa market na mararating sana ng order mo. Maaaring ibuod ng consolidated best bid and offer ang ilang venue; hindi nito pinatutunayang may access ang account mo sa ipinapakitang laki ng order, naroon pa ang quote nang dumating ang order mo, o tatanggapin ng venue ang uri ng order mo.
Para sa market order, karaniwang kathang-isip ang fill sa midpoint. Mas kapaki-pakinabang na tantiya ang pagdaan sa nakikitang order book batay sa laki ng order, saka idagdag ang fees at palagay tungkol sa latency o impact. Kung top-of-book data lang ang mayroon ka, limitahan ang pahayag: matatantiya mo ang unang level, pero hindi mo mahihinuha ang lalim ng book na hindi naman naitala.
Para sa limit order, hindi ibig sabihin ng pag-abot sa presyo ay nagkaroon na ng fill. Maaaring maubos muna ng mga order na nauna sa iyo ang available na quantity. Karaniwang hindi alam ang puwesto sa queue mula sa karaniwang mga snapshot, kaya ituring ang fill rule na nakabatay sa pag-abot sa presyo bilang optimistikong senaryo, hindi bilang katotohanan tungkol sa nangyari.
Maipapakita ng 1-minute bar na bumaba ang presyo sa iyong limit. Hindi nito masasabi kung nakarating ang nakahintay mong order sa venue bago bumaba ang presyo, gaano karami ang na-trade roon, o gaano kahabang pila ang nasa unahan mo.
Ano ang dapat kong suriin bago pagkatiwalaan ang isang archive ng market data?
Sinusuri ko muna ang mga payak na katangian. Mas marami silang nahuhuling palpak na pananaliksik kaysa sa sopistikadong execution model na idinadagdag sa sirang feed.
- Saklaw: May nawawalang pagitan, dobleng event, puwang sa sequence, o hindi maipaliwanag na bugso ng zero volume?
- Pagkakakilanlan ng market: Pareho ba ang exchange, contract, quote currency, at mga detalye ng instrumento na tinutukoy ng symbol sa paglipas ng panahon?
- Availability: Pareho bang pinananatili ang event time at receive time? Kung hindi, anong palagay tungkol sa delay ang naglilimita sa resulta?
- Mga pagwawasto: Matutukoy mo ba ang orihinal na mensahe kumpara sa mga backfill o rebisyon ng vendor na ginawa kalaunan?
- Mga yunit: Pare-pareho bang binibigyang-kahulugan ang mga presyo, quantity, multiplier ng contract, at timestamp?
Halos napakapayak pakinggan ng huling pagsusuring iyon. Minsan, buong umaga kong siniyasat ang tila pagbabago sa volatility regime, pero nagpalit lang pala ng yunit ang isang quantity field matapos ilipat ang feed. Napakaganda ng chart; mali ang yunit.
Paano ko masusubukan kung binabago ng availability ng data ang resulta?
Magsagawa ng maliit na sensitivity test sa paligid ng hangganan ng pagpapasya ng strategy. Iusog ang magagamit na data ayon sa makatotohanang mga delay, itapon ang mga update na putol ang continuity ng sequence, at ihambing ang mga fill gamit ang aktuwal na order book ng venue kung mayroon ka nito. Iulat kapwa ang orihinal at ang pinahina na resulta. Kung binubura ng napakaliit na delay ang epekto, maaaring nakadepende ang strategy sa bentahe sa impormasyon na hindi maaasahang maibibigay ng setup mo sa pagkolekta ng data.
Para sa kongkretong halimbawa, ipagpalagay na nagti-trigger ang signal kapag tumaas nang 1 tick ang best bid. I-replay ito nang isang beses gamit ang exchange event time at isa pa gamit ang receive time ng collector. Kung 40 beses nag-trade ang bersyong batay sa event time at 27 beses naman ang bersyong batay sa receive time, bahagi ng ebidensya tungkol sa strategy ang pagkakaibang iyon. Gayundin ang performance sa bawat replay. Huwag itago ang mas mahinang replay dahil lang hindi gaanong kaaya-aya ang itsura ng data nito.
Kapaki-pakinabang na susunod na pagsusuri ang paper trading dahil inilalantad nito ang mga delay sa feed, lipas na quote, pagkakamali sa pagtutugma ng symbol, at mga filter ng venue sa mismong daloy ng operasyon na ginagamit ng sistema mo sa pananaliksik. Hindi pa rin nito mauulit ang bawat sitwasyon sa queue o market impact sa live trading. Panatilihing malinaw ang hangganang iyon.
Ano ang ibig sabihin ng “naipagpapalit na data” sa aktuwal na paggamit?
Ibig sabihin, maipapaliwanag ng backtest kung kailan naganap ang isang obserbasyon, kung kailan ito nagamit ng strategy, saang market ito nagmula, at anong ebidensya tungkol sa execution ang sumusuporta sa ipinagpalagay na fill. Panimulang punto lamang ang malinis na serye ng presyo. Nagiging kapani-paniwala ang pananaliksik kapag nasusuri ang mga palagay nito tungkol sa oras, access, at fill—at may saysay pa rin ang resulta kahit pahinain mo ang mga palagay na iyon.
← Lahat ng post


