2026. gada 1. novembris · pētījumi

Kā iesildīt baktestu, neieskaitot atskates logu sniegumā?

Kā iesildīt baktestu, neieskaitot atskates logu sniegumā?

20 dienu Donchian specifikācijā izskatās nekaitīgs. Aģents uzraksta 20 joslu slīdošo maksimumu, baktests sākas no parquet faila pirmās rindas, un pirmās divas nedēļas „20 dienu maksimums” ir tikai tekošais maksimums no tām joslām, kas vispār ir. Ceturtajā dienā tas ir četru dienu maksimums. Stratēģija, kuru jums šķita, ka testējat, nav tā, kas radīja pirmo duci izpildījumu.

Man ir notebook ar ETHUSDT dienas joslām, kur pilnās izlases Sharpe ir 1.4. Nogrieziet pirmās 20 sesijas, un tas nokrīt līdz 0.6. Paturiet šīs 20 un izmetiet pārējo pirmā gada daļu, un tas izdrukā 3.1. Neviens nenolīda rītdienu. Stratēģija izmantoja pagātni, tikai par maz tās, un atskaite šos pusgatavos darījumus uzskatīja par pierādījumu.

1.4pilnās izlases Sharpe, iekļaujot nepabeigto logu
0.6tas pats kods pēc 20 pabeigtām sesijām
3.1Sharpe, ja paturat tikai iesildīšanas darījumus

Ļaut logam tirgot, kamēr tas vēl pildās

Parastais postījums ir min_periods=1. Pandas aprēķinās slīdošo vidējo no vienas joslas, ja jūs tam ļausiet. Aģenti to dara nemitīgi, jo NaN tabulas augšgalā šķiet kā kļūda, un tās aizpildīšana padara vienībtestu zaļu.

20 dienu realizētā svārstīguma mērķis ar diviem atdeves novērojumiem ir apjoma sprādziens. Divu skaitļu dispersija ir monētas mešana, jūs to invertējat, un pirmā pozīcija ir vairākas reizes lielāka par iecerēto risku. z-score pret gandrīz nulles standartnovirzi dara to pašu triku ar zīmi: šķiet, ka stratēģijai ir žiletes asa ieeja, kas vairs neparādās, tiklīdz logs ir godīgs.

Izrāvieni ir sliktāki, jo izskatās pēc īstā noteikuma. 20 joslu kanāls sestajā joslā ir sešu joslu kanāls. Pašā sākumā iegūstat darījumu kopu, bieži klusā posmā, kas nebūtu iedarbinājis pabeigto indikatoru. Klusi tirgi nedaudz dreifē. Šaurs kanāls izšauj. Kapitāla līkne iegūst avansu, ko neviena vēlāka gada neatkārto.

Zero-fill un forward-fill izgudro citu melu. RSI pie 0 tiek nolasīts kā pārpārdots. Trūkstošs ATR ar vērtību 0 uzspridzina vienības izmēru, un baktests pašaizliedzīgi nopērk veselu noliktavu. Es labāk gribētu, lai NaN nogalinātu orderi, nekā lai 0 to izgudrotu.

Es joprojām pieķeru sevi zīmējam no 0. rindas, jo tukšs mēnesis diagrammas kreisajā malā izskatās nepabeigts. Tukšais mēnesis ir godīgā daļa.

Apgriezt kapitāla līkni, paturēt pozīciju

Šis izdzīvo koda pārskatē. Jūs korekti aprēķināt 20 dienu pazīmes, izmetat pirmās 20 rindas no uzzīmētās līknes un publicējat no 21. janvāra. Pozīcija 21. janvārī tika atvērta 14. janvārī. Trailing stop augstākā ūdenslīnija, piramīdas skaits, nauda pēc šiem iesildīšanas darījumiem: tas viss iesoļoja „tīrajā” izlasē.

Postījums ir papīra stratēģija, kuru nevar palaist rakstā norādītajā datumā. Pārstartējiet no plakanas pozīcijas ziņotajā sākumā, un pirmās nedēļas orderi nesakrīt. Dažreiz baktests jau ir darījumā, kurā papīra sistēmai nav iemesla ieiet. Dažreiz papīra sistēma ieiet, jo tās atskates logs ir auksts, un baktests sēž malā, jo tā slēptais mēnesis jau ir paņēmis izrāvienu. Divas atvēršanas grāmatas, viens publicēts sākuma datums.

