← Макалаларга кайтуу
July 5, 2026
5 мүн окуу

Тактык дарбазасы: арзан прокси кымбат баалоо сыяктуу эле рангдабаса, ириден майдага бектестинг сизди тезирээк алдайт

Тактык дарбазасы: арзан прокси кымбат баалоо сыяктуу эле рангдабаса, ириден майдага бектестинг сизди тезирээк алдайт
#алгосоода
#бектест
#көп тактыктуу
#hyperband
#ASHA
#ырааттуу жарымдоо
#ашыкча ылайыкташуу
#валидация
Part 6 of 10 · Collection
High-Performance Backtest Engines

"Илюзиясыз бектесттер" сериясынын бир бөлүгү.

Ар кандай олуттуу параметр издөө бир эле дубалга такалат: издөө мейкиндиги өтө чоң, ал эми ар бир чынайы баалоо кымбатка турат. Ондогон босого менен үч индикатор мезгилине ээ көп-таймфреймдик стратегия, көп-фолддуу walk-forward бөлүнүшү боюнча бааланганда, конфигурация башына бир нече секундга турушу мүмкүн. Он миң конфигурация дегени — сааттаган убакыт дегени. Ошондуктан адам кыска жол издейт, ал эми бул кыска жол дайыма бир идеяга тирелет: арзан баалап, аман калгандарды гана кымбат сыноого өткөрүү. Он миң конфигурацияны бир фолддо иргеп, эң жакшы бир нече жүзүн калтырып, ошолорду бардык фолддордо иштетүү. Саатык шамдарда иргеп, финалисттер үчүн гана 1-секунддукка чейин тереңдетүү.

Бул — ириден майдага издөө: тереңдетип издөө, көп тактыктуу издөө, ырааттуу жарымдоо, Hyperband, ASHA — жана бул оптималдаштыруудагы чындап эле жакшы идеялардын бири. Ал бир күндүк эсептөөнү бир саатка чейин кыскартышы мүмкүн. Биз аны колдонобуз. Бирок анын ичинде колдонгондордун көбү эч качан текшербеген, ушунчалык унчукпаган тузак жашырылган, жана ал тузак мындай: бүт метод сиздин арзан проксиңиз конфигурацияларды кымбат баалоо сыяктуу эле рангдайт деп болжолдойт. Эгер андай болбосо, сиз тезирээк издебей жатасыз. Сиз келечектеги жеңүүчүлөрүңүздү биринчи дарбазада ыргытып, шумду көтөрүп жатасыз — сиз жөн эле өзүңүздү тезирээк алдап жатасыз.

Бул макала сиздин тереңдетип издөөңүз чыныгы же жаңылыш экенин айткан бирден-бир өлчөөгө арналат. Биз аны өзүбүздүн көп-таймфреймдик издөөбүздө жүргүздүк, жана жообу ыңгайсыз болду: эң арзан тактыкта биздин прокси конфигурацияларды дээрлик кокустан рангдады (Спирмендин ρ ≈ 0.03). Эгер биз ошол тактыкта агрессивдүү кыркканыбызда — стандарттуу ASHA жол-жобосу сунуштагандай — акыры жеңүүчү болуп чыккандарды биринчи раунддо эле ыргытып салмакпыз. Чечими — издөөдөн мурда иштелген милдеттүү дарбаза: ранг корреляциясын өлчөө жана ишенимдүү болгон тактыктан төмөн кыркуудан баш тартуу.

Көп тактыктуу издөө чындыгында эмне

Ириден майдага издөө каскады: солдо миңдеген арзан, төмөн тактыктагы конфигурациялар кеңири иргелет, ал эми жогорудагы аман калгандар гана оңго карай улам кымбаттанган толук баалоолор аркылуу өткөрүлөт — ырааттуу жарымдоо талапкерлердин кеңири зумрут талаасын бир нече жаркыраган финалистке чейин тарытат

Бул метод үй-бүлөсүнүн бир эле формасы бар. Сиз тактыкты аныктайсыз (ошондой эле ресурс же бюджет деп да аталат): максималдуу деңгээлинде чыныгы максаттуу функцияны берген, арзандан кымбатка чейинки жөнгө салгыч. Андан кийин конфигурацияларды төмөн тактыкта иштетесиз, аларды рангдайсыз, эң мыкты бөлүгүн калтырасыз, жана ошол аман калгандарды гана жогорку тактыкта кайра иштетесиз — бир аз гана финалист толук тактыкта бааланганга чейин кайталайсыз.

