← Maqolalarga qaytish
June 28, 2026
5 daqiqa o'qish

Maqsad funksiyasini loyihalash: siz optimallashtirgan metrika strategiyangizni yashirincha tanlaydi

#algotrading
#backtest
#overfitting
#objective-function
#optimization
#sharpe
#validation
🎯
Part 1 of 9 · Collection
Backtesting Without Fooling Yourself

"Illyuziyasiz bektestlar" turkumining bir qismi.

📄 Bu maqola ilmiy maqolaga aylandi. Quyidagi har bir raqam nazorat qilinadigan asosiy haqiqatni quruvchi bitta deterministik skriptdan olingan — mo'tadil signal diapazonida ma'lum edge'ga ega va hamma joyda yog'li dumli shovqinga ega sintetik bozor — so'ngra oltita turli maqsad funksiyasi ostida chegara qidiruvini bajaradi va, out of sample, har bir maqsad haqiqatan qaysi strategiyani tanlashini o'lchaydi. Maqolani onlayn (interaktiv versiya + PDF) objective-design.marketmaker.cc saytida o'qing, kod va ma'lumotlar github.com/suenot/objective-design-degeneracy manzilida.

Siz eng yaxshi strategiyani xohlaysiz. Shuning uchun qidiruv o'tkazasiz — chegarani, lookback'ni, stop masofasini skanerlaysiz va eng yuqori ball to'plagan sozlamani saqlab qolasiz. Qidiruv tugaydi va sizga g'olibni beradi. Oqilona. Standart. Bu dunyodagi har bir optimallashtiruvchi, grid search va giperparametr sozlovchisi qiladigan ish.

Lekin fe'lga qarang: eng yuqori ball to'playdi. Nimada eng yuqori? Qidiruv biror narsani toj kiydirishdan oldin, siz unga maksimallashtirishi kerak bo'lgan bitta sonni berishingiz kerak edi — maqsad funksiyasini. PnL. Sharpe. Savdo qilingan barlardagi Sharpe. Maksimal pasayishga nisbatan daromad. Siz shulardan birini terdingiz, ehtimol ko'p o'ylamasdan, va keyin qidiruv million baholashni aynan siz so'ragan narsani bajarishga sarfladi.

O'sha bir tanlov formallik emas. Bu — butun qaror. Qidiruv "yaxshi strategiya"ni topmaydi — bunday narsa mavhum ma'noda mavjud emas. U siz tanlagan skalyarni maksimallashtiradigan strategiyani topadi, turli skalyarlar esa bir xil ma'lumotlarda mutlaqo boshqa strategiyalarga ishora qiladi. Maqsad — rul ustidagi yashirin qo'l, va ko'pincha hech kim unga qaramaydi.

Mana butun maqola bitta jadvalda. Bitta chegara qidiruvi, haqiqiy, ma'lum edge'ga ega bitta sintetik bozor, oltita maqsad — va ular tanlagan oltita strategiya, ajratib qo'yilgan ma'lumotlarda o'lchangan:

Maqsad (qidiruv nimani maksimallashtiradi) O'rtacha bozor ekspozitsiyasi In-sample Sharpe Out-of-sample Sharpe Degeneratsiyalangan g'oliblar
Raw PnL 0.859 1.76 1.61 0%
Full-Timeline Sharpe 0.740 1.82 1.71 0%
Per-Trade ("faol") Sharpe 0.286 1.00 0.70 57%
Ekspozitsiya pol chegarasi (emin=0.20e_{\min}=0.20) 0.740 1.82 1.71 0%
Bitimlar soniga asoslangan shrinkage (conf_k=40=40) 0.523 1.54 1.31 20.7%
Mustahkam (chegara + conf_k) 0.675 1.78 1.70 0.2%

600 mustaqil seed, har birida T=2000T = 2000 bar, qidiruv boshiga 80 nomzod chegara, in-sample va out-of-sample mustaqil olingan. Yillik Sharpe (yiliga 252 davr). "Degeneratsiyalangan" = tanlangan g'olib bozorda vaqtning 5%dan kamida bo'lgan, yoki musbat bo'lmagan out-of-sample Sharpe ko'rsatgan. Bu bozorning haqiqiy optimumi — 1.77 yillik out-of-sample Sharpe.

Uchinchi qatorni og'riq sezguncha o'qing. Per-Trade Sharpe — faoliyatga bog'liq metrikalarning butun oilasining vakili (per-trade Sharpe, expectancy, van Tarpning SQN'i, g'alaba tezligi), barchasi faqat savdo qilingan barlarda hisoblangan — out of sample boshqalarning yarmidan yomonroq strategiyani tanlaydi va buni 57% holatda degeneratsiyalangan tarzda qiladi. Bu biroz yomonroq maqsad emas. Bu ma'lumotlarda bu — tuzoq, va qidiruv unga yarmidan ko'proq holatda tushadi. Endi undan yuqoridagi qatorni o'qing: oddiy Full-Timeline Sharpe hech qachon degeneratsiyalanmaydi va out of sample 1.71 ball to'playdi. Bu butun ta'mirlashning yakuni, erta ochib berildi — halol yechim shunchaki butun vaqt o'qi bo'yicha o'lchash; pastki qatorlardagi murakkabroq tuzatishlar, eng yaxshi holatda ham, faqat shu songa tenglashadi, hech qachon undan oshmaydi. Bu maqola — o'sha tuzoq va uning ta'mirlanishining anatomiyasi, asosiy haqiqat butun davomida ma'lum bo'lgani uchun "maqsad to'g'ri strategiyani tanladimi?" degan savol fikr emas, fakt bo'ladi.

1-parda — Yashirin qaror: Goodhart qonuni — bu qidiruv

A parameter search drawn as a funnel of many candidate strategy curves, with a single lens labeled OBJECTIVE stamping one curve as the winner while identical-looking curves are discarded, illustrating that the choice of metric silently selects the strategy

1975-yilda iqtisodchi Charlz Goodhart o'zining boshqa barcha ishlaridan uzoqroq yashagan gapni yozdi:

"Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes."

Ko'pincha Marilin Strathernga tegishli deb hisoblangan mashhur parafraza aniqroq: o'lchov maqsadga aylanganda, u yaxshi o'lchov bo'lishdan to'xtaydi.

Parametr qidiruvi — Goodhart qonunining eng toza mumkin bo'lgan namunasi. Maqsad funksiyasi — o'lchov. Qidiruv — bosim — o'sha o'lchovni imkon qadar yuqoriga surish uchun minglab, millionlab urinishlar. Va qidiruvga siz o'sha o'lchov bilan nimani nazarda tutganingiz mutlaqo befarq. Unga faqat son muhim. Agar sonni kattalashtirishning haqiqiy, savdo qilinadigan edge'ga hech qanday aloqasi bo'lmagan usuli bo'lsa — kamdan-kam savdo qilish, ko'p vaqt tekis turish, bir nechta baxtli chetlanishlarni ushlab olish — qidiruv o'sha usulni topadi, chunki maksimumni topish uning yagona qurilish maqsadidir.

