Signal-to-Noise Ratio
9 min czytania
Filter "maybe" setups from "must take" ones by measuring and scaling the clarity of your trading signals.
9 min czytania
Filter "maybe" setups from "must take" ones by measuring and scaling the clarity of your trading signals.
Twój edge nie żyje w każdym sygnale — żyje w jego klarowności. Naucz się go mierzyć, koncentrować się na nim i skalować.
Signal-to-Noise Ratio (SNR) w tradingu to stosunek średniej stopy zwrotu setupu do odchylenia standardowego jego wyników: SNR = mean(R) / stdev(R). To matematycznie ta sama rodzina co statystyka t i nieuroczniony wskaźnik Sharpe'a — SNR liczone na transakcję pomnożone przez √n daje dokładnie statystykę t twojego edge. Teoria informacji podaje formę bazową: SNR = μ_signal / σ_noise, lub 10·log₁₀(P_s / P_n) w decybelach.
Ta lekcja jest zwieńczeniem modułu Advanced Statistical Thinking. SNR to strukturalnie statystyka t, która napędza Sharpe'a; jego mianownik jest zniekształcany przez outliery; a tagi o wysokim SNR ulegają degradacji edge. Tu spinamy te wątki w jedno.
Istnieją trzy formy operacyjne i nie są one wymienne:
| Metryka | Wzór | Kiedy używać | Min. próba | Pułapka |
|---|---|---|---|---|
| SNR per setup | mean(R) / stdev(R) w obrębie tagu | Porównywanie tagów setupów w ramach jednej strategii | n ≥ 30 | Niewytrzymały na outliery w σ |
| Sharpe (annualizowany) | (R_p − R_f) / σ_p × √(okresów/rok) | Zwrot dostosowany do ryzyka dla całej strategii | n ≥ 100 okresów | Ukrywa skośność/kurtozę |
| Information Coefficient (IC) | corr(prognoza, zrealizowane R) | Walidacja oceny 0/1 lub stopniowanej jako sygnału | n ≥ 50 prognoz | Zniszczone przez retroaktywne ocenianie |
Ta lekcja używa SNR per setup do triażu tagów oraz IC do walidacji rubryk oceniania. Wprost zaznaczymy, które narzędzie jest właściwe na danym kroku.
Potoczne ujęcie — "czyste vs niechlujne setupy" — to intuicja, nie pomiar. Dwóch traderów patrzących na ten sam wykres nie zgodzi się co do "klarowności". Dwóch traderów puszczających ten sam wektor R przez mean(R) / stdev(R) dostanie tę samą liczbę. Jeśli chcesz zarządzać edge, potrzebujesz liczby.
Wcześniejsze ujęcie "wygląda mglisto vs wizualnie oczywisty" sprowadza się do uczucia tradera. Zastąp je mierzalnymi cechami, rejestrowanymi przed zamknięciem transakcji:
| Cecha | Sygnatura wysokiego SNR | Sygnatura niskiego SNR |
|---|---|---|
| Zgodność HTF | Trend zgodny na 4H + 1H | Sprzeczne timeframe'y |
| Kontekst płynności | Sweep + reclaim | Wejście w środku zakresu |
| Potwierdzenie wolumenu | ≥ 1,5× średnia 20-barowa | Poniżej średniej |
| Spread vs ATR | ≤ 1,0 × ATR(14) | > 2,0 × ATR(14) |
| Liczba konfluencji | 3+ niezależne czynniki | Pojedynczy wskaźnik |
| Statystyka t przy n ≥ 30 | ≥ 2,5 | < 1,5 |
| Zgodność między oceniającymi | κ Cohena ≥ 0,6 | κ Cohena < 0,4 |
Każdy wiersz jest obserwowalny z wyprzedzeniem i odtwarzalny przez drugiego tradera. Jeśli twojego systemu oceniania nie da się odtworzyć, to nie sygnał — to twój nastrój.
Nawet jeśli twój system ma 3 świetne setupy i 2 przeciętne, branie wszystkich 5 obniża twoją łączną EV. Pompujesz win rate szumem, jednocześnie ukrywając słabe wyniki tagów, które realnie niosą sygnał. Większość profesjonalistów nie handluje większej liczby setupów — handlują mniejszą liczbą setupów lepiej i z większą wielkością pozycji.
Matematyka: jeśli tag A ma średnią +0,6R przy stdev 1,5R (SNR = 0,40), a tag B ma średnią +0,05R przy stdev 1,2R (SNR = 0,04), zmieszanie ich z równą częstotliwością daje średnią ważoną +0,325R, ale stdev około 1,35R — co zaciąga twoje zagregowane SNR z 0,40 do 0,24. Straciłeś 40% sygnału na jednostkę ryzyka, dodając przeciętny tag.
W swoim dzienniku oznacz każdą transakcję nazwą setupu (np. "liquidity sweep + FVG", "pullback do VWAP"). Dla każdego tagu loguj:
Tag "sweep + FVG", ostatnie 40 transakcji. Podsumowanie wektora R:
Statystyka t równa 1,65 jest poniżej progu 2,0 i jeszcze nie jest potwierdzonym edge — to równie dobrze może być szum. Porównaj:
Sam win rate wprowadza w błąd: scalp z 90% win rate, średnią +0,1R i stdev 0,5R ma SNR = 0,20. Breakout z 30% win rate, średnią +0,6R i stdev 1,5R ma SNR = 0,40. Setup z niższym win rate niesie więcej sygnału na jednostkę ryzyka.
Stara skala "5 = idealna konfluencja, brak wahania; 1 = FOMO" sprowadza wielkość sygnału do emocji tradera. "Brak wahania" to uczucie po fakcie, nie obserwowalna cecha pre-trade. Zastąp ją sumą binarnych cech rejestrowanych przed wejściem:
Suma daje wynik 0–5. Zwaliduj rubrykę za pomocą IC = corr(score, zrealizowane R) przy n ≥ 50 transakcji. Jeśli IC ≈ 0, rubryka nie niesie informacji i oceniasz szum.
Pułapka — retroaktywne ocenianie. Oceny muszą być zapisane PRZED zamknięciem transakcji (idealnie przed wejściem). Jeśli przeoceniasz po zobaczeniu wyniku, twoje IC będzie ~1,0 z konstrukcji i nic nie znaczy. To podręcznikowy look-ahead bias — zobacz biasy w backtestingu. "Edge w kubełkach 4–5" oceniony z perspektywy czasu to selection bias przebrany za analizę.
Niech drugi trader oceni 30 twoich setupów w ślepej próbie. Policz κ Cohena dla zgodności:
Jeśli dwóch kompetentnych traderów nie potrafi się zgodzić, jak wygląda "setup wysokiej jakości", nie masz rubryki — masz nawyk.
Nie pytaj: "czy ten setup wygląda czysto?". Zapytaj: "Czy zgodność trendu HTF, zakodowana jako wejście 0/1 do mojego score'u, podnosi IC rubryki na danych out-of-sample?". Jeśli tak, zostaw. Jeśli nie, wyrzuć. Klarowność, która nie przeżyje falsyfikacji, to nie sygnał — to confirmation bias.
Używaj statystyki t (SNR · √n) i minimalnej wielkości próby, nie samego SNR:
| Zakres statystyki t (n ≥ 30) | Działanie | Alokacja ryzyka |
|---|---|---|
| t < 1,5 | Wytnij | 0 — usuń z rotacji |
| 1,5 ≤ t < 2,0 | Okres próbny | Pół wielkości aż do n ≥ 60 |
| 2,0 ≤ t < 3,0 | Standard | Pełna wielkość, monitoruj kwartalnie |
| t ≥ 3,0 | Tag rdzeniowy | Pełna wielkość, priorytetyzuj |
Działanie: wytnij każdy tag ze statystyką t < 1,5 po n ≥ 30. Przealokuj uwolniony budżet ryzyka do tagów ze statystyką t ≥ 2,5.
Zastrzeżenie: fałszywa precyzja. Przy n < 50 na kubełek jakości różnica między kubełkami "4–5" a "2–3" jest zdominowana przez szum próbkowania. Potwierdź decyzje o przycinaniu bootstrapowymi przedziałami ufności (resampluj swój wektor R 1000× ze zwracaniem, weź percentyle 5–95 SNR), zanim wytniesz tag. Tag z punktową statystyką t = 1,8 może mieć CI [0,4, 3,2] — dane jeszcze nie zdecydowały.
Handluj mniejszą liczbą czystszych, powtarzalnych setupów z wyższą pewnością statystyczną.
Nawet jeśli twój system ma:
Branie wszystkich 5 obniża twoją łączną EV. Pompujesz win rate szumem, jednocześnie ukrywając słabe wyniki — a outliery mogą zniekształcić oszacowanie szumu w obu kierunkach, czyniąc rozcieńczenie niewidocznym aż do zmiany reżimu, która je obnaży.
Większość profesjonalistów nie handluje większej liczby setupów. Handlują mniejszą liczbą setupów lepiej.
Odchylenie standardowe w mianowniku SNR jest niewytrzymałe: pojedyncze zdarzenie 8σ w próbie może albo zmiażdżyć, albo ocalić twoje SNR — w zależności od znaku. Używaj winsorizowanego stdev (przytnij górne/dolne 5%) lub raportuj SNR razem z medianowym odchyleniem absolutnym (MAD) jako kontrolą odporności.
Tag o wysokim SNR w 2023 może załamać się w 2024, gdy reżim się zmienia, a inni traderzy tłoczą się w tym samym setupie. Lekcja obok — degradacja edge — to właściwe miejsce dla tego tematu. Przetestuj ponownie SNR na kroczących oknach 60-transakcyjnych; jeśli trenduje w dół, patrzysz na umierający edge.
Tagi, które zachowałeś, to te, które zadziałały w twojej próbie historycznej. Część z tych wyników to realny edge, część to szczęście próbkowania. Forward SNR będzie wracać do średniej. Planuj, że co najmniej 30% historycznego SNR zachowanych tagów wyparuje na danych out-of-sample; jeśli tak się nie stanie, miałeś szczęście przy samym wycinaniu.
Ta sama rodzina — Sharpe to annualizowane SNR na poziomie portfela z odjęciem stopy wolnej od ryzyka w liczniku. SNR per setup to wersja nieuroczniona w obrębie tagu: mean(R) / stdev(R), gdzie R jest w R-multiples. Pomnóż SNR per setup przez √n i dostajesz statystykę t edge'a. Metryki rozwiązują ten sam problem na różnych zakresach.
SNR per transakcję powyżej 0,30 przy n ≥ 30 to minimum; idealnie chcesz statystyki t (SNR · √n) ≥ 2,0, zanim potraktujesz tag jako potwierdzony edge, oraz ≥ 3,0, zanim nazwiesz go tagiem rdzeniowym. Poniżej statystyki t = 1,5 dane jeszcze nie zdecydowały — trzymaj tag na okresie próbnym przy połowie wielkości, nie wycinaj.
30 transakcji dla kierunku, 100+ dla pewności w punktowym oszacowaniu. Błąd standardowy stdev maleje jak 1/√(2n), więc podwojenie próby tnie niepewność o ~30%. Poniżej n = 30 twoje SNR to głównie szum. Potwierdź bootstrap'owymi przedziałami ufności przed jakąkolwiek decyzją o przycinaniu.
Nie, są niezależne. Scalp z 90% win rate, średnią +0,1R i stdev 0,5R ma SNR = 0,20. Breakout z 30% win rate, średnią +0,6R i stdev 1,5R ma SNR = 0,40. Setup z niższym win rate niesie więcej sygnału na jednostkę podjętego ryzyka.
Nie — to retroaktywne ocenianie, podręcznikowy look-ahead bias. Jeśli oznaczysz setup jako "5/5" dopiero po tym, jak zadziałał, information coefficient twojego systemu oceniania staje się 1,0 z konstrukcji i nic nie znaczy. Oceny muszą być zaryglowane przed wejściem, idealnie wpisane w sam ticket transakcji.
SNR mierzy, jak mocny jest sygnał na transakcję (średnia przez odchylenie zrealizowanych zwrotów). IC mierzy, jak dobrze prognoza lub ocena przewiduje zrealizowane zwroty (korelacja między score'em a R). Używaj SNR do triażu tagów setupów; używaj IC do walidacji, czy twoja rubryka oceniania w ogóle niesie informację.
Masz teraz przerobione: Sharpe i Sortino, outliery, degradację edge, biasy w backteście oraz jakość sygnału. Razem są to narzędzia do oddzielania realnego edge od artefaktów próbkowania.
Wycinanie tagów o niskim SNR powinno poprawić zagregowanego Sharpe'a na n ≥ 100 transakcji do przodu — ale pojedynczy kwartał słabych wyników wyciętego tagu może być szumem, a nie śmiercią edge. Przeliczaj raz w roku i wracaj do lekcji o degradacji edge, gdy krocząca statystyka t wcześniej silnego tagu zaczyna trendować w dół.