High-Performance Backtest Engines
How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.
- 01
Jun 26, 2026 #algotradingБэктест ылдамдык шаты: ноутбуктун CPU'сунда 298x, акыркы сделкага чейин бирдей PnL
Бир эле 80-комбинациялуу параметр сканирүүсүнүн беш ишке ашыруусу, баары бирдей PnL берерин текшерилген: pandas'тагы rolling.apply 69.9 секунд алат, numpy — 3.1, numba — 2.0, параллель numba — 0.23 — Apple M2 Max'та аппараттык өзгөртүүсүз өлчөнгөн 298x ылдамдоо, жана дагы деле натыйжалуу вектордоштурулган база менен салыштырганда ~13x. Ар бир шаты эмне берет, эмне үчүн GPU жетишпеген звено эмес, жана массалык параметр издөөдөгү чыныгы тыгыздык кайда жашырылган.
- 02
Jul 2, 2026 #algotradingФреймворк салыгы: качан сиздин backtest китепканаңыз жөнөкөй pandas циклинен жайыраак болот
Биз сегиз backtest кыймылдаткычын бирдей параметр свипинде салыштырдык — 150k бар, 80 HMA-cross комбинациясы, сооданын саны 2707де бирдей кулпуланган. Эң популярдуу эки окуяга негизделген фреймворк колдо жазылган pandas циклинен да жайыраак чыкты, ал эми векторлоштурулган/компиляцияланган кыймылдаткыч ошол эле ишти ~13,000× тезирээк аткарды. Популярдуу китепканалар эч качан амортизациялоого арналбаган ар бир бар үчүн жүктөмдүн изилдөөсү.
- 03
Mar 16, 2026 #algotradingАгрегатталган Parquet кэши: мультитаймфрейм бэктесттерди жүздөгөн эсе кантип ылдамдатуга болот
Мүнөттүк шамдардан таймфреймдерди жана индикаторлорду алдын ала кантип эсептөө, аларды parquet форматында сактоо жана артык кайра эсептөөлөрсүз стратегияларды массалык тестирлөө үчүн пайдалануу.
- 04
Jul 3, 2026 #алготрейдингЭки октуу параметр мейкиндиги: эмне үчүн сиздин издөөнүн көпчүлүгү дээрлик акысыз болушу керек
Бардык параметрлер издөө үчүн бирдей баа турбайт. Стратегиянын параметрлери кымбат окко (индикаторлор — бүт сериянын үстүнөн кайра эсептелет) жана арзан окко (чечим босоголору — алдын ала эсептелген сигналдардын үстүнөн O(n) өтүү) бөлүнөт. Индикаторлор босогого көз каранды эмес болгондуктан, сиз аларды бир жолу эсептеп, миңдеген босого конфигурацияларын ~5 600 cfg/s ылдамдыкта издейсиз — ар бир конфигурация үчүн кайра эсептөөгө караганда болжол менен 1 600 эсе арзан. Өлчөмдүүлүктүн каргышын кайра баалоо.
- 05
Mar 17, 2026 #algotradingАдаптивдүү Drill-Down: Мүнөттөн чийки сатылымдарга чейинки өзгөрмө деталдуулуктагы бэктест
Адаптивдүү дайындар деталдуулугу бэктесттерди кантип ылдамдатат жана сактагычты кантип үнөмдөйт: 1m'ден 1s, 100ms жана чийки сатылымдарга чейин drill-down баа олуттуу өзгөргөн же көлөм секирген жерде гана, бүткүл тарыхый катарда эмес.
- 06
Jul 5, 2026 #алгосоодаТактык дарбазасы: арзан прокси кымбат баалоо сыяктуу эле рангдабаса, ириден майдага бектестинг сизди тезирээк алдайт
Тереңдетип издөө / көп тактыктуу издөө (ASHA, ырааттуу жарымдоо, Hyperband) миңдеген конфигурацияны арзан баада иргеп, аман калгандарын гана кымбат толук баалоого өткөрөт. Бул чындыгында ылдамдатуу берет — бирок төмөн тактыктагы рангдоо жогорку тактыктагыдан айырмаланса, унчукпай кыйрап калат. Биз фолддор боюнча ранг корреляциясын өлчөдүк: бир фолддо Спирмендин ρ 0.03 болушу мүмкүн (дээрлик кокустан рангдайт), фолддор көбөйгөн сайын 0.43, 0.67, 0.78, 0.91гe чейин өсөт. Чечими — милдеттүү бир дарбаза: адегенде ρ(арзан, толук) өлчөп, андан кийин минималдуу тактыкты ρ ≥ 0.5 болгон биринчи тепкичке чейин автоматтык түрдө көтөрүү.
- 07
Jul 4, 2026 #алгоритмдик соодаКокустук издөө vs Акылдуу издөө: Кесилиш чекити — баалоо наркы, алгоритм эмес
Бир бэктест арзан болгондо, акылсыз аралаштырылган (scrambled) Sobol таза өткөрүү жөндөмдүүлүгү (throughput) боюнча жеңип чыгат — акылдуу сэмплерлер (TPE, CMA-ES, ASHA) Python'догу ask/tell салыгын төлөйт, бул аларды 20 эсеге жайлатат, ошондуктан алар бирдей wall-clock убакытында бир топ аз чекитти баалайт жана уттурат. Ар бир баалоону кымбат кылсаңыз (multi-TF + walk-forward фолддору), кесилиш чекити тескерисинче которулат. Биз эки режимди тең өлчөдүк жана эмне үчүн фолд-рэнк тактыгы (ρ@1 0.03дон 0.43кө чейин өсүп) кыркуунун (pruning) өзүн актоосу үчүн алгышарт болорун аныктадык.
- 08
Jul 6, 2026 #алготрейдингGPU тактыгынын тузагы: Apple Metal үстүндөгү fp32 бэктест кантип үнсүз таштанды кайтарат
Apple'дын Metal GPU'сунда float64 жок. Векторлоштурулган бэктестти ага акылсызча которсоңуз, азгырган prefix-sum WMA fp32'ни толуп кетирет — максималдуу салыштырма ката 211× — бирок ал баары бир иштеп, ынанымдуу көрүнгөн сандарды кайтарат. Чечим — көбүрөөк тактык эмес; бул башка формулировка: түз терезелик convolution, fp32 үчүн 8×10⁻⁷ чейин коопсуз жана бир агымдуу numba'дан 55.9× тезирээк. Тузак, арифметика жана сиз ага түшпөгөнүңүздү кантип далилдөө керек.
- 09
Jul 7, 2026 #algotradingGPU качан өзүн актайт: параметр сыдыруунун roofline модели, же жарнамалык 167x чындыгында — 27x алгоритм менен 6.2x жабдыктын көбөйтүндүсү
GPU-нун CPU-дан озуусу топтомдун өлчөмү менен өсөт — биздин көп таймфреймдүү индикаторлорду алдын ала эсептөөдө чакырыгына бир комбинацияда 54.5x болсо, 61 комбинацияда 359.6x-ке жетет — анткени кичине сыдыруу ядрону ишке киргизүү жана маалымат ташуу үстөк чыгымын амортизациялай албайт. Биз жарнамалык 167x-ти CPU-га да жардам берген 27x алгоритмдик утушка жана 6.2x жабдык утушуна ажыратабыз, GPU менен эң мыкты CPU ортосундагы чыныгы озуу бир таймфреймде болгону 3.2x, көп таймфреймде 6.2x экенин көрсөтөбүз жана GPU сатып алганга татышы үчүн сыдыруу канчалык кенен болушу керектиги боюнча чечим колдонмосун беребиз.
- 10
Jun 30, 2026 #algotradingIPC салыгы: бэктест кыймылдаткычын сокеттин артына коюп, 13% жоготуу — анын ичинен дээрлик эч нерсе сокетке байланыштуу эмес
Биз numba бэктест ядросун сап-сабы менен Rust тилине которуп, аны процесс чек арасы аркылуу төрт ыкма менен чакырдык, акыркы бүтүмгө чейин бирдей PnL ырастаган эквиваленттик дарбаза менен. 1.2 МБ баа сериясынын баарын Unix сокети аркылуу жиберүү ~2 мс кетет — тапшырманын болжол менен 0.1%. Ошол эле жүктөмдү JSON форматында коддоо чийки байттардан 1348 эсе кымбат турат, комбинация сайын "chatty" чакыруулар маалыматтарды 80 жолу кайра жиберет, ал бар сайынкы чакыруу үлгүсү 2.0 с тапшырмада 2.1 с таза IPC-ге акы төлөйт. Чек ара арзан; салык аны кантип кесип өтүүдө турат.