Bu AI-xavfsizlik adabiyoti reward hacking deb ataydigan aynan o'sha xatolik: siz xohlagan narsaning proksisini optimallashtiruvchi agent proksi va maqsad o'rtasidagi har bir bo'shliqni ishlatadi. Sizning qidiruvingiz — o'sha agent. "Sharpe ratio" — o'sha proksi. "Keyingi chorakda haqiqiy pulni ishonib topshira oladigan strategiya" — haqiqiy maqsad. Ular orasidagi tafovut — butun fanning yashaydigan joyi.

O'sha tafovut ochilishini ko'rish uchun bizga haqiqatni bilgan dunyo kerak. Shuning uchun biz uni quramiz.

Bozor. Har bir davrda bashoratchi sts_t (standart normal signal) keladi, undan keyin u qisman bashorat qiladigan daromad rtr_t keladi. Edge haqiqiy, lekin cheklangan — u faqat mo'tadil signal diapazonida st1|s_t| \le 1 mavjud, undan tashqarida yo'qoladi:

rt=βst1[st1]+εt,β=0.3,εtt4 (unit variance).r_t = \beta\, s_t \cdot \mathbf{1}\big[\,|s_t| \le 1\,\big] + \varepsilon_t, \qquad \beta = 0.3, \qquad \varepsilon_t \sim t_{4}\ (\text{unit variance}).

Ikkita loyihalash tanlovi muhim. Birinchidan, edge mo'tadil diapazonda yashaydi: ekstremal signallar hech qanday bashoratli ma'lumot olib yurmaydi, shuning uchun strategiya o'rtani savdo qilib, dumlarni o'tkazib yuborishi kerak. Ikkinchidan, shovqin εt\varepsilon_t yog'li dumli (4 erkinlik darajasiga ega Student-tt, haqiqiy daromadlarda haqiqatan mavjud bo'lgan og'ir dum turi) — lekin bu ingredient bu yerda realizm uchun, mexanizm uchun emas. Yog'li dumlar tuzoqni mumkin qiluvchi narsa deb aytish jozibali, va biz nazoratni o'tkazguncha aynan shunday deb taxmin qildik: bu bozorning gauss shovqinli versiyasi (natijalarda gaussian_control, 300 seed) tuzoqni deyarli o'zgarishsiz takrorlaydi — per-trade maqsadi gauss shovqinida hali ham 55.7% vaqtda degeneratsiyalanadi, yog'li dumlar bilan **57.0%**ga nisbatan, va uning out-of-sample Sharpe'i 0.71, 0.70ga nisbatan. Demak, tuzoq yog'li dumlarga tegishli emas. Bu sof kichik namuna-plyus-tanlov effekti: ~20 past ekspozitsiyali chegaralar orasidan, bir necha kuzatuvda hisoblangan Sharpe'ning maksimumini oling, va qandaydir baxtli burchak har doim ajoyib ko'rinadi. Har qanday shovqin taqsimoti buni qiladi; bozorda faqat bir necha bar bo'lgan strategiya sof omad bilan bir necha qulay harakatlarni bosib o'tib, hech narsani anglatmaydigan in-sample sonni berishi mumkin. Biz yog'li dumlarni saqlaymiz, chunki haqiqiy daromadlarda ular bor, tuzoqqa ular kerak bo'lgani uchun emas.

Strategiya. Bir parametrli oila. Signal yo'nalishida savdo qiling, uning kattaligi chegara θ\thetadan past bo'lganda, aks holda tekis turing:

post=sign(st)1[stθ].\text{pos}_t = \operatorname{sign}(s_t)\cdot \mathbf{1}\big[\,|s_t| \le \theta\,\big].

Juda kichik θ\theta faqat eng kichik, eng sezilmaydigan signallarda savdo qiladi — kamdan-kam bitimli lotereya, bozorda deyarli hech qachon yo'q. Diapazon chetiga yaqin θ\theta butun haqiqiy edge'ni ushlaydi va yaxshi ekspozitsiyalangan. Juda katta θ\theta hamma narsani savdo qiladi, hech qanday edge'ga ega bo'lmagan, faqat shovqin qo'shadigan diapazondan tashqari barlarni ham qo'shib.

def gen_dataset(T, rng, beta=0.30, band=1.0, tail_df=4):
    s    = rng.standard_normal(T)
    edge = beta * np.where(np.abs(s) <= band, s, 0.0)          # edge ONLY inside |s| <= 1
    t    = rng.standard_t(tail_df, T) / np.sqrt(tail_df / (tail_df - 2.0))  # fat tails, unit var
    return s, edge + t

def simulate(s, r, theta):
    pos      = np.where(np.abs(s) <= theta, np.sign(s), 0.0)   # trade the band, skip outliers
    strat    = pos * r
    active   = pos != 0.0
    exposure = active.mean()                                   # fraction of bars in a position
    sharpe_full   = strat.mean()         / strat.std(ddof=1)            # on the WHOLE timeline
    sharpe_active = strat[active].mean() / strat[active].std(ddof=1)    # on ONLY the active bars
    return dict(exposure=exposure, n_trades=int(active.sum()),
                sharpe_full=sharpe_full, sharpe_active=sharpe_active, pnl=strat.sum())

Bozorni o'zimiz qurganimiz uchun, haqiqatni to'g'ridan-to'g'ri hisoblay olamiz — 600 seed bo'yicha har bir chegarada o'rtacha samaradorlik, out of sample. Haqiqiy optimum θ1.04\theta \approx 1.04 da joylashgan: aynan signal diapazoni chetida, bozorda vaqtning taxminan **70%**ida (chiqarilgan: standart normal signal s1.04|s|\le 1.04 ichiga P(s1.04)=0.70P(|s|\le 1.04)=0.70 ehtimollik bilan tushadi), yillik out-of-sample Sharpe 1.77 beradi. Bu — har bir maqsad topishga harakat qilayotgan son. Uni esda tuting: θ≈1.04, OOS Sharpe 1.77, vaqt o'qining taxminan 70%i bozorda. Maqsad bundan uzoq tanlagan har qanday narsa — maqsadning muvaffaqiyatsizligi, bozorning qiyinligi emas.

2-parda — Tuzoq: sakkizta omadli bitim, 21ga teng Sharpe, sarob

A slot machine paying out on a single lucky spin, showing eight trade tickets and a towering in-sample per-trade Sharpe of 21 that collapses to 0.13 out of sample, dramatizing a rare-trade lottery winner selected by a naive objective