Ырааттуу жарымдоо (Jamieson & Talwalkar, 2016) — бул өзөк: N конфигурацияны минималдуу ресурс менен баштоо, эң мыкты 1/η бөлүгүн калтыруу, ресурсту η эсеге көбөйтүү, кайталоо. Hyperband (Li et al., 2018) ырааттуу жарымдоону ар кандай баштапкы ресурстар боюнча тобокелдикти азайткан тышкы циклге ороп алат, ошондуктан канчалык агрессивдүү кыркуу керектигин болжолдоонун кереги жок. ASHA (Li et al., 2020) — асинхрондуу, параллелге ыңгайлуу версия. η жоюу коэффициенти алар бөлүшкөн бирден-бир жөнгө салгыч; каноникалык демейки мааниси η = 3 — ар бир тепкичте жогорку үчтен бирин калтыруу, бюджетти үч эсе көбөйтүү.

Тактыктын өзү чындыкка жакындашкан, арзандан кымбатка чейинки дээрлик каалаган нерсе болушу мүмкүн:

  • Walk-forward фолддорунун саны. 1 фолддо баалоо, андан кийин 2де, 3тө, K гa чейин. Бул биз төмөндө изилдеген тактык, себеби ал кыймылдуу выборкадан тышкаркы (out-of-sample) бөлүнүшү бар бектест үчүн табигый тактык.
  • Шам чечилиши. 1 сааттык бар/шамдарда иргеп, 1 мүнөткө көтөрүү, финалисттер үчүн гана 1 секундга же чийки сделкаларга чейин тереңдетүү. Бул адаптивдүү тереңдетүү идеясынын толтуруу симуляциясына эмес, издөөгө колдонулушу.
  • Тарыхтын узундугу, эпохалар, датасеттин ички үлгүсү — классикалык ML тактыктары.

Бектесте фолддор менен чечилиш эң маанилүү экөө, жана — бул бүткүл макаланын маңызы — алар бирдей коопсуз эмес. Алардын биринде канчалык кылдаттык менен дарбазалабаңыз, туура эмес параметрлерди унчукпай тандаган жактоочу четтөө бар.

Баары негизделген жалгыз болжолдоо

Тереңдетип издөөнүн унчукпаган кыйрашы: арзан, төмөн тактыктагы рангдоо кымбат толук рангдоо менен дал келбейт, ошондуктан чыныгы зумрут жеңүүчүлөр биринчи дарбазада кыркылып салынат, ал эми кызыл-күрөң шум жогору көтөрүлөт — жана эч кандай ката эч качан чыкпайт

Ырааттуу жарымдоонун чындыгында туура болушу үчүн эмне керек экенин жазып көрөлү. Ага арзан тактыктын туура максаттуу маанини бериши керек эмес — бир фолд алты фолддон башка Шарп коэффициентин көрсөтсө, эч кимге деле маани берчи эмес. Ага андан алсызыраак, бирок алда канча так нерсе керек: арзан тактык конфигурацияларды кымбат тактык сыяктуу эле рангдашы керек. Эгер A конфигурациясы толук тактыкта B конфигурациясынан ашса, A төмөн тактыкта дагы B'дан ашууга умтулушу керек. Ушул эле жетиштүү. Ушул эле — баары.

Формалдуу түрдө, тереңдетип издөөнүн иштешин аныктаган чоңдук — бул конфигурация мейкиндиги боюнча төмөн тактыктагы жана жогорку тактыктагы максаттуу функциянын ортосундагы ранг корреляциясы. Эгер бул корреляция жогору болсо, арзан раундда аман калгандар кымбат раундда жеңип чыгар эле конфигуциялар менен бирдей, жана сиз эсептөөнү бекер эле үнөмдөп алдыңыз. Эгер ал төмөн болсо, арзан раунд кокус фильтр болуп калат: жакшы конфигурацияларды ыргытып, жаман конфигурацияларды көтөрөт, жана сиз бюджетиңизди начараак жоопко тезирээк жетүүгө сарптадыңыз. Сизди куткарган ортоңку η жөндөөсү жок — жаман прокси жумшак кыркылса да жеңүүчүлөрдү агызып жиберет; агрессивдүү кыркылса, аларды толугу менен агызып салат.

