May reputasyon ang walk-forward optimization bilang ang matapat na paraan ng pag-tune ng estratehiya, at karapat-dapat naman ito — kumpara sa pag-optimize sa lahat ng datos at paghanga sa resulta. Pero may mga tahimik na failure mode ang teknik na ito, at pare-pareho ang naiiwan ng bawat isa: isang validation report na nagsasabing "robust" na nakadikit sa isang estratehiyang hindi naman. Narito ang tatlong kinailangan naming harapin sa disenyo, nakaayos ayon sa pinsalang iniiwan nila.
Unang pagkabigo: tumatagas ang mga window
Ang maling paraan: mag-tune sa Enero-Hunyo, mag-validate sa Hulyo, tapos hayaang may anumang galing sa Hulyo ang makaimpluwensya sa pangalawang pasada — isang re-run matapos makita ang out-of-sample na numero, isang "maliit na tweak" sa parameter grid, isang feature na na-normalize sa buong series. Mukhang inosente ang bawat isa. Pagsama-samahin mo, ginagawa nilang in-sample data na lang ang out-of-sample window, delayed nga lang.
Ang pinsala: isang out-of-sample Sharpe na misteryosong sumusunod sa in-sample Sharpe. Maingay at nakakadismaya ang tunay na out-of-sample na resulta; ang kahina-hinalang kinis ng ugnayan ng IS at OOS ay tanda na may impormasyong umaatras. Binabantayan namin nang tahasan ang ratio — kapag ang in-sample ay lampas 3x ng out-of-sample, may bandera na ang run, at ang out-of-sample na zero pababa ay patay agad gaano man kaganda ang in-sample.
Pangalawang pagkabigo: metric shopping sa mga window
Magpatakbo ng tatlong walk-forward window, makakuha ng tatlong maingay na resulta, tapos magbuod: mean Sharpe? Median? Tanggalin ang pinakamasamang window dahil sa "regime change"? Bawat pili ay isang degree of freedom, at ang matiyagang optimizer (tao man o Bayesian) ay makakahanap ng buod kung saan pinakamaganda ang itsura ng estratehiya. Ang pitumpu't limang Optuna trial kada window ay pitumpu't limang pagkakataon para i-fit ang ingay, beses ilan mang buod ang handa mong pagbigyan.
Ang pinsala: isang estratehiyang pasado sa validation na naghahatid naman ng performance ng pinakamasamang window pagdating sa live, dahil ang pinakamasamang window lang pala ang matapat. Ang tuntunin namin: nakatakda na sa config ang aggregation bago ang run, nakatakda ang trial budget, at binabasa ng analyst ang per-window na resulta kasama ang ipinapakitang dispersion. Ang estratehiyang kailangan ng maluwag na buod para pumasa ay hindi pasado.
Pangatlong pagkabigo: ang holdout na tumigil nang maging holdout
Isang beses lang gumagana ang holdout. Sa pangalawang pagkakataong sukatin doon ang isang estratehiya — matapos ang isang paggalaw ng parameter, isang tweak sa signal, isang "tingnan lang natin" — hindi na iyon holdout; isa na iyong mabagal na validation set. Mukhang madaling ingatan ang labinlimang araw na hindi ginagalaw, hanggang sa dumating ang presyon ng pag-uulit at parang walang saysay na ang muling pagsilip.
Banayad ang pinsala: mga resulta ng holdout na bumubuti sa bawat ulit ng parehong estratehiya. Walang dahilan ang sariwang out-of-sample na datos para gantimpalaan ang ikatlong ulit kaysa sa una, at kapag nangyari iyon, minina na ang holdout. Ipinapatupad namin nang makinarya ang one-shot: minsan lang sumusukat ang holdout kada pipeline run, isinusulat sa record ang resulta, at ang estratehiyang nangangailangan ng panibagong pagtatangka ay dumadaan muli sa buong gauntlet — bagong window at lahat. Kailangan nitong panatilihin ang hindi bababa sa 70% ng walk-forward out-of-sample Sharpe, at walang pangalawang gulong sa dice na iyon.
Ang palatandaang nakakaligtas sa tatlo
Bago pa ang lahat ng iyan, nagpapatakbo kami ng simpleng sensitivity sweep: galawin ang bawat parameter ng ±20% at bantayan ang metrics. Ang tunay na edge ay unti-unting humihina; ang aksidenteng resulta ay bumabagsak sa bangin. Ito ang pinakamurang pagsubok sa pipeline at ito ang bumabasura sa mga estratehiyang malinis sanang nakalusot sa lahat ng nabanggit sa itaas — dahil ang parameter cliff ang hitsura ng overfitting bago mo pa ito nabigyan ng pagkakataong magtago sa makinarya ng validation.
Wala sa mga ito ang gumagawang ligtas sa optimization. Ginagawa nitong maingay ang mga failure mode — at iyon na ang pinakamalaking bagay na matapat mong maaasahan sa isang proseso ng validation.
← Lahat ng post