Endi bu bozorning aniq tortilishiga sodda maqsadni bo'shatib qo'yamiz — seed 6. Seed haqida to'liq ochiqlik: u birinchi tortilish ham, tasodifiy ham emas edi. Biz aniq degeneratsiyalangan per-trade g'olibni izlab, seed'larni skanerladik va aynan shuni tanladik, mexanizm e'tibordan chetda qolmasligi uchun. Uning ko'rsatadigan natijasi to'liq odatiy — 3-parda tasdiqlaganidek, per-trade maqsadi barcha seed'larning 56%ida 5%dan past ekspozitsiyaga ega lotereyani tanlaydi — lekin seed 6ning kattaligi o'sha taqsimotning ekstremal chetida turadi. Uni keng tarqalgan muvaffaqiyatsizlikning ayniqsa yorqin namunasi sifatida o'qing, o'rtacha sifatida emas. Biz Per-Trade Sharpeni optimallashtiramiz: strategiya haqiqatan pozitsiyada bo'lgan barlarda gina hisoblangan Sharpe koeffitsienti. Buni xabar qilish juda tabiiy narsa. "Savdo qilganda, uning bitimlari qanchalik yaxshi?" Bu ko'nikmani faolsizlikdan ajratayotgandek tuyuladi. U aksincha qiladi.

Mana Per-Trade Sharpe seed 6da toj kiydiradigan strategiya:

  • Chegara θ=0.005\theta = 0.005 — u faqat eng kichik signallarda savdo qiladi.
  • Bozor ekspozitsiyasi 0.4% — vaqtning 99.6%ida tekis.
  • Sakkizta bitim. Sakkizta. 2000 bar ichida.
  • In-sample per-trade yillik Sharpe: 21.09.
  • In-sample full-timeline Sharpe: 0.82.
  • Out-of-sample full-timeline Sharpe: 0.13.

Per-trade metrikasi 21.09 ko'rsatadi — hech qanday haqiqiy strategiya hech qachon ko'rsatmagan son, fondni ishga tushiradigan ko'rsatkich. Va bu to'liq sarob. O'sha sakkizta bitim tasodifan bir necha qulay harakatlarni ushlab oldi; faqat o'sha sakkizta bar bo'yicha o'lchaganda, o'rtacha va standart og'ish nisbati astronomik. Lekin butun vaqt o'qida — strategiya vaqtning 99.6%ida tekis yotganda — o'sha "edge" deyarli hech narsa qo'shmaydi: in-sample'da 0.82 full-timeline Sharpe, yangi ma'lumotlarda 0.13gacha qulaydi. Maqsad tanlagan g'olib, barcha savdo maqsadlari uchun, tekis.

Va bu o'sha chegarada haqiqiy edge ham emas. Bozorni eslang: edge s1|s|\le 1 diapazonida yashaydi, va θ=0.005\theta = 0.005 aynan o'rtada, signal eng zaif joyda turadi. θ=0.005\theta = 0.005dagi haqiqiy out-of-sample egri chizig'i −0.01 — noldan farqlanmaydi (asosiy haqiqat egri chizig'idan chiqarilgan). Qidiruv kichik haqiqiy edge topmadi. U shovqinning sakkizta omadli tortilishini topdi va ularni 21ga teng Sharpe sifatida xabar qildi.

Bu kichik tuzoq: Per-Trade Sharpe strategiyani imkon qadar kamdan-kam savdo qilgani uchun mukofotlaydi, chunki qancha kam barda tursangiz, ularning bir nechtasining omadli bo'lishi shuncha oson, va metrika hech qachon "lekin siz haqiqatan bozorda edingizmi?" deb so'ramaydi. Seed 6ning kattaligi tanlab olingan — biz atayin yorqinini izladik — lekin uning turi undaymas. Barcha 600 seed bo'yicha Per-Trade Sharpe **57%**ida degeneratsiyalangan g'olibni tanlaydi (kam savdo qiladigan yoki out of sample yutqazadigan), aniqrog'i **56%**ida 5%dan past ekspozitsiyaga ega lotereyani. Odatiy degeneratsiyalangan tanlov seed 6ning 21ga teng Sharpe'idan ancha yumshoqroq: barcha 600 seed bo'yicha o'rtacha olganda, per-trade maqsadining g'olibida in-sample per-trade Sharpe 4.58 va o'rtacha ekspozitsiya 0.286 bor — hali ham ko'p vaqt tekis, faqat 99.6% tekis emas. Seed 6 mexanizmni dramatizatsiya qiladi; 56% sizni tashvishlantirishi kerak bo'lgan qism. Yarmidan ko'proq holatda, bu kundalik metrika sizga lotereya chiptasini berib, uni strategiya deb ataydi.

3-parda — Statistik haqiqat: oltita maqsad, 600 seed

Six objective functions as contestants on a leaderboard, the per-trade Sharpe glowing brightest in sample but stamped degenerate 57 percent while the exposure-aware objectives hold steady out of sample, illustrating that a great in-sample number does not mean a good selection

Bitta seed hech narsani isbotlamaydi; u faqat ko'rsatadi. Maqsadni o'lchash uchun biz uning o'rtacha nimani tanlashini, ko'plab mustaqil bozorlar bo'yicha so'rashimiz va o'sha tanlovni qidiruv hech qachon ko'rmagan ma'lumotlarda baholashimiz kerak. Shunday qilib: 600 seed, har biri bozorning mustaqil tortilishi; har birida, har bir maqsad ostida 80-chegara qidiruvini bajaramiz; ekspozitsiyani, tanlangan narsaning in-sample va out-of-sample Sharpe'ini, o'sha tanlov degeneratsiyalangan yoki yo'qligini yozib olamiz.

Maqsad O'rtacha ekspozitsiya In-sample Sharpe Out-of-sample Sharpe IS→OOS tushish (abs.) Degeneratsiyalangan
Raw PnL 0.859 1.76 1.61 0.15 0.0%
Full-Timeline Sharpe 0.740 1.82 1.71 0.11 0.0%
Per-Trade Sharpe 0.286 1.00 0.70 0.30 57%
Ekspozitsiya pol chegarasi (emin=0.20e_{\min}=0.20) 0.740 1.82 1.71 0.11 0.0%
conf_k shrinkage (k=40k=40) 0.523 1.54 1.31 0.23 20.7%
Mustahkam (chegara + conf_k) 0.675 1.78 1.70 0.08 0.2%

"IS→OOS tushish" ustuni — yillik Sharpe'ning in-sample'dan out-of-sample'gacha bo'lgan mutlaq pasayishi (masalan, 1.000.701.00\to0.70 0.30 pasayish), foiz emas. Va "Ekspozitsiya pol chegarasi" qatori "Full-Timeline Sharpe" bilan bayt-ba-bayt bir xil ekaniga e'tibor bering: bu tasodif emas, 5-parda buning sababini tushuntiradi.

Uchta fakt darhol ko'zga tashlanadi, va har biri saboq.