Ийгиликсиздик кадимки жол менен көрүнбөй калат. Издөө аяктайт, чемпионду көрсөтөт, чемпион выборка ичинде (in-sample) жакшы көрүнөт. Эч кандай ката чыкпайт. Прокси жалган айтканын сиз чемпион выборкадан тышкары (out-of-sample) кыйрап калганда гана биле аласыз — ал кезде болсо сиз ийгиликсиздикти аны тандаган издөөгө эмес, стратегиянын өзүнө жоопкерчиликке тартасыз. Ошондуктан бул дисциплина ушул сериянын кайра-кайра кайрылган нерсеси менен бирдей: методду ишенимиңизге ээ кылуудан мурда, метод болжолдогон нерсени өлчөңүз. Тереңдетип издөө үчүн өлчөгүдөй нерсе — ранг корреляциясы, жана бул өлчөө арзан.

Аны өлчөө: тактык дарбазасы

Текшерүү пункту катары тактык дарбазасы: бир да тепкичке ишенимдин алдында, болжол менен эки жүз кокус конфигурация ар бир тактык деңгээлинде бааланат, жана арзан прокси менен толук баалоонун ортосундагы ранг корреляциясы эки рангдоо макулдашкандан кийин гана ачылган жаркыраган дарбазада өлчөнөт

Дарбаза — бул сиз издөөнүн өзүнөн мурда, издемекчи болгон ошол эле мейкиндикте бир жолу жүргүзгөн кичине эксперимент. Жол-жобосу:

  1. Параметр мейкиндигинен бир нече жүз конфигурацияны кокустан тандап алыңыз (биз ~200 колдонобуз — туруктуу Спирмен баасы үчүн жетиштүү, ошону менен бирге арзан).
  2. Ар бирин бардык тактык тепкичтеринде баалаңыз: 1 фолддо, 2 фолддо, … толук K фолдго чейин. Фолд-саны тактыгы үчүн бул дээрлик бекер, себеби арзан тепкичтер үчүн эсептеген фолддор кымбат тепкичте кайра колдонулат — топтолмо орточо.
  3. Ар бир r тепкичи үчүн, ~200 конфигурация боюнча r-фолддук рангдоо менен толук K-фолддук рангдоонун ортосундагы Спирмендин ранг корреляциясын эсептеңиз.
  4. ρ босогону кескен биринчи тепкич (биз ρ ≥ 0.5 колдонобуз) — сиз кыркууга уруксат берилген эң тайыз тактык. Андан төмөн, рангдоо ишенүүгө өтө эле шумдуу; ал жерде конфигурацияларды жок кылууга болбойт.

Бүт нерсе бир нече ондогон сап код. Анын жүрөгү:

def fidelity_check(cache, n_probe, seed=7):
    """Spearman ρ: cumulative mean over the first r folds (in FOLD_ORDER)
    vs the full K-fold objective, on n_probe random configs."""
    rng = np.random.default_rng(seed)
    k = len(FOLDS)
    per_fold = np.empty((k, n_probe))
    order_win = np.array([list(FOLDS[fi]) for fi in FOLD_ORDER], np.int64)
    for j in range(n_probe):
        p = _unit_to_params(rng.random(len(PNAMES)))       # random config
        scores, *_ = eval_group(cache, p, _sp_of(p)[None, :], order_win, False)
        per_fold[:, j] = scores[0]                          # score on each fold
    cums = np.cumsum(per_fold, axis=0) / np.arange(1, k + 1)[:, None]  # r-fold mean
    rhos = []
    for r in range(1, k):
        rho = spearmanr(cums[r - 1], cums[-1]).statistic    # r folds vs all K
        rhos.append(0.0 if math.isnan(rho) else rho)
    return rhos

Бир атайылап жасалган майда-чүйдөнү белгилеп коёлу: фолддор FOLD_ORDER боюнча алынат — бул календардын эрте жана кеч кесимдерин кезектештирген аралаштырылган тартип (0-фолд, андан кийин ортоңку фолд, андан кийин 1-фолд, андан кийин кечирээк дагы бирөө, …). Бул абдан маанилүү жана кийинки бөлүмдүн темасы: демек, "1 фолд" — тарыхтын ортосун камтыган бир кесим, ал эми "2 фолд" — бир эрте жана бир кеч кесим — эч качан удаа турган акыркы терезе эмес. Арзан тактык фолддорду көбүрөөк жакыркы кылуу менен эмес, азыраак кылуу менен арзандайт.

Жыйынтыктар: бир фолд дээрлик кокустан рангдайт

