Nagbalik ng 20% annualized ang isang backtest. Gumamit ito ng 8 taon ng datos, 1,640 trade, at maayos na walk-forward split. Pagkatapos, pinalitan namin ang kasalukuyang history ng vendor ng mga value na naitala noong panahong iyon, at bumaba sa 3% ang edge.
Hindi ang orihinal na kita ang nakakagulat na numero. Ang 17 percentage point na nakasalalay sa binagong datos ang nakakagulat. Maaaring nakatago ang ganitong hindsight sa mga paglalabas ng datos pang-ekonomiya, mga batayang datos ng kumpanya, pagiging kasapi sa index, at maging sa mga field ng market na inaakalang simple lang. Ipinakikita ng makasaysayang datos kung ano ang sinasabi ng source ngayon. Ipinakikita naman ng point-in-time dataset kung ano ang maaaring nalaman ng strategy mo noon.
Bakit nagbabago ang makasaysayang datos matapos ang pangyayari?
May mga value na unang inilalabas bilang tantiya, saka itinatama. Maaaring baguhin sa susunod na buwan ang estadistikang pang-ekonomiya na inilabas noong Biyernes. Maaaring baguhin ng kumpanya ang iniulat nitong kita. Maaaring itama ng vendor ng datos ang maling print, punan ang nawawalang interval, o palitan ang paunang value ng pinal na value. Kapag pinakabagong value lang ang iniimbak ng database, magmumukhang matagal nang ganoon ang lahat ng pagbabagong ito.
Mahalaga ito kapag nagraranggo ang strategy ng mga kumpanya batay sa iniulat na kita o nagte-trade sa market matapos ang nakatakdang paglalabas ng datos. Kung nakikita nito nang mas maaga ang itinamang numero, binigyan ito ng backtest ng impormasyong wala pa sa market noong oras ng pagpapasya. Maaaring walang mali sa pagkalkula ng signal; mula pa rin sa maling bersyon ng kasaysayan ang input nito.
May madaling pagkakamali rito: madalas inilalarawan ng field na date ang panahong saklaw ng isang value, hindi kung kailan ito naging available. Maaaring hindi nailathala hanggang Mayo ang row ng quarterly revenue na may markang March 31. Tungkol sa panahon ng negosyo ang label, hindi sa impormasyong hawak ng strategy.
Aling timestamp ang dapat gamitin ng backtest?
Subaybayan nang magkahiwalay ang panahong tinutukoy ng value at ang oras kung kailan ito naging available. Kung maaari, itala rin ang oras ng paglalathala at oras ng pagpasok nito sa system. Magagamit lang ng strategy ang value kapag nailathala na ito at natanggap na ng system; kung magkaiba ang mga oras na iyon, gamitin ang mas huli para sa konserbatibong replay.
| Timestamp | Inilalarawan nito | Pakinabang |
|---|---|---|
| Oras na tinutukoy | Panahon o pangyayaring tinutukoy ng value | Pinapangkat ang mga obserbasyon batay sa sinusukat |
| Oras ng paglalathala | Kung kailan inilabas ng source ang bersyong ito | Pinipigilang lumabas ang datos bago pa ito umiral |
| Oras ng pagpasok sa system | Kung kailan natanggap ng system mo ang bersyon | Itinatala ang mga pagkaantala sa paghahatid at huling backfill |
Halimbawa, ipagpalagay na saklaw ng quarterly sales ng isang kumpanya ang Enero hanggang Marso, iniulat ang mga ito noong Mayo 8 nang 16:15 Eastern, at dumating sa research store mo nang 16:17. Hindi magagamit ng strategy na nagpapasya sa pagsasara ng market noong Mayo 8 ang ulat na iyon kung naganap ang pasya nito sa oras ng pagsasara nang 16:00. Magagamit ito ng strategy na magpapasya kinabukasan ng umaga. Hindi masasagot ng petsa ng quarter-end lang ang alinman sa mga tanong.
Paano ko susubukan kung mga rebisyon ang nagtutulak sa resulta?
Patakbuhin nang dalawang beses ang parehong strategy: una, gamit ang bersyon ng datos na available sa bawat makasaysayang oras ng pagpapasya; at ikalawa, gamit ang pinakabagong binagong kasaysayan. Panatilihing pareho ang mga palagay sa execution, universe, at code. Sukat ito ng pagiging sensitibo sa mga rebisyon, hindi paghahambing ng bagong strategy.
Pagkatapos, siyasatin kung saan nagmumula ang agwat. Nagbabago ba ang performance sa mga araw ng paglalabas ng datos? Nasa iilang kumpanyang binago muli ang mga iniulat o itinamang obserbasyon ba ang pinakamalalaking pagkakaiba? Nagte-trade ba ang strategy bago ang kaugnay na oras ng paglalathala? Madalas mas marami pang naipapaliwanag ng maliit na audit sa antas ng pangyayari kaysa ng isa pang chart ng pinagsama-samang kita.
Halimbawa lang ang mga numerong ito, hindi parusang ipinapataw sa lahat. Ang kapaki-pakinabang na resulta ay magkatambal na pagsukat para sa sarili mong strategy, na magkapareho ang mga trade at gastos hangga't maaari. Kung lamang nang malaki ang binagong bersyon, alamin muna kung aling mga field at petsa ang sanhi ng pagkakaiba bago pagkatiwalaan ang headline na resulta ng backtest.
Ano ang dapat itala sa audit ng point-in-time data?
Magsimula sa mga field na talagang ginagamit ng strategy mo. Para sa bawat isa, tukuyin ang source, kahulugan ng timestamp, patakaran sa mga rebisyon, at kung makukuha pa ang mga naunang bersyon. Tanungin ang vendor kung paano kinakatawan ang mga pagwawasto: pinapalitan ba ang mga row, nagdaragdag ng mga row para sa bagong bersyon, o inilalagay sa hiwalay na audit log? Hindi sapat ang salitang “historical” sa pahina ng produkto para masagot ito.
- Itago ang bawat bersyon kasama ang timestamp ng paglalathala o unang pagiging available nito.
- Iugnay ang mga feature sa mga pagpapasya gamit ang oras ng availability, hindi ang mga label ng panahon.
- Magtago ng nakapirming snapshot o bersyon ng source para maulit nang pareho ang mga run.
- Markahan ang mga value na huling dumarating, binabago, o walang maaasahang kasaysayan.
Panatilihing praktikal ang saklaw. Kung mga trade at bar lang mula sa exchange ang ginagamit ng strategy mo, maaaring walang kinalaman ang mga rebisyon sa datos pang-ekonomiya. Pero maaari pa ring makaapekto ang mga pagwawasto sa bar at backfill ng vendor, lalo na kung nakasalalay ang signal sa isang market na manipis ang liquidity o sa eksaktong window ng pangyayari.
Kapag walang makuhang point-in-time na kasaysayan
Huwag tahimik na ituring na ang value ngayon ay siya ring value kahapon. Markahan ang field bilang limitasyon, huwag itong isama sa mga pahayag na nakasalalay sa makasaysayang availability, o magpatakbo gamit ang konserbatibong pagkaantala at ipakita kung gaano nagbabago ang resulta. Makakatulong sa pananaliksik ang proxy na may pagkaantala, basta malinaw ang pagkaantalang iyon at kasama sa resulta ang limitasyon.
Tungkulin ng backtest na buuing muli ang isang pasya gamit ang impormasyong umiiral noong panahong iyon. Kung pinakabagong bersyon lang ang ipinakikita ng datos mo, may hangganan ang tapat na resulta: masusubukan nito ang strategy batay sa kasaysayang binuo muli ngayon, pero hindi nito mapatutunayan kung ano mismo ang maaaring nakita ng isang makasaysayang agent.
← Lahat ng post