Per-Trade Sharpe — degeneratsiyalanadigan yagona sodda maqsad. Uning o'rtacha ekspozitsiyasi 0.286 — u ko'p vaqt tekis turadigan strategiyalarni tanlaydi — va uning in-sample Sharpe'i 1.00 0.30ga tushib, out-of-sample 0.70ga yetadi, sohadagi eng yomoni. Belgiga e'tibor bering: uning in-sample soni (1.00) hatto ta'sirli ham emas, lekin har qanday individual seed'da u 21ga teng per-trade ko'rsatkichni xursandchilik bilan xabar qiladi. O'rtacha qiymat yo'qoladi, chunki omadli oynalar tasodifiy yo'nalishlarga ishora qiladi; out-of-sample'gacha qolgan narsa faqat 0.70, va individual tanlovlarning 57%i to'liq yaroqsiz.

Ekspozitsiyani hisobga oladigan maqsadlar tabiiy ravishda xavfsiz. Raw PnL va Full-Timeline Sharpe hech qachon degeneratsiyalanmaydi (0.0%). Sabab strukturaviy: ikkalasi ham butun vaqt o'qi bo'yicha o'lchanadi, shuning uchun vaqtning 99.6%ida tekis turadigan strategiya ular ostida deyarli hech narsa topmaydi. To'liq vaqt o'qi metrikasini kamdan-kam savdo qilish orqali aldab bo'lmaydi — tekis turish to'g'ridan-to'g'ri va avtomatik ravishda jazolanadi, chunki tekis barlar maxrajda turadi. Bu maqolaning eng muhim g'oyasi, va biz 6-pardada unga qaytamiz.

Raw PnL xavfsiz, lekin optimal emas — u ortiqcha ekspozitsiyalaydi. Diqqat bilan qarang: Raw PnL'ning o'rtacha ekspozitsiyasi 0.859, barchasining ichida eng yuqorisi, va uning out-of-sample Sharpe'i (1.61) full-timeline Sharpe'dan (1.71) va haqiqiy optimumdan (1.77) bir daraja past. PnL bozorda bo'lishni mukofotlaydi, shuning uchun qidiruv θ\thetani juda yuqori suradi (seed 6da, raw PnL optimal 1.04 o'rniga θ=1.84\theta=1.84 tanlaydi), bu hech qanday edge'ga ega bo'lmagan, faqat shovqin qo'shadigan diapazondan tashqari barlarni tortadi. U portlamaydi — lekin per-trade tuzog'iga qarama-qarshi yo'nalishda haqiqiy optimumdan oshib ketadi. Boshqa maqsad, boshqa noto'g'rilik, bir xil saboq: metrika strategiyani tanladi.

Biz hali muhokama qilmagan ikkita qator — ekspozitsiya pol chegarasi va conf_k — ta'mirlash hisoblanadi. Bu keyingi parda.

4-parda — Nima uchun sakkizta bitimga hech qachon ishonib bo'lmaydi

A single Sharpe point estimate marked with an enormous confidence-interval error bar because it rests on only eight observations, beside a ruler labeled minimum track record length, illustrating that a ratio measured on a handful of trades is statistically meaningless

Tuzoqni ta'mirlashdan oldin, sakkizta bitim nima uchun hech narsani anglatmaydigan 21ga teng Sharpe ishlab chiqarishini aniq tushunish muhim — chunki yechim to'g'ridan-to'g'ri shu sababdan kelib chiqadi.

Sharpe koeffitsienti — baho, va baholarning xato chegaralari bor. Endryu Loning 2002-yilgi natijasi TT kuzatuvdan baholangan Sharpe koeffitsientining standart xatosini eng saxiy mumkin bo'lgan taxmin ostida beradi (IID gauss daromadlari):

SE(SR^)1+SR^2/2T.\operatorname{SE}\big(\widehat{SR}\big) \approx \sqrt{\frac{1 + \widehat{SR}^{\,2}/2}{T}}.

Xato faqat 1/T1/\sqrt{T} bo'yicha kamayadi. Buni tuzoqqa qo'llaymiz. Seed 6dagi per-trade Sharpe yillik 21.0921.09, bu kuzatuv boshiga 1.331.33, T=8T = 8 bar bo'yicha hisoblangan. Standart xato

SE1+1.332/280.49 kuzatuv boshiga = 7.7 yillik\operatorname{SE} \approx \sqrt{\frac{1 + 1.33^2/2}{8}} \approx 0.49 \ \text{kuzatuv boshiga} \ = \ \textbf{7.7 yillik}

(Lo formulasidan chiqarilgan). Nuqta bahosi — 21.0921.09; uning bir-sigma xato chegarasi taxminan ±7.7\pm 7.7 — buni illyustrativ tartib sifatida o'qing, kalibrlangan ishonch oralig'i sifatida emas, chunki formula bizning yog'li dumli t4t_4 shovqinimiz buzadigan IID gauss daromadlarini taxmin qiladi. Shunga qaramay, xabar aniq: "21ga teng Sharpe" — deyarli hech qanday ma'lumot olib yurmaydigan shu qadar keng taqsimotdan olingan son — va bu saxiy hisob-kitob, chunki Mertens kengaytmasi yog'li dumlar va qiyshiqlik standart xatoni yanada shishirishini ko'rsatadi. Kamdan-kam bitimli bektestning Sharpe'i uning nuqta qiymatidan barcha yo'nalishda bir vaqtda ishonchsizroq: juda kam kuzatuv, va noto'g'ri taqsimot.

Bu aynan Minimum Track Record Length rasmiylashtirgan narsa (Bailey & López de Prado, 2012). U savolni teskari qiladi — pp ishonch bilan shu o'lchamdagi Sharpe'ga ishonish uchun menga qancha kuzatuv kerak?

MinTRL=1+[1γ^3SR^+γ^414SR^2](Z1pSR^SR)2,\text{MinTRL} = 1 + \Big[\,1 - \hat\gamma_3\,\widehat{SR} + \tfrac{\hat\gamma_4 - 1}{4}\,\widehat{SR}^{\,2}\,\Big]\left(\frac{Z_{1-p}}{\widehat{SR} - SR^*}\right)^{2},

"kam bitimli bektestlarga kamroq ishoning" degan g'oyani bitimlarning aniq, tekshiriladigan soniga aylantiradi. Maqsad loyihalash uchun chuqur nuqta shu: yaxshi maqsad ichkaridan minimal track record'ni talab qilishi kerak, insonga g'olib sakkizta kuzatuvda turganini keyin payqashiga ruxsat bermasdan. Per-Trade Sharpe aksincha qiladi — u kuzatuv sonini minimumga surish orqali maksimallashadi. Optimumi "imkon qadar kam bitim"da bo'lgan har qanday maqsad, qurilishi bo'yicha, o'zining eng ishonchsiz bahosini izlaydigan maqsaddir.

Tuzoqda ikkita muvaffaqiyatsizlik birlashadi, ikkalasini ham nomlash bizga uni qanday tuzatishni aytadi. Birinchidan, kichik namuna shovqini: sakkizta kuzatuv hech qanday nisbatni mahkamlay olmaydi. Ikkinchidan, tanlov: o'sha sakkizta bar bizga berilmagan — qidiruv ularga tushgan chegarani tanladi, qisman ular omadli bo'lgani uchun. Qidiruv — maksimallashtiruvchi; u har doim shovqin tasodifan signalga o'xshab ko'rinadigan makon burchagini topadi. Buni yaxshiroq nuqta bahosi bilan chetlab o'tib bo'lmaydi. "Eng yaxshi" degan narsaning ma'nosini o'zgartirish kerak, omadli burchak maksimum bo'lmasligi uchun.

