Setyembre 24, 2026 · pananaliksik

Muli naming i-replay ang Paper Strategy matapos mag-restart. Nagbago ang mga order nito.

Muli naming i-replay ang Paper Strategy matapos mag-restart. Nagbago ang mga order nito.

Ni-restart namin ang isang paper strategy sa kalagitnaan ng trade at iba ang naging pagkakasunod-sunod ng mga order kumpara sa inilabas nito bago mag-restart. Parehong market data, parehong bersyon ng strategy, parehong balanse ng account. Tugma ang kalkulasyon ng signal. Hindi tugma ang naaalala ng strategy tungkol sa posisyon at mga nakabinbing order nito.

Sinubaybayan namin ang hindi pagtutugmang ito sa maghapong pag-replay. Simple ang aral: isa ring market event para sa software mo ang pag-restart. Kung hindi mo susubukan kung paano muling binubuo ng strategy ang estado nito, maaaring itago ng malinis na backtest na nakakalimot ang paper system sa mga hawak nito.

09:10 — Pumili kami ng karaniwang posisyon

Isang likidong perpetual ang itinrade ng test strategy: magbukas ng long kapag umakyat ang maikling moving average sa ibabaw ng mas mahabang moving average, saka lumabas kapag nagkaroon ng salungat na crossover. Sinimulan namin ang replay na may maliit nang bukas na posisyon at reduce-only na limit order na nakapila para bahagyang bawasan ito. Dalawang bagay ang kailangang buuin muli sa recovery: kung ano ang hawak namin at kung ano na ang ipinagawa namin sa venue.

Sa checkpoint, may hawak ang account na 0.04 contract. Bukas ang order para sa 0.01. Naka-cache sa memorya ang dalawang halagang ito ng proseso ng strategy, pero posisyon lang ang kinukuha nito sa pagsisimula. Itinuring nitong wala na ang naka-cache na order.

09:25 — Lumitaw ang unang dobleng order

Pagkatapos mag-restart, nakita ng strategy ang umiiral na long, pinatakbo ang signal logic nito at nagsumite ng isa pang 0.01 trim order. Dalawa na ang aktibong order sa paper venue. Walang masama sa alinman sa mga order kung nag-iisa ito. Pero kapag kapwa napunan, maaari silang makapagbenta ng doble sa nilalayong halaga.

Noong una, sinisi namin ang signal loop. Hindi ang loop ang problema; kulang ang snapshot. Itinanong ng strategy, “Anong posisyon ang hawak ko?” pero hindi nito itinanong, “Aling mga order ang pinoproseso pa?”

Estado pagkatapos mag-restartAyon sa paniniwala ng prosesoAktuwal na hawak ng account
PosisyonLong 0.04Long 0.04
Mga bukas na trim orderWalaDalawa, tig-0.01
Nilalayong exposure kapag napunan ang isaLong 0.03Maaaring maging long 0.02

10:00 — Inayos namin ang recovery, saka nakakita ng problema sa tiyempo

Binago namin ang pagsisimula para buuing muli ang estado mula sa mga posisyon at bukas na order ng account bago payagang gumawa ng mga bagong desisyon. Naalis nito ang dobleng order. Pagkatapos, ginawa naming mas magulo ang pagkakadiskonekta: napunan ang isang order habang offline ang strategy, at pagkatapos lamang muling kumonekta dumating ang abiso ng fill.

Nasa snapshot na ng account ang epekto ng fill. Pagdating ng naantalang abiso, muli nitong binawasan ang lokal na posisyon. Sa loob ng ilang segundo, inakala ng strategy na may hawak itong 0.02 contract kahit 0.03 ang nasa account. Nakasalalay sa maling kakulangang ito ang susunod nitong rebalance.

Nagdagdag kami ng mga tuntunin sa reconciliation: ituring na panimulang punto ang snapshot ng account, gumamit ng mga event identifier para balewalain ang mga fill na kasama na roon, at huwag magsumite ng order hangga't hindi tapos ang unang sync. Maaaring mahuli o maulit ang isang abiso. Kailangang kayanin ng recovery ang dalawang sitwasyon.

13:40 — Nahuli ng replay ang isang hindi kapansin-pansing mismatch

Ni-replay namin ang parehong galaw ng presyo para sa orihinal at ni-restart na takbo. Hindi sana mahahalata ang problema kung pinal na P&L lang ang inihambing namin: nagtapos ang dalawang bersyon sa parehong posisyon matapos bumaligtad ang merkado. Lumitaw ito nang ihambing namin ang mga order event.

Itinala namin ang bawat desisyon kasama ang estadong ginamit nito: posisyon, mga bukas na order, huling naprosesong fill identifier, halaga ng signal at bersyon ng strategy. Naipaliwanag agad ang unang magkaibang event. Nakakita ng gumaganang order ang isang takbo; walang laman ang listahan sa isa. Kalaunan, dalawang beses namang nailapat ng isa ang isang fill.

Hindi patunay ng magkaparehong kilos ang magkaparehong panghuling balanse. Ihambing ang pagkakasunod-sunod ng mga desisyon at order, lalo na sa mga puntong bumabawi ang system.

16:20 — Ano ang babaguhin namin sa susunod

Masyado kaming nagtagal sa pag-replay ng datos ng presyo bago sinuri ang mga pagbabago sa estado ng account. Sa susunod, uunahin naming magpasok ng mga sitwasyong pumapalya at pananatilihing halos patag ang galaw ng merkado. Mas madaling makita ang error sa software nang hindi ginugulo ng pabagu-bagong galaw ang pagsusuri.

Natutuhan din naming mag-save ng recovery snapshot kasama ng bersyon ng strategy at event log. Dahil dito, ilang minuto na lang ang kailangan para maulit ang problema, sa halip na umasa sa alaala ng isang tao tungkol sa eksaktong pagkakasunod-sunod ng muling pagkonekta.

Hindi pa ganap na nasubok ang paper strategy na tama lang ang kilos habang buhay ang proseso nito. I-restart ito habang may bukas na posisyon, hayaang mahuli ang dating ng mga fill, at suriin ang bawat order na ipapadala nito pagkatapos. Hindi layuning patunayang hindi ito kailanman pumapalya. Layunin nitong makita kung paano ito bumabawi bago ka muling mabigla at maturuan ng paper account sa parehong paraan.

paper tradingestado ng strategybacktestingpamamahala ng orderreproducibility
← Lahat ng post