20 dienų Donchian specifikacijoje atrodo nekenksmingas. Agentas parašo 20 barų slenkantį maksimumą, backtestas prasideda nuo pirmos parquet failo eilutės, ir pirmąsias dvi savaites „20 dienų aukštuma“ tėra einamasis maksimumas visų barų, kurie jau yra. Ketvirtą dieną tai keturių dienų aukštuma. Strategija, kurią manėte testuojantys, nėra ta, kuri pagamino pirmąjį tuziną įvykdymų.
Turiu notebooką su ETHUSDT dienos barais, kuriame visos imties Sharpe yra 1.4. Nukirpkite pirmąsias 20 sesijų ir jis krenta iki 0.6. Palikite tas 20 ir išmeskite likusią pirmųjų metų dalį, ir jis spausdina 3.1. Niekas nenutekino rytojaus. Strategija naudojo praeitį, tik nepakankamai jos, o ataskaita tuos pusiau susiformavusius sandorius traktavo kaip įrodymą.
Leisti langui prekiauti, kol jis dar pildosi
Įprastos nuolaužos yra min_periods=1. Pandas apskaičiuos slenkantį vidurkį ir iš vieno baro, jei tik leisite. Agentai tai daro nuolat, nes NaN lentelės viršuje atrodo kaip bugas, o jį užpildžius unit testas pažaliuoja.
20 dienų realized-vol tikslas su dviem grąžos stebėjimais yra dydžio sprogimas. Dviejų skaičių dispersija yra monetos metimas, ją apverčiate, ir pirmoji pozicija yra kelis kartus didesnė už numatytą riziką. z-score prieš beveik nulinį standartinį nuokrypį daro tą patį triuką su ženklu: strategija tarsi turi skustuvo aštrumo įėjimą, kuris daugiau nebesirodo, kai langas sąžiningas.
Pramušimai dar blogesni, nes atrodo kaip tikroji taisyklė. 20 barų kanalas šeštame bare yra šešių barų kanalas. Pačioje pradžioje gaunate sandorių spiečių, dažnai ramioje atkarpoje, kuri nebūtų suveikusi su užbaigtu indikatoriumi. Ramios rinkos šiek tiek dreifuoja. Siauras kanalas suveikia. Kapitalo kreivė gauna pranašumą, kurio jokie vėlesni metai nepakartoja.
Zero-fill ir forward-fill išranda kitokį melą. RSI, lygus 0, skaitomas kaip perparduotas. Trūkstamas ATR, lygus 0, išsprogdina vieneto dydį, ir backtestas uoliai perka visą sandėlį. Verčiau tegul NaN nužudo pavedimą, nei 0 jį išras.
Vis dar pagaunu save braižant nuo 0 eilutės, nes tuščias mėnuo kairėje grafiko pusėje atrodo nebaigtas. Tuščias mėnuo ir yra sąžiningoji dalis.
Apkarpyti kapitalo kreivę, palikti poziciją
Šita išgyvena kodo peržiūrą. 20 dienų požymius apskaičiuojate teisingai, iš braižiamos kreivės išmetate pirmąsias 20 eilučių ir publikuojate nuo sausio 21. Pozicija sausio 21 dieną buvo atidaryta sausio 14. Trailing stop aukščiausio lygio žyma, piramidės skaičius, grynieji po tų įšilimų: visa tai įžengė į „švarią“ imtį.
Nuolaužos – popierinė strategija, kurios negalima paleisti tą dieną, kuri nurodyta aprašyme. Perkraukite iš nulinės pozicijos nuo deklaruotos pradžios ir pirmos savaitės pavedimai nesutampa. Kartais backtestas jau yra sandoryje, į kurį popierinė sistema neturi priežasties įeiti. Kartais popierinė sistema įeina, nes jos lookback šaltas, o backtestas sėdi nuošalyje, nes paslėptas mėnuo jau paėmė pramušimą. Dvi atidarymo knygos, viena publikuota pradžios data.
Walk-forward foldai tai daro tyliai. Kiekvienas testinis langas turi lookback uodegą, kurios nebraižote. Praleiskite tos uodegos simuliaciją ir pirmieji testiniai sandoriai vėl yra nebaigto lango sandoriai. Simuliuokite ją ir pateikite tik testines dienas, ir testinės dienos pozicija priklauso nuo įvykdymų, kurių nerodote. Ta antroji versija gali būti teisėtas tyrimų pasirinkimas. Pirmąjį foldo rytą vadinti šaltu startu, kai trailing stop jau gyvas nuo uodegos, yra tai, kaip du tyrėjai iš vienos konfigūracijos gauna du Sharpe.
Sušildyti kalendorinėmis dienomis, kai požymis nėra diena
„Duokite jam 30 dienų“ palieka požymį nepakankamai apibrėžtą. Trisdešimt kalendorinių dienų 5 minučių Donchian yra tūkstančiai barų daugiau nei 20 periodų lookback. Trisdešimt dienų dienos požymiui, kuriam reikia 20 sesijų, yra arba stora, arba plona, priklausomai nuo savaitgalių ir skylių.
Finansavimo normos z-score vienoje mūsų perp biržų gavo 30 dienų sušildymą, nes specifikacija sakė 30 periodų, o kažkas periodus išvertė į kalendorines dienas. Finansavimas ten spausdinamas kas aštuonias valandas. Trisdešimt dienų yra apie 90 atsiskaitymų. Trisdešimt periodų yra dešimt dienų. Papildomi du mėnesiai įšilimo atsitiktinai apėmė depeg savaitę. Jį išmetus, gyvasis langas atrodė ramesnis nei tikroji strategijos istorija. Žmonės kaltino jautrumą pradžios datai. Sušildymas buvo suvalgęs režimą.
O kriptovaliutos palyginti su akcijomis priverčia tą patį skaičių keisti prasmę niekam neredaguojant parametro. Dvidešimt ETH „dienų“ apima šeštadienius. Dvidešimt akcijų sesijų yra beveik kalendorinis mėnuo. Nukopijuokite 20 dienų lookback iš akcijų notebooko ant valandinių perpetual žvakių ir turite 20 valandų kanalą su 20 dienų pavadinimu. Pirmasis galiojantis baras tada yra arba po 20 valandų, arba po 20 dienų, jei kokia nors vėlesnė funkcija persamplina, ir abu variantus mačiau tame pačiame agento diff.
Įtvirtinti pirmąją prekiaujamą laiko žymą
Sušildymas yra duomenų reikalavimas, o ne premijinė imtis. Kiekvienas požymis nurodo, kiek užbaigtų stebėjimų jam reikia, tais vienetais, kuriais jis skaičiuojamas. Pirmoji prekiaujama laiko žyma yra pirmasis baras, kuriame visa tai teisinga ir nulinė sąskaita būtų galėjusi siųsti pavedimą.
| Požymis | Ką specifikacija paprastai sako | Kas iš tikrųjų turi egzistuoti | Tylusis pakaitalas |
|---|---|---|---|
| 20 dienų Donchian | 20 dieninių aukštumų | 20 užbaigtų sesijų | Einamasis maksimumas su min_periods=1 |
| 30 dienų realized vol | 30 dienų langas | 30 close-to-close grąžų | Dviejų dienų dispersija, apversta į dydį |
| 20 spaudinių finansavimo z-score | 20 dienų | 20 finansavimo atsiskaitymų | 20 kalendorinių dienų (~90 spaudinių) arba 20 barų neteisingo timeframe |
| 14 periodų RSI 5m | 14 periodų | 14 uždarytų penkių minučių barų | 14 dienų arba 14 barų su tarpais, užpildytais forward-fill |
P&L prieš tą laiko žymą lieka už rezultatų istorijos. Būseną prieš tą laiko žymą vis tiek gali reikėti simuliuoti, kad trailing stop ar cooldown būtų tikri, kai laikrodis pasiekia pirmąjį prekiaujamą barą, bet tie įvykdymai neina į Sharpe, sandorių skaičių ar pajėgumo skaičiavimus. Tada paleiskite bjauriąją patikrą: perkraukite iš nulinės pozicijos nuo tos laiko žymos, lookback turėdami tik kaip duomenis. Jei pavedimai pasikeičia, siuntėte paslėptus sandorius.
Popierinė prekyba prasideda pagal tą pačią sutartį. Taip pat ir kiekvienas walk-forward testinis langas. Jei grafikas atrodo tarsi trūktų mėnesio, palikite jį trūkstamą.
← Visi įrašai