5-parda — Ta'mirlash: ekspozitsiya pol chegarasi va bitimlar soniga asoslangan shrinkage

A control panel with two knobs labeled exposure floor and conf_k shrinkage, both lifting an out-of-sample performance surface up onto a high flat plateau while a degeneracy indicator goes dark, illustrating two independent fixes that together recover the true optimum

Bizda ikkita nomlangan kasallik bor — juda kamdan-kam savdo qiladi va juda kam kuzatuvda turadi — shuning uchun biz ikkita davo yozamiz, har birini bittasiga qaratib.

1-davo: ekspozitsiya pol chegarasi. Eng sodda mumkin bo'lgan yechim. Bozorda kamida emine_{\min} vaqt bo'lmagan har qanday strategiyani to'g'ridan-to'g'ri rad eting — agar u kamdan-kam savdo qilsa, uning bali -\infty bo'ladi va qidiruv uni tanlay olmaydi. Lekin nima chegaralanishida halol nuance bor, va bu butun ushbu maqolaning jim saboqi. Mustaqil maqsad sifatida biz Full-Timeline Sharpe'ni chegaraladik, va bu bozorda bu mutlaqo hech narsani o'zgartirmaydi: Full-Timeline Sharpe'ning o'z g'olibi allaqachon ~74% ekspozitsiyada, shuning uchun 20% chegara hech qachon ishlamaydi. Aynan shuning uchun yuqoridagi jadvallarda "ekspozitsiya pol chegarasi" va "Full-Timeline Sharpe" qatorlari bayt-ba-bayt bir xil — allaqachon xavfsiz metrikaga chegara o'rnatish shunchaki to'liq Sharpe'ni qayta chiqaradi. Chegara faqat boshqacha burchakka yugurib ketadigan metrikani himoya qilganda ko'rinadigan ish qiladi: per-trade metrikasi, quyidagi mustahkam maqsaddagidek. Boshqacha aytganda, "ekspozitsiyani talab qilish" va "butun vaqt o'qi bo'yicha o'lchash" bu ma'lumotlarda bitta aralashuvning ikki nomi.

2-davo: bitimlar soniga asoslangan shrinkage — "conf_k". Per-trade metrikasi bilan qolgan va qattiq kesish o'rniga yumshoq tuzatish xohlagan hollar uchun: Sharpe'ni u qancha bitimga tayanishiga qarab doimiy ravishda chegirmalang. n/(n+k)n/(n+k)ga ko'paytiring, bu yerda nn — bitimlar soni, kk esa doimiy "ishonch konstantasi" — qidiruvdan oldin tanlangan bitimga teng prior kuchi:

score(θ)=SR^(θ)n(θ)n(θ)+k.\text{score}(\theta) = \widehat{SR}(\theta)\cdot \frac{n(\theta)}{n(\theta) + k}.

n0n \to 0 bo'lganda, ball, xom Sharpe qanchalik katta bo'lmasin, nolga qarab siqiladi; nn \to \infty bo'lganda ball xom Sharpe'ga yaqinlashadi. Bu MinTRL va 4-pardaning standart xatosi bilan bir xil tuzatuvchi mantiq — kichik namuna bahosini uning namuna hajmining kamayuvchi funksiyasi sifatida nolga qarab qisqartirish — post-hoc filtr sifatida qo'llash o'rniga to'g'ridan-to'g'ri maqsadga joylashtirilgan. Eng yaqin nomlangan prezedent — van Tarpning System Quality Numberi (SQN=Ntrade/σtrade\text{SQN} = \sqrt{N}\cdot \overline{\text{trade}}/\sigma_{\text{trade}}), u ham per-trade sifat metrikasini bitimlar soni NN ga qarab masshtablaydi — garchi funksional shakl farqli bo'lsa ham (N\sqrt{N} cheksiz o'sadi, n/(n+k)n/(n+k) esa 1da to'yinadi). Shakli bo'yicha bizniki bayes aniqlik bilan tortilgan / empirik-bayes uslubidagi shrinkage; bu ushbu muammo uchun bizning qurilishimiz, adabiyotdan olingan nomlangan baholovchi emas.

def obj_active_sharpe(m):                  # the trap: Sharpe on only the active bars
    return m["sharpe_active"]

def _shrink(n, conf_k):                     # trade-count shrinkage n / (n + k)
    return n / (n + conf_k) if (n + conf_k) > 0 else 0.0

def obj_confk(m, conf_k=40.0):              # few trades -> little credit
    return m["sharpe_active"] * _shrink(m["n_trades"], conf_k)

def obj_robust(m, e_min=0.20, conf_k=40.0): # both cures at once
    if m["exposure"] < e_min:               # floor: reject strategies that barely trade
        return -np.inf
    return m["sharpe_active"] * _shrink(m["n_trades"], conf_k)

Endi halol qism: qancha chegara, qancha shrinkage? Ikkalasini ham skanerlab, butun yuzani o'qing. Har bir katak 600ning uchdan bir qismi bo'lgan 200 seed bo'yicha o'rtacha out-of-sample Sharpe (ikki o'lchovli skanerlashni arzon saqlash uchun), yonida degeneratsiya darajasi bilan:

emine_{\min} \ conf_k k=0k=0 k=40k=40 k=80k=80
0.00 0.66 (59.5%) 1.26 (22.5%) 1.47 (11.5%)
0.05 1.43 (10.0%) 1.53 (6.0%) 1.60 (4.0%)
0.10 1.64 (1.5%) 1.65 (1.0%) 1.67 (1.0%)
0.20 1.71 (0.0%) 1.71 (0.0%) 1.71 (0.0%)
0.35 1.73 (0.0%) 1.73 (0.0%) 1.73 (0.0%)

O'rtacha yillik out-of-sample Sharpe, qavs ichida degeneratsiya darajasi. Yuqori chap (0,0)(0,0) katak — xom per-trade Sharpe — chegarasiz, shrinkage'siz: OOS 0.66, degeneratsiyalangan 59.5%. Bu 3-pardaning per-trade qatori bilan bir xil maqsad, u 0.70 / 57% o'qigan; kichik farq to'liq seed to'plamidan: bu skanerlash 200 seed ishlatadi, Monte-Karlo barcha 600ni ishlatgan. Bir xil metrika, kichikroq namuna.

Yuza uch o'qishda tiniq hikoya aytadi.

Har bir davo yolg'iz ishlaydi. Yuqori qator bo'ylab o'ngga siljing (shrinkage qo'shish, chegarasiz): OOS 0.661.261.470.66 \to 1.26 \to 1.47ga ko'tariladi va degeneratsiya 59.5%22.5%11.5%59.5\% \to 22.5\% \to 11.5\%ga tushadi. Chap ustunda pastga siljing (chegara qo'shish, shrinkage'siz): OOS 0.661.431.641.710.66 \to 1.43 \to 1.64 \to 1.71ga ko'tariladi va degeneratsiya 59.5%10%1.5%0%59.5\% \to 10\% \to 1.5\% \to 0\%ga tushadi. Har qanday tugma, yolg'iz burilganda, out-of-sample samaradorlikni mustaqil ravishda ko'taradi va degeneratsiyani yo'q qiladi. Ekspozitsiya pol chegarasi bu yerda kuchliroq yolg'iz richag, chunki u tuzoqning belgilovchi xususiyatiga — nolga yaqin ekspozitsiyaga — to'g'ridan-to'g'ri hujum qiladi.