Фолддордун саны менен өскөн ранг корреляциясы: бир фолддо тыйын ыргытуудагыдай чачыранды жакын жерден башталып, беш фолдго чейин дээрлик толук макулдашууга чейин тик өскөн Спирмендин ро ийри сызыгы, астыда кыркуу тыюу салынган жана үстүндө уруксат берилген ортоңку чекти кесип өткөн горизонталдуу дарбаза сызыгы менен

Мына биздин эки көп-таймфреймдик тууралоодо иштетилген дарбаза эмне билдиргени. Сан — ~200 кокус конфигурация боюнча r-фолддук рангдоо менен толук K-фолддук рангдоонун ортосундагы Спирмендин ρ — арзан тактыктагы ранг толук тактыктагы рангды канчалык так болжолдой алаарын көрсөтөт.

Фолддор r Көп-TF иштетүү Оорураак режим
1 +0.43 +0.03
2 +0.67 +0.43
3 +0.78 +0.78
4 +0.82
5 +0.91 +0.91

Адегенде оорураак режим тилкесин окуңуз, себеби ал коркунучтуу. Бир фолддо ρ = 0.03. Бул алсыз корреляция эмес; бул корреляциянын жоктугу — эки жүз конфигурациянын бир-фолддук рангдоосу аларды аралаштыруудан статистикалык жактан айырмаланбайт. Демейки боюнча (көбүнчө болгондой) min_resource = 1 менен кыркууну баштоого туураланган ырааттуу жарымдоо иштетүүсү, бул режимде, тыйын ыргытуу боюнча биринчи жана эң агрессивдүү кесүүсүн жасайт. Толук тактыкта акыры жеңип чыгуучу конфигурациялардын эң биринчи раунддо аман калуу мүмкүнчүлүгү 50/50. Рангдоо бир нерсени билдирген тактыкка жеткенде (үч фолддо ρ = 0.78), алардын көбү мурунтадан эле жок болуп кетет.

Multi-TF тилкеси жумшагыраак, бирок ошол эле ойду башкача жол менен көрсөтөт. Ал жерде да, бир фолд ρ = 0.43 берет — бул биздин 0.5 дарбазасынан төмөн. Бул татыктуу корреляциядай көрүнөт, жана коркунуч так ушунда: 0.43 сизди уктатып коюу үчүн жетишерлик жогору жана эң мыкты конфигурацияларыңызды агызып жиберүү үчүн жетишерлик төмөн. Рангдоо ишенимдүү болуп калышы эки фолддо гана (ρ = 0.67) болот.

Мындан эки нерсе жалпыланат. Биринчиден, бир фолддогу ρ режимге көз каранды жана ишенимсиз — биз тууралоолор боюнча 0.03тен 0.43кө чейинки маанилерди өлчөдүк, жана эки учурда тең бир фолд планканы аштыра алган жок. Экинчиден, ρ монотондуу жана тез өсөт: үч фолддо эки тууралоо тең 0.78де, ал эми беш фолддо 0.91гe чейин жакындашат. Сигнал бар; аны көрүү үчүн жөн эле жетиштүү тактык коротуу керек. Дарбазанын милдети — "жетиштүү" деген нерсе башталган так тепкичти табуу — жана андан төмөн кыркууга тыюу салуу.

Эмне үчүн бир фолд ушунчалык шумдуу

Бул шум биздин фолд түзүүбүздөгү мүчүлүштүк эмес; ал ички мүнөздө, жана эмне үчүн экенин түшүнүү аны туура эмес жол менен "оңдоп" коюудан сактайт. Бир walk-forward фолду — кыска терезе: бир базар режиминин бир нече жумасы. Стратегиянын ошол терезедеги баасына анын параметрлеринин ошол режимге кокустан канчалык дал келгени үстөмдүк кылат, ал эми бул анын жалпылоо жөндөмүнө анча деле байланыштуу эмес. Чынында сапаты боюнча айырмаланган эки конфигурация бир фолддо ордун алмаштыра алат, себеби алардын бири фолд кокустан камтыган трендди кармап алган. Бир фолддогу максаттуу маани сиз чынында маани берген максаттуу функциянын жогорку-дисперсиялуу баалоочусу, ал эми ранг корреляциясы так жогорку дисперсия эң биринчи жок кылган нерсе — баалоочунун орточосун сактап туруп, анын рангдоосу таза шум болушу мүмкүн.

