La llei d'atribució de Quant: Si el PnL post-canvi va pujar, va ser el canvi; si el PnL post-canvi va baixar, va ser el mercat. La llei d'atribució de Quant: Si el PnL de post-canvi està en marxa, va ser el canvi. Si el post-canvi PnL ha baixat, ha estat el mercat. Treballo en el comerç quantitatiu i construeixo entorns de recerca i sistemes de comerç completament automatitzats que m'ajuden a passar de les dades de mercat a les estratègies de comerç de producció a l'anàlisi del rendiment.Un dels requisits clau d'aquests sistemes és que em permetin provar ràpidament les meves idees i iterar ràpidament per millorar el rendiment general del comerç. És una mesura molt òbvia per dir si estic fent millor que abans o no. PnL Si alguna vegada heu executat una estratègia de comerç en viu, coneixerà aquest ritual diari: obrir taulells per comprovar els ompliments, les latencies, l'inventari i, inevitablement, picar a PnL. Aquest gràfic és seductor ja que és el tauler final que resumeix l'èxit del negoci. Els mercats són no estacionaris, els clústers d'ompliments, els règims de volatilitat, els canvis de microstructure i la distribució dels resultats és greixosa.Si “optimitza” reaccionant als camins de PnL, acabarà perseguint el soroll. fool yourself Aquest article dóna a vista sobre com reemplaçar PnL-caça amb Per tant, el cicle d'iteració rep més senyal per unitat de temps. practical statistical hypothesis testing Per què PnL és una mètrica sorollosa El PNB és un de molts components aleatoris: agregat El seu dia a dia PnL dispersió pot duplicar en un dia de notícies, fins i tot si el seu sistema no està canviat. El temps de microsegons, la posició de la cua, els nivells de tarifa, la interacció oculta vs. il·luminació - tot això injecta l'atzar en els resultats comercials. Alguns primers guanys es combinen en una major exposició nocional més tard (o viceversa), fent que la corba sembli convincent sense canviar el resultat mitjà subjacent per comerç. Els canvis a les capes d'inventari, amplades de citació, creuament intern o en ruta poden moure PnL en direccions oposades i cancel·lar-se o amplificar-se mútuament. PnL és un gran objectiu per rastrejar el negoci, però no necessàriament una mètrica adequada per acceptar / rebutjar canvis de recerca en finestres curtes. El que nosaltres Vull saber Doncs Doncs Quan enviem un canvi (per exemple, una nova característica en el senyal, una lògica de citació diferent, una regla d'execució diferent), volem respondre: És probable que la millora observada persisti, o és una cosa que hem vist per casualitat? Is the observed improvement likely to persist, or is it something we saw by chance? Això ens porta al món de la prova d'hipòtesis estadístiques, on qüestionem la significació estadística dels resultats observats. Aquesta probabilitat és la Els petits valors de p signifiquen “això seria rar si no hi hagués efecte real”. 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? No fa res p-value No fa res Un exemple pràctic: dues estratègies que Diferents però no mira mira Anem a fingir que hem enviat un canvi i hem obtingut alguns trades en una estratègia abans i després del canvi (ja sigui de backtest o de comerç en viu). Estratègia A: abans del canvi Estratègia B: després del canvi A continuació he generat dues sèries PnL sintètiques per comerç. —exactament el tipus de imatge que tempta els equips a declarar la victòria. Però podem confiar realment en el que estem veient i treure conclusions sobre la base d'això? Després de tot, no és PnL l'objectiu final d'una estratègia de comerç? Testarem si la mitjana per comerç PnL realment difereix executant una prova estadística comuna a continuació. diverge visibly El codi que vaig utilitzar per produir les parcel·les i executar una prova estadística és a continuació: 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(); Aquests són els números que emet: mean_A=0.0611, mean_B=0.0037 Welch t-statistic=1.380, p-value=0.168 Veiem les dues sortides estàndard d'un test estadístic, un t-estadístic i un valor p. Vaig a explicar més sobre ells més endavant a la història. Per dir que el PnL mitjà per comerç difereix. No obstant això, les dues línies acumulatives semblen bastant lluny. there is not enough evidence Què va passar? (prova de la hipòtesi desmistificant) Personalment, no em va agradar molt aquest enfocament la primera vegada que estava aprenent sobre la prova d'hipòtesi estadística, perquè la majoria dels tutorials no expliquen la idea darrere d'ella i només et permeten memoritzar una tona de coses. Tot i que podria treballar amb ella i calcular alguns resultats seguint cegament l'algorisme de com fer i mirar les coses en taules massives, el moment que vaig aprendre els mecanismes per derivar-ho i d'on tot realment ve va ser un gran alleujament per a mi. 1) La pregunta que estem fent Hipòtesi nul·la (H0): el PnL mitjà real per comerç és el mateix abans i després del canvi. Alternativa (H1): són diferents (ambdós costats), o un és més gran (un costat), depenent de la seva pregunta. 2) Les estadístiques que calculem En el seu nucli, la és : t-statistic diferència en mostra significa dividit per l'error estàndard d'aquesta diferència. Dividit per . difference in sample means the standard error of that difference Si les dues mostres signifiquen que estan molt lluny , el t-stat es fa gran en magnitud. Si estan a prop respecte al soroll, el t-stat és petit. Com de sorollosos són 3) on el valor p ve de En H0 (no hi ha diferència real), la t-estadística segueix una distribució coneguda (a amb un cert grau de llibertat). És senzill: t-distribution p-value la probabilitat, sota H0, d'observar un t-stat almenys tan extrem (valor gran d'un t-stat) com el que va obtenir. the probability, under H₀, of observing a t-stat at least as extreme (large value of a t-stat) as the one you got. Això és tot allò que les taules (que vostè pot haver enfrontat en diferents guies de proves d'hipòtesi) estan fent- Un petit valor de p significa que la diferència observada seria rara si no hi hagués efecte real. looking up a quantile 4) Com llegir els nombres reals produïts pel codi Python anterior Això és el que us diuen els números: t ≈ 1.380 diu: la diferència observada en el PnL mitjà per comerç entre A i B és 1.380 errors estàndard lluny de zero. p ≈ 0.168 (ambdós costats) diu: si realment no hi hagués diferència en mitjans, veuríeu una diferència almenys tan gran al voltant del 16-17% del temps per casualitat. Això no és prou rar per reclamar un efecte real. 5) Per què els gràfics ens enganyen El PnL és un Al voltant de la mitjana subjacent. Amb milers de transaccions, les passes aleatòries es separen regularment per quantitats que es pugen als ulls - fins i tot si els mitjans són idèntics. El nostre cervell està ajustat per detectar pistes i separació, però no massa per integrar la variació correctament. La prova t et obliga a pesar la diferència mitjana . random walk against the per-trade dispersion 6) Què hauria estat “significatiu” aquí? Pràcticament parlant, veuríeu el valor p a 0.05 si l'absolut de t-estadística és 1.96 (només el 5% dels possibles valors t-estadístics estan més enllà d'això). Mantenint la variància i l'estructura de mida de la mostra el mateix, necessitaríeu aproximadament una diferència mitjana del 42% més gran (perquè 1.96 / 1.38 ≈ 1.42) per arribar a la barra de dos costats del 5%. “Però el PnL és el que paga les factures”. No hem d’abandonar el PSC, hem de : separating roles PnL li diu si el negoci en general està funcionant. Les proves d'hipòtesi li diuen si aquest canvi específic és probable que ajudi fora de la mostra que acaba de veure. Quan els dos no estan d'acord, heu après alguna cosa: potser l'entorn va ser inusualment favorable, potser un ajust de ruta va amplificar l'exposició, potser heu enviat múltiples canvis. Efecte de . incremental Patró d'implementació que recomano (iteració ràpida sense autoengany) Per-trade PnL és bo, en les estratègies d'alta freqüència / creació de mercat és comú utilitzar agregacions com per-interval PnL (per exemple, 1 minut, 5 minuts) per reflectir inventari, tarifa i agregació de risc - i per reduir la correlació en sèrie. 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 Pre-comprometre la regla d'aturada. Opcional parada ("veurem cada hora i el vaixell quan p < 0.05") infla falsos positius. Decidir l'horitzó o el nombre de transaccions abans de llançar l'experiment. Gestió de múltiples comparacions. Si proves 20 botons, un "guanyarà" per sort. Utilitza la taxa de descoberta falsa (Benjamini-Hochberg) o Bonferroni en contextos d'alta aposta. Mantenir un registre central de totes les proves que executes. Protegeix-te de les fuites i de l'excés de prova. Divideix els mercats o el temps, no doblis característiques a través del tren / prova, i sigues explícit sobre les dates de congelació. Un valor de p pot ser petit per a un milió de transaccions, però l'efecte és econòmicament insignificant després de les tarifes i el risc. mida de l'efecte de seguiment (per exemple, la diferència mitjana en punts de base per comerç), i PnL ajustat pel risc (Sharpe, retirada), no només significativa estadística. Monitor de l'estabilitat. Un marge real ha de sobreviure a les divisions: per la caixa de liquiditat del símbol, per l'hora del dia, pel règim de volatilitat. Si el seu "guany" només existeix en una fulla prima, tingueu cura. Tornem al nostre exemple: el que haureu de concloure Donats els números anteriors (t ≈ 1,380, p ≈ 0,168): No hi ha prou proves que el PnL mitjà per comerç de l'Estratègia B difereixi de l'Estratègia A. La divergencia bastant en la PnL acumulativa és compatible amb l'atzar en processos d'igual mitjana. O recopileu més dades (pre-configureu una mostra més gran), reforceu la hipòtesi (millors característiques, control de riscos), o executeu un A / B més net (confusors d'aïllament). A causa de Trencaclosques comuns (jo els he fet tots perquè no hagis de) Peeking a la prova repetidament i aturar-se quan el valor de p disminueix per sota de 0.05. utilitzeu mètodes d'horitzó fix o seqüencial que compten amb el peeking, en cas contrari s'eleven falsos positius. Utilitzant resultats "per-fill" quan els ompliments estan altament correlacionats. Creus que tens mostres de 100k, però podria ser que realment tinguis esdeveniments independents de 2k. Comparar les curves acumulatives entre períodes amb diferents volums/liquiditats i anomenar-ho un guany. Equivalent a “significat estadístic” amb “valor econòmic”.Una petita marge es pot esborrar per les tarifes, el desplaçament de la latència o el risc d’inventari. Si ajusta 20 característiques i manté el millor, el seu valor p ha de ser corregit per a aquesta selecció. Un mnemònic per a la t-test que realment s'acosta Quan et sents temptat a mirar un gràfic de PnL, recorda: t = "quan lluny són els dos mitjans de mostra" ÷ "quan incerts són aquests mitjans". t = “how far the two sample means are” ÷ “how uncertain those means are.” Si dupliqueu la mida de la mostra, el denominador (incertesa) es redueix; les diferències trivials deixen de semblar "significatives". Acabament de notes Espero que tingueu una mica d'intuïció darrere de per què no és obvi jutjar els canvis en la vostra estratègia de comerç mirant només la diferència de PnL, quines eines estadístiques es poden utilitzar per fer que el procés de recerca sigui més robust, i possiblement alguna claredat sobre què hi ha darrere de tots aquests termes utilitzats en la prova d'hipòtesi estadística i com derivar-los sense seguir cegament les instruccions del llibre de text. Molts equips de recerca perquè s'equivoquen amb la sort per a la millora. Es fan cicles a través d'ajustos guiats pel tauler fins que el gràfic es veu bé, l'envien, i després passen mesos descartant el dany. No necessites estadístiques pesades per fer-ho millor. Només has d'establir la hipòtesi, triar una unitat raonable d'anàlisi, utilitzar una prova que mesuri el senyal en relació amb la incertesa, respectar les regles de proves múltiples i aturar-se i decidir sobre la base de les dues estadístiques Els equips construeixen marcs més complexos que s'adaptin al seu propòsit, però aquest és un bon lloc per començar. fail to iterate i Feu això, i el vostre cicle d'iteració es convertirà en més tranquil, més ràpid i més compost. Aquesta publicació utilitza només informació disponible públicament i és per a finalitats educatives, no per a consells d'inversió.Totes les opinions i opinions expressades són meves i no representen les de cap dels meus antics / actuals empresaris o qualsevol altra part.