Birgalikda ular platoga yetadi — va plato aynan Full-Timeline Sharpe. emin=0.20e_{\min} = 0.20da qator barcha shrinkage darajasida OOS 1.71da, 0% degeneratsiya bilan tekis; emin=0.35e_{\min}=0.35gacha itarilganda 1.73gacha ko'tariladi. Lekin o'sha 1.71 nima ekaniga diqqat bilan qarang: bu oddiy Full-Timeline Sharpe 3-pardada chegarasiz va hech qanday shrinkage'siz ko'rsatgan aynan o'sha ball. Eng yaxshi holatda, tuzatishlar Full-Timeline Sharpe'dan oshmaydi — ular uni qayta quradi. Va to'liq tuzatilgan mustahkam maqsad hatto to'liq yetib bormaydi: barcha 600 seed bo'yicha u OOS 1.70ga 0.17% qoldiq degeneratsiya bilan tushadi, to'liq Sharpe'ning 1.71 / 0%idan bir tuk past — u sodadaroq metrika tomonidan zaif ustunlik qilinadi. O'rtacha oraliq sozlama, emin=0.10e_{\min}=0.10 va k=40k=40 bilan, OOS 1.65ga 1% degeneratsiya bilan yetadi — per-trade metrikasi majburiy berilsa foydali, lekin uni afzal ko'rish uchun hech qachon sabab emas.

Aniq raqamlar masshtabga bog'liq — shakl natijadir. Bu bozorni to'liq tuzatuvchi aniq qiymatlar emin=0.20e_{\min}=0.20, k=40k=40 shu ma'lumot yaratish jarayoniga moslashtirilgan; boshqa savdo chastotasi va dum qalinligiga ega boshqa bozorda plato boshqa joyda turadi. Umumlashadigan narsa koordinatalar emas, yuza: ikkala yo'nalishda ham monoton ko'tarilish, degeneratsiya nolga qarab yuritilgan, haqiqatdagi plato. Siz yuqoridagidek skanerlash orqali o'z koordinatalaringizni topasiz.

Ikkala davoni birga qo'ying — mustahkam maqsad, chegara 0.20 plyus conf_k 40 — va seed 6ga qaytamiz. Tuzoq θ=0.005\theta = 0.005, sakkizta bitim, 0.13ning full-timeline OOS Sharpe'ini toj kiydirgan edi. Mustahkam maqsad esa θ=0.979\theta = 0.979ni tanlaydi: bozor ekspozitsiyasi 0.66, 447 bitim, yillik out-of-sample Sharpe 1.77. O'sha θ=0.979\theta = 0.979 haqiqiy optimum θ=1.04\theta = 1.04dan bitta panjara nuqtasiga past, shuning uchun u aynan markazga tegish o'rniga optimalga yaqin, yaxshi ekspozitsiyalangan chegarani tiklaydi — uning yagona seed'dagi out-of-sample Sharpe'i (1.77) tasodifan populyatsiya optimumi bilan mos keladi. Bir xil ma'lumotlar, bir xil qidiruv, bir xil 80 nomzod chegara. Faqat "eng yaxshi"ning ta'rifi o'zgardi, va bu g'olibni tekis sakkizta bitimli sarobdan haqiqiy, yaxshi ekspozitsiyalangan edge'ga surdi — bu, qiziqarlisi, shu seed'da oddiy Full-Timeline Sharpe tanlagan aynan o'sha chegara.

Skanerlash aniq ko'rsatadigan ogohlantirish: bu bozorda conf_k yolg'iz yetarli emas. Chegarasiz k=40k=40da, degeneratsiya seed'lar bo'yicha hali ham 22.5%da — va aynan seed 6da, conf_k yolg'iz θ=0.015\theta = 0.015ni tanlaydi, 35 bitim, out-of-sample Sharpe −0.06. O'ttiz beshta bitim 35/(35+40)0.4735/(35+40) \approx 0.47 shrinkage'dan g'alaba qozonish uchun yetarli qolgan ball bilan omon qoladi. Ekspozitsiya pol chegarasi o'sha oxirgi bo'shliqni yopadigan narsa, chunki u tuzoqning haqiqiy imzosiga — tekis turishga — to'g'ridan-to'g'ri nishon oladi, bitimlar sonini uning proksisi sifatida ishonish o'rniga.

6-parda — Chuqurroq saboq: butun vaqt o'qi bo'yicha o'lchash

Two ways of scoring the same strategy contrasted: a narrow spotlight illuminating only the few bars a strategy traded versus a floodlight measuring the entire timeline including the flat stretches, illustrating that exposure-aware objectives cannot be gamed by rare lucky trades

Ta'mirlashdan bir qadam orqaga chekining va xavfsiz maqsadlarni tuzoqdan haqiqatan nima ajratganiga e'tibor bering. Bu murakkablik emas edi. Raw PnL va Full-Timeline Sharpe Per-Trade Sharpe'dan soddaroq, va ular hech qachon degeneratsiyalanmagan — 600 seed bo'yicha 0% — chegarasiz, shrinkage'siz, hech qanday sozlashsiz.

Bo'linish chizig'i bitta xususiyat: metrika qaysi oynani o'lchaydi? Per-Trade Sharpe faqat strategiya turishni tanlagan barlarni o'lchaydi — qidiruv xohlagancha qisqartira oladigan o'zi tanlagan oyna. Full-Timeline Sharpe va umumiy PnL butun vaqt o'qini, tekis barlar bilan birga o'lchaydi. Va siz to'liq vaqt o'qi metrikasini kamdan-kam savdo qilish orqali hech qachon kattalashtira olmaysiz, chunki tekis turgan har bir soat — hech narsa topmaydigan maxrajdagi soatdir. Ekspozitsiya pol chegarasi va conf_k, oxir-oqibat, per-trade metrikasini to'liq vaqt o'qi metrikalari bepul olgan ekspozitsiya ongi bilan tuzatish usullaridir — va skanerlash bizga o'sha tuzatishning shifti nima ekanini allaqachon aytgan: eng yaxshi holatda u Full-Timeline Sharpe bilan tenglashadi (OOS 1.70 ga qarshi 1.71), hech qachon undan oshmaydi. Agar siz oynani tanlashda erkin bo'lsangiz, butun vaqt o'qini tanlang va tuzatishni butunlay o'tkazib yuboring.