Фолддорду көбөйтүү бул дисперсияны орточолоп азайтат. Ар бир фолд базар шарттарынын жарым-жартылай көз каранды эмес тандоосу; r-фолддук орточо — дисперсиясы төмөнүрөөк баалоочу, жана анын рангдоосу толук тактыктагы рангдоого жакындайт. Так ушул ρ = 0.03 → 0.43 → 0.78 → 0.91 өсүшү: максаттуу функция өзгөрүп жаткан жери эмес, режимге таандык таалай орточолонгон сайын анын ранг-баасы турукташып жаткан жери. Сабак мындай: бектест үчүн тактык, эң негизи, канча көз каранды эмес режимди тандап алганыңыз жөнүндө — ал эми бир режим рангдоо үчүн дээрлик эч качан жетишсиз.

Бул ошондой эле эмне үчүн оорураак режим 0.03тен башталып, ал эми multi-TF иштетүү 0.43тен башталганын түшүндүрөт. Оорураак режимде жалгыз фолд режимге көбүрөөк өзгөчө мүнөздүү — конфигурациялардын бир-фолддук баалары көбүрөөк таалайга, азыраак туруктуу артыкчылыкка көз каранды, ошондуктан алар кокустукка жакыныраак рангдалат. Дарбаза бул айырманы автоматтык түрдө окуп, кыркуудан мурда көбүрөөк фолд талап кылуу менен жооп берет. Сиз алдын ала кайсы режимде экениңизди билишиңиз керек эмес; сиз өлчөйсүз.

Коддогу дарбаза: минималдуу тактыкты автоматтык түрдө көтөрүү

Дарбазанын жыйынтыгы — бир бүтүн сан: min_resource, ASHAга кыркууга уруксат берилген эң тайыз тактык. Эреже механикалык — тепкичтерди бирден өтүп, ρ'сы босогону ашкан биринчисин алуу:

RHO_GATE = 0.5
min_res = len(FOLDS)                      # default: pruning OFF (full fidelity)
rhos = fidelity_check(cache, n_probe=200) # [ρ@1, ρ@2, …, ρ@(K-1)]
passing = [r for r, rho in enumerate(rhos, 1) if rho >= RHO_GATE]
if passing:
    min_res = passing[0]                  # first rung that clears the gate

pruner = SuccessiveHalvingPruner(min_resource=min_res, reduction_factor=3)

Муну эки иштетүү аркылуу ээрчип көрөлү. Multi-TF тууралоосунда ρ@1 = 0.43 дарбазадан өтпөйт, бирок ρ@2 = 0.67 өтөт, ошондуктан min_resource 2гe автоматтык түрдө көтөрүлөт: ASHA бир нерсени жок кылууга уруксат алганга чейин ар бир конфигурацияны кеминде эки фолддо иштетет, андан кийин ошол жерден баштап кадимкидей кыркат. Оорураак режимде, ρ@1 = 0.03 жана ρ@2 = 0.43 экөө тең өтпөйт; ρ@3 = 0.78 биринчи болуп өтөт, ошондуктан min_resource 3 болот. Жана эң маанилүү запастык вариант: эгер бир да тепкич 0.5кe жетпесе, passing бош болот жана min_resource K'да калат — кыркуу толугу менен өчүрүлөт, жана издөө тез, бирок туура эмес издөөгө эмес, жөнөкөй толук-тактыктагы издөөгө сылык түрдө деградацияланат. Проксисин далилдей албаган тереңдетип издөө жөн эле кыркуудан баш тартат.

Бул башкаруу агымынын бир сабында бүт философия. Ар бир ырааттуу-жарымдоо китепканасынын демейки жөндөөсү: "min_resource = 1 дан кыркуу, арзан тепкичке ишенүү." Дарбаза муну "маалымат ишенимдүү дегенде биринчи тепкичтен кыркуу, эгер эч бири ишенимдүү болбосо — кыркбоо" менен алмаштырат. Бул алдын ала бир ~200-конфигурациялык сыноого турат жана тереңдетип издөөнү ишенимдин актысынан өлчөнгөн чечимге айландырат. η = 3 жоюу коэффициенти өзгөрүүсүз калат; дарбаза сиз кыркууну канчалык катаал жасаарыңызга тийбейт, ал жалгыз качан баштоого уруксат берилгенине тийет.

Жогорудагы кодто көрүнгөн бир чынчыл эскертүү: min_resource'ду көтөрүү ылдамдатууну жеп коёт. 1дин ордуна 3 фолддо кыркуу дегени — ар бир конфигурация, анын ичинде сиз ыргытып сала турганы да, үч фолд үчүн төлөйт дегенди билдирет. Бул тууралыктын баасы, жана бул туура алмашуу: чыныгы жеңүүчүлөрдү табуучу издөөдөгү 2 эсе кичине ылдамдатуу, аларды ыргытып салуучу издөөдөгү 6 эсе ылдамдатуудан жакшы. Дарбаза бул алмашууну жашырбай, ачык түрдө жасайт.

