Kvantov zakon pripisivanja: Ako je PnL posle promene gore, to je bila promena; Ako je PnL posle promene dole, to je bilo tržište. Kvantov zakon pripisivanja: Ako je PnL posle promene gore, to je bila promena; Ako je PnL posle promene dole, to je bilo tržište. Радим у квантитативном трговању и градим потпуно аутоматизована истраживачка окружења и трговачке системе који ми помажу да пређем од података о тржишту до стратегија трговања производње до анализе перформанси.Један од кључних захтева таквих система је да ми омогући да брзо тестирам своје идеје и брзо итерирам како бих побољшао укупне перформансе трговања. То је врло очигледна метрика да кажем да ли радим боље него раније или не. PnL Ако сте икада покренули стратегију за трговање уживо, знаћете овај свакодневни ритуал: отворите тастере за проверу пуњења, кашњења, инвентара и - неизбежно - погледајте ПнЛ. Тај графикон је заводљив јер је коначна табела сажета колико успешно посао ради. Тржишта су не-стационарна, кластери пуњења, режими нестабилности се окрећу, микроструктуре се померају, а дистрибуција резултата је дебела. fool yourself Ovaj post daje a погледајте како да замените ПнЛ-цхасинг са — тако да ваша итерацијска петља добија више сигнала по јединици времена. practical statistical hypothesis testing Зашто је ПнЛ бучна метрика ПНЛ је један од многих случајних компоненти: Агрегација Ваш дневни ПнЛ дисперзија може да се удвостручи на новине-и дан, чак и ако је ваш систем је непромењен. Микросекундно време, позиција редова, нивои накнада, скривена у односу на интеракцију - све убризгавају случајност у резултате трговања. Неколико раних победа се споји у већу номиналну изложеност касније (или обрнуто), чинећи кривину убедљивом без промене основног просечног исхода по трговини. Промене на поклопце инвентара, ширине цитирања, интерно прелазак или рутирање могу померати ПнЛ у супротним правцима и укинути или појачати једни друге. ПнЛ је одлична мета за праћење пословања, али не нужно погодна метрика за прихватање / одбацивање истраживачких промена на кратким прозорима. Šta mi Želiš da znaš до до Када шаљемо промену (на пример, нову функцију у сигналу, другачију логику цитирања, другачије правило извршења), желимо да одговоримо: Да ли је вероватно да ће се посматрано побољшање наставити, или је то нешто што смо случајно видели? Is the observed improvement likely to persist, or is it something we saw by chance? Ово нас доводи у свет тестирања статистичких хипотеза, где постављамо питање статистичког значаја посматраних резултата. „Случно“ значи: Ta verovatnoća je Male p-vrednosti znače „to bi bilo retko ako ne bi bilo stvarnog efekta.“ Velike p-vrednosti znače „šta ste videli je uobičajeno pod buku“. Under a world where the change to the true mean outcome, how often would we see a difference at least as large as what we observed? Ne radi ništa p-value Ne radi ništa Пример: две стратегије које Različiti, ali nisu Погледај Погледај Хајде да се претварамо да смо испоручили промену и добили неке трговине на стратегији пре и после промене (или из бацктеста или из живог трговања). сада имамо два сета ПнЛ-а по трговини: Стратегија А: пре промене Стратегија Б: након промене Испод сам генерисао две синтетичке ПнЛ серије по трговини. кумулативне ПнЛ линије —тачно таква слика која искушава тимове да прогласе победу.Али можемо ли заиста веровати ономе што видимо и направити закључке на основу тога?На крају крајева, да ли ПнЛ није крајњи циљ трговинске стратегије? diverge visibly Код који сам користио за производњу парцела и покретање статистичког теста је испод: import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats import seaborn as sns sns.set(); rng = np.random.default_rng(49) # generate PnLs per trade n = 1200 pnl_A = rng.normal(loc=0.0, scale=1.0, size=n) pnl_B = rng.normal(loc=0.0, scale=1.0, size=n) # generate cumulative PnLs cum_A = pnl_A.cumsum() cum_B = pnl_B.cumsum() # run a statistical test t_stat, p_value = stats.ttest_ind(pnl_A, pnl_B, equal_var=False) print(f"mean_A={pnl_A.mean():.4f}, mean_B={pnl_B.mean():.4f}") print(f"Welch t-statistic={t_stat:.3f}, p-value={p_value:.3f}") plt.figure(figsize=(12,7)) plt.plot(np.arange(1, n+1), cum_A, label="Strategy A") plt.plot(np.arange(1, n+1), cum_B, label="Strategy B") plt.ylabel("Cumulative PnL", fontsize=15); plt.xlabel("Trade #", fontsize=15); plt.legend(["Cumulative PnL — Strategy A", "Cumulative PnL — Strategy B"], fontsize=15) plt.tight_layout(); plt.savefig("cumulative_pnl_A_vs_B.png", dpi=160); plt.show(); Ево бројева које износи: mean_A=0.0611, mean_B=0.0037 Welch t-statistic=1.380, p-value=0.168 Vidimo dva standardna izlaza statističkog testa – t-statističku i p-vrednost. Više o njima ću ispričati u nastavku priče. Да кажем да се просечни ПнЛ по трговини разликује.Ипак, две кумулативне линије изгледају прилично далеко одвојено. there is not enough evidence Шта се управо десило? (демистификовање теста хипотезе) Већина уџбеника бацају формулу и табелу на вас. Лично, нисам много волео овај приступ први пут када сам научио о тестирању статистичких хипотеза, јер већина туторијала не објашњава идеју иза ње и само вам омогућава да запамтите тону ствари. Иако бих могао да радим са њим и израчунам неке резултате слепо пратећи алгоритам како и гледајући ствари у масивне табеле, тренутак када сам научио механизме да га изведем и одакле све заправо долази било је велико олакшање за мене. 1) Питање које постављамо Нул хипотеза (Х0): истински просечни ПнЛ по трговини је исти пре и после промене. Алтернативна (Х1): разликују се (двострана), или је једна већа (једнострана), у зависности од вашег питања. 2) Статистика коју израчунавамо У свом језгру, на је : t-statistic Razlika u uzorku znači podeljena standardnom greškom te razlike. Razlika u uzorku znači podeljena standardnom greškom te razlike. Ако су два узорка значи далеко одвојена , т-стат постаје велики по величини. Ако су близу у односу на буку, т-стат је мали. О томе колико су бучни 3) Одакле долази п-вредност Под H0 (без стварне разлике), t-статистика следи познату дистрибуцију (а са неким степеном слободе). To je jednostavno: t-distribution p-value вероватноћа, под Х0, да посматрате т-стат најмање једнако екстремно (велика вредност т-стата) као онај који сте добили. the probability, under H₀, of observing a t-stat at least as extreme (large value of a t-stat) as the one you got. То су све оне табеле (које сте можда суочили у различитим водичима за тестирање хипотеза) - Mala p-vrednost znači da bi vaša opažena razlika bila retka ako ne bi bilo istinskog efekta. looking up a quantile 4) Како прочитати стварне бројеве произведене горе наведеним Питхон кодом Ево шта вам ови бројеви говоре: t ≈ 1.380 каже: уочена разлика у просечном ПнЛ по трговини између А и Б је 1.380 стандардних грешака далеко од нуле. п ≈ 0.168 (двострано) каже: ако заиста није било разлике у средствима, видели бисте разлику најмање толико велики око 16-17% времена случајно.То није довољно ретко да тврде прави ефекат. 5) Зашто су нас графикони преварили Кумулативни ПнЛ је а Око основног просека. Са хиљадама трговина, случајне шетње се редовно раздвајају очима - чак и ако су средства идентична. Наши мозгови су подешени да открију нагибе и раздвајање, али не превише да би правилно интегрисали варијацију. Т-тест вас присиљава да тежите просечну разлику . random walk against the per-trade dispersion 6) Шта би овде било „значајно“? Практично говорећи, ви бисте видели п-вредност на 0.05 ако је апсолутни т-статистички 1.96 (само 5% могућих т-статистичких вриједности су изван тога). Држећи варијацију и структуру величине узорка исто, требали бисте око 42% већу просечну разлику (јер 1.96 / 1.38 ≈ 1.42) да бисте дошли до 5% двостране траке. „Ali PnL je ono što plaća račune.“ Istina – i... Ми не одбацујемо ПНЛ. ми смо : separating roles ПнЛ вам каже да ли посао у целини функционише. Тестови хипотезе вам кажу да ли ће ова специфична промена вероватно помоћи изван узорка који сте управо видели. Када се двојица не слажу, научили сте нешто: можда је окружење било необично повољно, можда је прилагођавање рутирања појачало излагање, можда сте послали више промена. Ефекат је . Повећање Модел имплементације препоручујем (брза итерација без самообмане) Per-trade PnL je u redu, u strategijama visokih frekvencija / stvaranja tržišta uobičajeno je koristiti agregate kao što su per-interval PnL (npr. 1 minut, 5 minuta) da bi se odrazili zalihe, pristojbe i agregat rizika – i da bi se smanjila serijska korelacija. For a mean-effect question, Welch’s t-test is a good default. If tails are very heavy or serial correlation is strong, switch to: Choose the statistic. (cluster by day, by venue, by symbol group), or Cluster-robust tests (label-shuffling), or Randomization / permutation tests (resample blocks to respect autocorrelation). Bootstrap Опционо заустављање ("погледаћемо сваки сат и испоручимо када п < 0.05") надувава лажне позитивне. Одлучите о хоризонту или броју трговина пре покретања експеримента. Урадите више поређења. Ако покушате 20 дугмади, један ће „победити“ срећом. Користите лажну стопу откривања (Бенјамини-Хоцхберг) или Бонферони у контексту високих опклада. Чувајте централни дневник свих тестова које покренете. Чувајте се од цурења и прекомјерног тестирања. Раздвојите тржишта или време, не дуплирајте функције преко воза / теста и будите експлицитни о датумима замрзавања. П-вредност може бити мала за милион трговина, али ефекат је економски безначајан након накнада и ризика. величина ефекта праћења (нпр. просечна разлика у базним тачкама по трговини) и ПнЛ прилагођени ризику (Схарпе, одузимање), а не само статистички значај. Права ивица треба да преживи поделе: по симболу ликвидности, по времену дана, по режиму нестабилности. ако ваш "победа" постоји само у једном танком резу, будите опрезни. Назад на наш пример: шта треба закључити С обзиром на горе наведене бројеве (t ≈ 1,380, p ≈ 0,168): Нема довољно доказа да се стратегија Б просечна ПнЛ по трговини разликује од стратегије А. Прилично одступање у кумулативном ПнЛ је компатибилно са случајношћу под равнопросечним процесима. Или прикупите више података (препоручите већи узорак), ојачајте хипотезу (боље карактеристике, контрола ризика), или покрените чистију А / Б (изолирајте збуњујуће). Због Уобичајене замке (направио сам их све тако да не морате) Пекинг на тесту више пута и заустављање када п-вредност пада испод 0.05. Користите фиксни хоризонтални или секвенцијалне методе које рачунају за пекинг, иначе ћете подићи лажне позитивне. Користите резултате "по пуњењу" када су пуњења веома корелативна. Мислите да имате 100к узорака, али можда заиста имате 2к независних догађаја. Упоређивање кумулативних кривина између периода са различитим волумом / ликвидношћу и називајући га победом. Уједначавање „статистичког значаја“ са „економском вредношћу“. Мала граница може бити избрисана накнадама, латентним клизањем или ризиком залиха. Ако подесите 20 карактеристика и задржите најбоље, ваша п-вредност мора бити исправљена за тај избор. Мнемоник за Т-тест који заправо држи Када се осећате у искушењу да погледате ПнЛ графикон, запамтите: t = “koliko su daleko ta dva uzorka sredstva” ÷ “koliko su neizvesna ta sredstva”. t = “how far the two sample means are” ÷ “how uncertain those means are.” Ако удвостручите величину вашег узорка, деноминатор (несигурност) се смањује; тривијалне разлике престају да изгледају "значајно". Завршене белешке Надам се да сте добили неку интуицију о томе зашто није очигледно да процените промене у вашој трговинској стратегији гледајући само на разлику ПнЛ-а, које статистичке алате се могу користити да би се истраживачки процес учинио робуснијим, и евентуално неку јасноћу о томе шта лежи иза свих ових термина који се користе у тестирању статистичких хипотеза и како их заправо извести без слепог праћења упутстава у уџбеника. Многи истраживачки тимови зато што греше срећу за побољшање. Они циклусу кроз подешавања управљања таблом док графикон не изгледа добро, пошаљите га, а затим проведете мјесеце одвајајући штету. Не треба вам тешка статистика да бисте то урадили боље. Потребно је само да наведете хипотезу, изаберете разумну јединицу анализе, користите тест који мери сигнал у односу на несигурност, поштујете више тестова и правила заустављања и одлучите на основу обе статистике Тимови граде сложеније оквире који одговарају њиховој сврси, али ово је добро место за почетак. fail to iterate и Урадите то, а ваша итерација ће постати мирнија, бржа и сложена. Ова публикација користи само јавно доступне информације и има едукативне сврхе, а не инвестициони савет.Сва мишљења и мишљења изражена су моја и не представљају оне било којег од мојих бивших / садашњих послодаваца или било које друге стране.