Shunday qilib loyihalash tamoyili, aniq ifodalangan:

Maqsadni kamdan-kam omadli bitimlar bilan aldab bo'lmaydigan qilib loyihalang. Sizda taxminiy afzallik tartibida uchta vosita bor:

  1. Butun vaqt o'qi bo'yicha o'lchang. Deyarli hech qachon chetga chiqmasligi kerak bo'lgan standart. Full-Timeline Sharpe va umumiy daromad qurilishi bo'yicha ekspozitsiya ongiga ega — faolsizlik avtomatik ravishda jazolanadi, chunki tekis barlar hisoblanadi. Agar o'zingizni "faqat biz faol bo'lgan barlarda" hisoblangan metrikani xabar qilayotganingizni sezsangiz, to'xtang va qidiruv o'sha barlarni tanlash erkinligi bilan nima qilishini so'rang.
  2. Ekspozitsiyani talab qiling. Agar sizga faoliyatga bog'liq metrikadan foydalanish kerak bo'lsa, ekspozitsiyani chegaralang, shunda qidiruv kamdan-kam savdo qiladigan strategiyani tanlay olmaydi. Bu ushbu aniq tuzoqqa qarshi eng kuchli yolg'iz richag.
  3. Bitimlar soniga qarab qisqartiring. Har qanday nisbatni n/(n+k)n/(n+k)ga chegirmalang, shunda bir necha kuzatuvda turgan Sharpe minglab kuzatuvda turadigan Sharpe'ning kreditining faqat bir qismini topadi. Bu Minimum Track Record Length'ning maqsad darajasidagi bajarilishi: kam kuzatuvdan olingan son ishonchsiz (4-parda), shuning uchun halol maqsad o'sha ishonchsizlikni insonga keyin payqashiga ishonish o'rniga oldindan bahoga kiritadi.

Bularning hech biri qidiruvni aqlliroq qilmaydi. Bu maqsadni halol qiladi, shunda qidiruv har doim qiladigan narsani aynan qilganda — maksimumni topganda — o'sha maksimum siz haqiqatan xohlaydigan strategiya bo'ladi.

Halollik eslatmalari

Uchta ogohlantirish, aniq ifodalangan, chunki nazorat qilinadigan tadqiqot o'z xulosalarini faqat chegaralarini nomlaganida munosib bo'ladi.

  • Bozor sintetik, va atayin. Standart normal signal, s1|s|\le 1 bilan chegaralangan chiziqli edge, yog'li dumli Student-tt(44) shovqini — nazorat qilinadigan asosiy haqiqat uchun tanlangan, bozor realizmi uchun emas. Biz maqsad noto'g'ri strategiyani tanlashini faqat uni qaysi strategiya to'g'ri ekanini bilgan ma'lumotlarda ishga tushirish orqali isbotlay olamiz. Haqiqiy bozorlar statsionar emas, avtokorrelyatsiyalangan va rejim almashtiruvchi. Yog'li dumlar biz saqlagan realistik ingredient, lekin — tabiiy birinchi taxminga qarama-qarshi, va aynan shu maqolaning avvalgi loyihasiga qarama-qarshi — ular tuzoqni quvvatlantiruvchi narsa emas: gauss shovqinli nazorat (300 seed) bu yerdagi **57.0%**ga nisbatan 55.7% vaqtda degeneratsiyalanadi, out-of-sample Sharpe 0.71ga nisbatan 0.70 bilan. Tuzoq og'ir dumlar bilan yoki ularsiz omon qoladigan kichik namuna-plyus-tanlov artefaktidir. Yetkazib beriladigan mahsulot — diagnoz va ta'mirlash naqshi, strategiya yoki universal konstanta emas.
  • Ta'mirlash qiymatlari masshtabga bog'liq. Tuzoqni to'liq yopadigan aniq chegara emin=0.20e_{\min}=0.20 va shrinkage k=40k=40 shu ma'lumot yaratish jarayoniga — uning savdo chastotasiga, dum qalinligiga, edge o'lchamiga — moslashtirilgan. Boshqa ma'lumotlarda plato siljiydi. O'tkaziladigan narsa — skanerlash yuzasining shakli (ikkala tugmada ham monoton ko'tarilish, degeneratsiya nolga, haqiqatdagi plato) va o'z koordinatalaringizni topish usuli: ikkalasini ham skanerlab, yuzani o'qing, raqamlarni ko'chirmang.
  • conf_k bizning qurilishimiz, nomlangan baholovchi emas. Bitimlar soniga asoslangan shrinkage SR^n/(n+k)\widehat{SR}\cdot n/(n+k) — biz ushbu muammo uchun qurgan bayes aniqlik bilan tortilgan / empirik-bayes uslubidagi qurilma; uning asoslanishi tekshirilgan Lo/Mertens standart xato natijasiga va Bailey–López de Prado MinTRL'iga tayanadi, va uning eng yaqin nomlangan qarindoshi van Tarpning System Quality Number'i (Ntrade/σtrade\sqrt{N}\cdot \overline{\text{trade}}/\sigma_{\text{trade}}, boshqa funksional shakl), lekin biz n/(n+k)n/(n+k)ning o'zi adabiyotda bir nom ostida paydo bo'ladi deb da'vo qilmaymiz. Uning hamrohi davolari — ekspozitsiya pol chegarasi, to'liq vaqt o'qida o'lchash — aniq ifodalangan standart amaliyot. Va bu yerda qaysi maqsadlar allaqachon xavfsiz bo'lganiga e'tibor bering: Raw PnL va Full-Timeline Sharpe hech qachon ta'mirlashga muhtoj bo'lmagan, chunki ular boshidanoq ekspozitsiya ongiga ega — shu qadarki, Full-Timeline Sharpe'ni chegaralash shunchaki Full-Timeline Sharpe'ga qaytadi, uning g'olibi allaqachon har qanday oqilona chegaradan oshadi. Tuzoq aniq Per-Trade / faol Sharpe — va hatto to'liq tuzatilgan per-trade maqsad ham faqat Full-Timeline Sharpe bilan tenglashadi (OOS 1.70 ga qarshi 1.71), hech qachon undan oshmaydi. Asosiy saboq ta'mirlash emas; bu boshidanoq butun vaqt o'qi bo'yicha o'lchash.