Туура эмес арзан огу: кыска тарых — тузак

Азгырыктуу, ачык-айкын, жана жактоочу четтөөгө ээ арзан тактык бар, жана аны атап көрсөтүү маанилүү, себеби баары адегенде ага умтулат: кыскараак тарых. Конфигурацияларды акыркы айда иргеп, аман калгандарды толук эки жылга көтөрүү. Бул текчелик деле арзан жана азыраак фолд идеясы менен бирдей сезилет. Бирок андай эмес.

Азыраак фолд менен кыскараак тарых бир чечүүчү жагы менен айырмаланат. Туура жасалган фолд-саны тактыгы дагы эле бүткүл календарды камтыйт — ал жөн эле аны ириреек тандап алат. Кыскараак-тарых тактыгы болсо календардын суб-интервалын тыгыз тандап алат. Ал эми базар тарыхынын суб-интервалы — өзгөчө режим. Конфигурацияларды акыркы айда рангдаганда, сиз алардын толук мезгилдеги рангынын шумдуу, бирок жактоочу четтөөсүз баасын алып жаткан жоксуз; сиз акыркы айдын режимине туураланган конфигурацияларды системалуу түрдө жактаган жактоочу четтөөгө ээ баа алып жатасыз. Тандоо көлөмүн каалагандай көтөрүңүз — көбүрөөк конфигурация, көбүрөөк сыноо боюнча орточолоп — жактоочу четтөө кичирейбейт, себеби бул дисперсия эмес. Сиз иргөө терезесине эң жакшы дал келген конфигурацияларды көтөрөсүз, ал эми алар так өткөөл режимге ашыкча ылайыкташкан конфигурациялар болот.

Так ушул себептен биздин тактык фолддорду хронологиялык эмес, аралаштырылган тартипте өтөт. K фолд бүткүл тарых боюнча жайылганда, "1 фолд" — ортого жакын жалгыз кесим, "2 фолд" — бир эрте жана бир кеч кесим, "3 фолд" эрте/орто/кечти жайылтат — ар бир тактык деңгээли, эң арзаны да, бүткүл календарды тандап алат. Арзан прокси бүткүл мезгилдин ирирээк көрүнүшү, анын бир кесиминин курч көрүнүшү эч качан эмес. Так ушул аралаштыруу фолд-саны тактыгын жактоочу четтөөгө ээ (муну эч кандай дарбаза оңдой албайт — жактоочу четтөөгө ээ максатка карата жогорку ρ жөн гана сиз режимге дал келген конфигурацияны ишенимдүү түрдө тандай турганыңызды тастыктайт) эмес, жөн эле шумдуу (дарбаза менен айыгуучу) кылат. Эгер тактыкты арзандатуунун жалгыз жолуңуз аны жакыныраак кылуу болсо, сизде жарактуу тактык жок. Анын ордуна аны ирирээк кылыңыз.

Чечилиш — чынчыл арзан ог катары

Экинчи арзан ог жактоочу четтөөдөн толугу менен качат, жана ал биз толтуруу симуляциясы үчүн сүрөттөгөн адаптивдүү тереңдетүү идеясынын табигый өнөктөшү: шам чечилиши. Бүткүл мейкиндикти 1 сааттык бар/шамдарда иргеп, аман калгандарды 1 мүнөткө көтөрүп, бир нече финалист үчүн гана 1 секундга же чийки сделкаларга чейин тереңдетүү. Ошол эле толук тарых боюнча ирирээк шамдар баалоо үчүн арзаныраак — азыраак бар, тезирээк индикатор өтүшү, тезирээк симуляция — жана, кыскараак терезеден айырмаланып, бүткүл календардын ирирээк көрүнүшү жактоочу четтөөгө ээ эмес: ал ар бир режимди көрөт, жөн эле бар ичиндеги майда-чүйдө азыраак болот.