Walk-forward foldi to dara klusām. Katram testa logam ir atskates aste, kuru jūs nezīmējat. Izlaidiet šīs astes simulēšanu, un pirmie testa darījumi atkal ir nepabeigta loga darījumi. Simulējiet to un ziņojiet tikai testa dienas, un testa dienas pozīcija ir atkarīga no izpildījumiem, kurus jūs nerādāt. Šī otrā versija var būt leģitīma pētniecības izvēle. Folda pirmo rītu saukt par auksto startu, kamēr trailing stop jau ir aktīvs no astes, ir tas, kā divi pētnieki no vienas konfigurācijas iegūst divus Sharpe.

Ja pārstartēšana no plakanas pozīcijas publicētajā sākuma datumā maina P&L, iesildīšana ir rezultātu vēsturē. Atskates dati var būt klāt. Atskates darījumi nevar.

Iesildīt kalendārajās dienās, kad pazīme nav diena

„Dodiet tam 30 dienas” atstāj pazīmi nepietiekami specifikētu. Trīsdesmit kalendārās dienas uz 5 minūšu Donchian ir tūkstošiem joslu tālāk par 20 periodu atskates logu. Trīsdesmit dienas pazīmei ar dienas joslām, kurai vajag 20 sesijas, ir vai nu treknas, vai plānas, atkarībā no nedēļas nogalēm un caurumiem.

Finansēšanas likmes z-score vienā no mūsu perp biržām saņēma 30 dienu iesildīšanu, jo specifikācija teica 30 periodus un kāds periodus pārtulkoja kalendārā. Finansēšana tur fiksējas ik pēc astoņām stundām. Trīsdesmit dienas ir aptuveni 90 norēķini. Trīsdesmit periodi ir desmit dienas. Papildu divi iesildīšanas mēneši nejauši iekļāva depeg nedēļu. To izmetot, dzīvais logs izskatījās mierīgāks par stratēģijas īsto vēsturi. Cilvēki vainoja jutību pret sākuma datumu. Iesildīšana bija apēdusi režīmu.

Un kripto pret akcijām liek tam pašam skaitlim mainīt nozīmi, nevienam neizmainot parametru. Divdesmit ETH „dienas” ietver sestdienas. Divdesmit akciju sesijas ir gandrīz kalendārais mēnesis. Nokopējiet 20 dienu atskates logu no akciju notebook uz stundu perpetuālajām svecēm, un jums ir 20 stundu kanāls ar 20 dienu nosaukumu. Pirmā derīgā josla tad ir vai nu pēc 20 stundām, vai pēc 20 dienām, ja kāda vēlāka funkcija pārdiskretizē, un es abus esmu redzējis vienā un tajā pašā aģenta diff.

Fiksēt pirmo tirgojamo laika zīmogu

Iesildīšana ir datu prasība, nevis bonusa izlase. Katra pazīme nosauc pabeigto novērojumu skaitu, kas tai vajadzīgs, tajās vienībās, kurās tā tiek rēķināta. Pirmais tirgojamais laika zīmogs ir pirmā josla, kurā tas viss ir spēkā un plakanam kontam būtu bijis atļauts nosūtīt orderi.

PazīmeKo specifikācija parasti sakaKas patiesībā ir jābūtKlusais aizstājējs
20 dienu Donchian20 dienas maksimumi20 pabeigtas sesijasTekošais maksimums ar min_periods=1
30 dienu realizētais svārstīgums30 dienu logs30 close-to-close atdevesDivu dienu dispersija, invertēta apjomā
20 printu finansēšanas z-score20 dienas20 finansēšanas norēķini20 kalendārās dienas (~90 printi), vai 20 joslas nepareizā laika periodā
14 periodu RSI uz 5m14 periodi14 slēgtas piecu minūšu joslas14 dienas, vai 14 joslas ar caurumiem, kas aizpildīti uz priekšu

P&L pirms šī laika zīmoga paliek ārpus rezultātu vēstures. Stāvoklis pirms šī laika zīmoga joprojām var būt jāsimulē, lai trailing stop vai atdzišanas periods būtu īsts, kad pulkstenis sasniedz pirmo tirgojamo joslu, bet šie izpildījumi neietilpst Sharpe, darījumu skaitā vai kapacitātes matemātikā. Tad palaidiet neglīto pārbaudi: pārstartējiet no plakanas pozīcijas šajā laika zīmogā, atskates logam esot pieejamam tikai kā datiem. Ja orderi mainās, jūs piegādājāt slēptos darījumus.

Papīra tirdzniecība sākas pēc tā paša līguma. Tāpat katrs walk-forward testa logs. Ja diagramma izskatās, ka trūkst mēneša, atstājiet to trūkstošu.

baktestēšanadatu inženierijawalk-forwardAI aģentipapīra tirdzniecība
← Visi raksti