Asosiy xulosalar

  1. Maqsad — qaror, formallik emas. Qidiruv "yaxshi strategiya"ni topmaydi — u siz bergan har qanday skalyarning maksimallashtiruvchisini topadi, va turli skalyarlar bir xil ma'lumotlarda mutlaqo boshqa strategiyalarni tanlaydi. Maqsadni tanlash — strategiyani tanlash demakdir; oqim bo'ylab qolgan hamma narsa faqat hisob-kitob. Bu — Goodhart qonuni: sizning metrikangiz qidiruvning maqsadiga aylangan zahoti, qidiruv uning va siz nazarda tutgan narsa o'rtasidagi har bir bo'shliqni ishlatadi.
  2. Per-Trade Sharpe — tuzoq. Faqat strategiya savdo qiladigan barlarda o'lchangan, u imkon qadar kamdan-kam savdo qilish orqali maksimallashadi — kuzatuv qancha kam bo'lsa, bir necha omadli harakatning nisbatni shishirishi shuncha oson (gauss nazorati yog'li dumlar kerak emasligini tasdiqlaydi; bu kichik namuna-plyus-tanlov effekti). 600 seed bo'yicha u ularning **56%**ida 5%dan past ekspozitsiyaga ega lotereyani tanlaydi va **57%**da degeneratsiyalanadi; odatiy degeneratsiyalangan tanlov o'rtacha 4.58 in-sample per-trade Sharpe'ni beradi. Atayin tanlangan yorqin seed'da, u sakkizta bitimli, 0.4% ekspozitsiyaga ega strategiyani 21.09 in-sample per-trade Sharpe bilan toj kiydirgan, u 0.13 full-timeline out-of-sample Sharpe'ga qulaydi. Sakkizta kuzatuvda qurilgan nisbatning taxminan ±7.7 yillik standart xatosi bor (4-parda) — u hech qachon ma'lumot bo'lmagan.
  3. Ekspozitsiyani hisobga oladigan maqsadlar tabiiy ravishda xavfsiz. Raw PnL va Full-Timeline Sharpe hech qachon degeneratsiyalanmagan (0%), chunki ular butun vaqt o'qini o'lchaydi va faolsizlik avtomatik ravishda jazolanadi. To'liq vaqt o'qi metrikasini kamdan-kam savdo qilish orqali aldab bo'lmaydi. Raw PnL'ning yagona kamchiligi qarama-qarshi noto'g'rilik — u ortiqcha ekspozitsiyalaydi (o'rtacha ekspozitsiya 0.859, OOS 1.61 haqiqiy 1.77ga nisbatan), θ\thetani bozorda ko'proq bo'lish uchun optimumdan oshirib yuboradi.
  4. Ta'mirlashlar ishlaydi — lekin ular sizni faqat Full-Timeline Sharpe'ga qaytaradi. Ekspozitsiya pol chegarasi va bitimlar soniga asoslangan (conf_k) shrinkage har biri mustaqil ravishda out-of-sample Sharpe'ni ko'taradi va degeneratsiyani nolga qarab yuritadi; birgalikda ular platoga yetadi. Lekin o'sha plato Full-Timeline Sharpe hisoblanadi: degeneratsiya (emin,k)=(0,0)(e_{\min},k)=(0,0)da **59.5%**dan emin=0.20e_{\min}=0.20da **0%**ga tushadi va OOS Sharpe 0.66dan 1.71ga ko'tariladi — oddiy to'liq Sharpe yordamsiz ko'rsatgan aynan o'sha son, va to'liq tuzatilgan mustahkam maqsad aslida undan bir tuk past tushadi (OOS 1.70, 0.17% degeneratsiya: zaif ustunlik qilingan). Seed 6da mustahkam maqsad optimalga yaqin, yaxshi ekspozitsiyalangan chegarani tiklaydi (θ=0.979\theta = 0.979, haqiqiy 1.041.04dan bitta panjara nuqtasiga past; 447 bitim; OOS Sharpe 1.77). conf_k'ni per-trade metrikasi majburiy berilgan holat uchun zaxira sifatida ko'ring, butun vaqt o'qini o'lchashdan yuqori yangilanish sifatida emas. Aniq koordinatalar masshtabga bog'liq; yuzaning shakli o'tkaziladigan natijadir.
  5. Maqsadni kamdan-kam omadli bitimlar bilan aldab bo'lmaydigan qilib loyihalang. Afzallik tartibida: butun vaqt o'qi bo'yicha o'lchash (standart), ekspozitsiyani talab qilish (eng kuchli yolg'iz richag), bitimlar soniga qarab qisqartirish (maqsad darajasidagi Minimum Track Record Length). Bularning hech biri qidiruvni aqlliroq qilmaydi — bu maqsadni halol qiladi, shunda qidiruv muqarrar ravishda topadigan maksimum siz haqiqatan savdo qiladigan strategiya bo'ladi.

Parametr qidiruvi — itoatkor jin. U siz ifoda etgan aniq istakni bajaradi, siz nazarda tutgan narsani emas — va "shu metrikani maksimallashtir" — o'sha istak. Uni per-trade Sharpe sifatida ifodalang, u sakkizta omadli bitimni chaqirib, ularni boylik deb ataydi. Uni tekis turish jazolanadigan va bir necha bitim faqat bir necha kredit topadigan qilib ifodalang, va o'sha jin, bir xil ma'lumotlarda, sizga haqiqiy edge'ni beradi. Siz joylashtirgan strategiya maqsadni terganingiz zahoti tanlangan edi. Uni atayin tanlang.

To'liq eksperiment — sintetik bozor, oltita maqsad, 600-seed Monte-Karlo, va ta'mirlash-skanerlash yuzasi, har bir son deterministik skriptdan qayta yaratilishi mumkin — objective-design.marketmaker.ccdagi hamroh maqolada, kod va ma'lumotlar github.com/suenot/objective-design-degeneracy manzilida.

Bu bizning boshqa tadqiqotlarimiz turli burchaklardan olib boradigan bir xil urushning bir jabhasidir. Deflated Sharpe Ratio ko'p marta sinovdan keyin qidiruvning g'olibiga narx qo'yadi — bu maqola maqsad birinchi navbatda to'g'ri strategiyani tanladimi deb so'rasa, DSR tanlangan strategiya faqat omaddan ustun keladimi deb so'raydi. Kelayotgan probability of backtest overfitting tadqiqoti o'sha tanlov noto'g'riligiga qayta namunalash tomonidan hujum qiladi, g'olib o'rniga protsedurani baholaydi. Va look-ahead bias taxonomy yolg'on Sharpe yaratuvchi yana bir katta manbani katalogga kiritadi — kelajakdan oqib chiqish — u mutlaqo boshqa mexanizm orqali aynan o'sha alomatni (jonli paytida o'ladigan ajoyib bektest) yaratadi. Maqsad loyihalash, deflyatsiya, ortiqcha moslashish ehtimoli, look-ahead: bitta fanning to'rt nomi — o'z bektestingizdan aldanmaslik.

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

Bozordan bir qadam oldinda bo'ling

Sun'iy intellekt savdo tahlillari, bozor tahlili va platforma yangiliklari uchun bizning xabarnomaga obuna bo'ling.

Biz sizning maxfiyligingizni hurmat qilamiz. Istalgan vaqtda obunadan chiqishingiz mumkin.