Чечилиш менен фолддор бири-бирин толуктаган тактык огу, жана тактык дарбазасы экөөнө тең тиешелүү. 1 сааттык иргөөгө ишенимиңизди коюудан мурда, ошол эле сыноону жүргүзүңүз: ~200 конфигурацияны алып, аларды 1с жана 1м'де баалап, ранг корреляциясын өлчөңүз. Эгер ρ(1с, 1м) жогору болсо, сааттарда иргөө коопсуз жана сиз чоң ылдамдатууну чынчылдык менен сатып алдыңыз. Эгер ал төмөн болсо — бул стратегиянын артыкчылыгы сааттык шамдар жоюп салган бар ичиндеги структурада жашаганда болот — ошондо сааттык иргөө ошол стратегия үчүн кокус фильтр, жана дарбаза сизге майдараак баштоону айтат. Эреже эч качан өзгөрбөйт: сиз тактыкта кыркууга анын рангдоосу чындык менен макул экенин өлчөгөндөн кийин гана уруксат аласыз.

Бул эки ог тескери жол менен да ийгиликсиз болот, бул пайдалуу. Ирирээк чечилиш бар ичиндеги маалыматты жоготот; азыраак фолд режимдер аралык маалыматты жоготот. Күндүк горизонттогу моментум стратегиясы сааттык шамдарда мыкты рангдалышы мүмкүн, бирок режим таалайын орточолоо үчүн көп фолд талап кылат; скальпинг стратегиясы аз фолддордо жакшы рангдалышы мүмкүн, бирок 1 секунддан жогорку чечилиште кыйрап калат. Ог боюнча иштетилген дарбаза сизге ушул стратегия үчүн кайсы тактыкта арзан бололооруңузду айтат — ыңгайлуу болуп калган жоопту болжолдоонун ордуна.

Үнөм чынында кайдан келет

Тереңдетип издөөнү чынчыл кармаган бир эскертүү: тактык эсептөөнү чыгым чынында жашаган жерде гана үнөмдөйт. Биздин көп-таймфреймдик кыймылдаткычта кымбат бөлүк — индикаторлорду алдын ала эсептөө: көп-таймфреймдик HMA жана бөлүнүү сигналдары — бул конфигурация башына бир жолу, бир да фолд иштебей туруп эле төлөнөт. Кэштелген сигналдардагы фолд-башынакы симуляция салыштырмалуу арзан. Ошондуктан фолд саны боюнча кыркуу үстөмдүк кылган индикатор чыгымын эмес, симуляция чыгымын гана үнөмдөйт; фолд-саны тактыгы чыныгы, бирок анын шыпы жалпы фолд катышы сунуштагандан төмөн.

Чечилиш огу болсо, тескерисинче, үстөмдүк кылган чыгымга түз чабуул жасайт: ирирээк шамдар индикаторлорду эсептей турган барлар азыраак дегенди билдирет, ошондуктан кымбат алдын ала эсептөө да, арзан симуляция да чогуу кичирейет. Бул майда-чүйдө эмес — кайсы тереңдетип издөөнү куруу керектигин чечет. Көп-тактыктуу издөөгө инвестиция салуудан мурда, секунддарыңыз кайда кетип жатканын сураңыз. Эгер 90% фолддор аралык бөлүшүлгөн индикатор алдын ала эсептөө болсо, фолд-саны тактыгы аз пайда берет, ал эми чечилиш тактыгы көп пайда берет. Адегенде профилдеңиз; туура арзан ог — сиз чынында ээ болгон чыгымды жойгону, жана ал дагы эле дарбазадан өтүшү керек.

Бул кайда байланышат

Тактык дарбазасы бул сериянын бектест гигиенасынын чынжырында так бир жерде турат:

  • Ал ашыкча ылайыкташууну көзөмөлдөөдөн жогору жайгашкан. Жаман проксиде кыркуучу тереңдетип издөө — ашыкча ылайыкташуунун жаңы жолу — сиз шумдуу эрте тепкичке финалисттериңизди тандатып жатасыз. Чемпион дагы эле Дефляцияланган Шарп жана PBO аркылуу аман калышы керек, жана ушул дарбазаларды азыктандырган сыноолордун саны кыркылган ар бир сыноону камтышы керек, жалгыз аман калгандарды эмес — кыркуу сыноону көп-жолу-текшерүү реестринен бошотпойт.
  • Ал плато анализи менен бир душманды бөлүшөт: бир фолддо же бир иргөө терезесинде жеңип, башка эч жерде жеңбеген конфигурация — эки курал тең четке кагуу үчүн бар болгон бир эле режимге-дал-келүү артефакты. Дарбаза мындай фолддо тандоодон баш тартат; плато анализи бирөөгө таянган чемпионго ишенүүдөн баш тартат.
  • Ал астында чынчыл walk-forward бөлүнүшүн болжолдойт — бүткүл календарды камтыган фолддор, четте калтырылган выборкадан тышкаркы бөлүк — жана бул толтуруу симуляциясы үчүн курган тереңдетип издөөбүздүн издөө-убактысындагы кошумчасы: ошол эле ириден майдага принциби, кайсы конфигурацияларды баалоо керек дегенге колдонулат, аларды канчалык так толтуруу керек дегенге эмес.
  • Жана ал ар бир тепкичте тактыктын агып чыгуусуз болушуна толугу менен көз каранды. Эгер арзан тепкичте кымбатта жок алдын ала караган четтөө болсо, ρ булганган максат менен макулдашууну өлчөйт жана дарбаза агып чыгууну тастыктайт. Ранг корреляциясын өлчөңүз, ооба — бирок чынчыл максаттуу функцияда.

Бириктирүүчү идея, дагы бир жолу, бул сериянын кайталай беришин токтотпогон идея: бектест — статистикалык эксперимент, жана андагы ар бир кыска жол сиз текшерүүгө милдеттүү болгон гипотеза. Тереңдетип издөөнүн гипотезасы: "арзан ранг ≈ кымбат ранг." Бул ~200 конфигурацияда текшерилиши мүмкүн. Аны текшериңиз.

Негизги тыянактар

  1. Ириден майдага издөө бир болжолдоого негизделет: арзан прокси конфигурацияларды кымбат прокси сыяктуу эле рангдайт. Бирдей маани эмес — бирдей рангдоо. Эгер ранг корреляциясы төмөн болсо, агрессивдүү кыркуу келечектеги жеңүүчүлөрүңүздү ыргытып, шумду көтөрөт. Сиз начараак жоопко карай тезирээк издейсиз.
  2. Ага ишенимиңизди коюудан мурда аны өлчөңүз. ~200 кокус конфигурацияны алыңыз, аларды ар бир тактык тепкичинде баалаңыз, жана ар бир арзан тепкич менен толук-тактыктагы рангдоонун ортосундагы Спирмендин ρ'сын эсептеңиз. Бул бир нече ондогон сап код жана бир арзан сыноо.
  3. Бир фолд дээрлик кокустан рангдайт. Биз ρ@1'ди режимге жараша 0.03тен (тыйын ыргытуу) 0.43кө (дагы эле ишенимден төмөн) чейин өлчөдүк; фолддор топтолгон сайын 0.67, 0.78, 0.82, жана 0.91гe чейин өсөт. Ар бир стандарттуу ASHAнын демейки min_resource = 1 жөндөөсү, бектест үчүн, көбүнчө туура эмес.
  4. Минималдуу тактыкты ρ ≥ 0.5 болгон биринчи тепкичке чейин автоматтык түрдө көтөрүңүз, жана эгер эч бири өтпөсө, такыр кыркпаңыз. Дарбаза бир тууралоо үчүн min_resource = 2гe, оорураак тууралоо үчүн 3кe айланды; запастык вариант толук-тактыктагы издөөгө сылык түрдө деградацияланат. Тууралык кандайдыр бир ылдамдатууга турат — аны төлөңүз.
  5. Арзан огду анын арзандыгы боюнча эмес, жактоочу четтөөгө ээ экенин боюнча тандаңыз. Кыскараак тарых жактоочу четтөөгө ээ — ал режимге-дал-келген параметрлерди тандайт жана эч кандай тандоо көлөмү муну оңдобойт. Бүткүл календарды камтыган (удаа эмес, аралаштырылган) азыраак фолд же толук мезгил боюнча ирирээк чечилиш колдонуңуз. Жана арзан огду сиз чынында чыгымга ээ болгон жерге сарптаңыз.

Тереңдетип издөө бектестингдеги эң мыкты ылдамдатуулардын бири, жана өзүңүздү тезирээк алдоонун жолуна айландыруу эң оңой болгондорунун бири. Экөөнүн ортосундагы айырма — издөө башталганга чейин өлчөй турган бир гана сан. Эгер сиздин проксиңиз чындык сыяктуу эле рангдай турганын далилдей албаса, бул прокси эмес — бул ишенимдүү чыгым профили бар кокус сан генератору.

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Рынктан бир кадам алдыда болуңуз

AI соода аналитикасы, рынок талдоолору жана платформа жаңылыктары үчүн биздин жаңылыктар бюллетенине жазылыңыз.

Биз сиздин купуялыгыңызды урматтайбыз. Каалаган убакта жазылымдан чыга аласыз.