Tyrimas

Pranašumas yra įėjime, ne išėjime

Pradėjau ieškodamas geriausio išėjimo savo swing sistemai. Penkiolika konfigūracijų vėliau paaiškėjo, kad ieškojau ne ten — ir kad viena modeliavimo klaida prieš tai buvo padidinusi rezultatą dvigubai.

Atnaujinimas 2026-10. Šis tyrimas naudojo šiandieninę indeksų sudėtį. Naujesnis tyrimas parodė, kad toks sąrašas momentum testo grąžą padidino apie 13 p. p. per metus, todėl +0,11R laikau neįrodytu, kol neperpatikrinsiu su istorine S&P 500 sudėtimi ir portfelio lygmeniu prieš SPY. Išvados apie išėjimus ir balą lieka galioti. Plačiau: „Lygis yra rizikos įrankis, ne pranašumas“.

Pagrindinis rezultatas

Sistema — trendo atsipirkimas prie lygio. Kaina bent 10 % virš SMA200, RSI(2) ≤ 20, įėjimas limitiniu pavedimu ties lygiu, kurį rinka jau gynė. Testas: devyneri metai, dienos barai, kaštai įskaičiuoti.

Kad būtų galima atskirti taisyklę nuo rinkos, kiekvienas paleidimas turi kontrolę: tas pats filtrų rinkinys, tas pats stopas, tas pats sandorių skaičius, bet įėjimo momentas parinktas atsitiktinai. Skirtumas tarp eilučių ir yra tai, ką prideda atranka.

KonfigūracijaS&P 500S&P 600Savi tikeriaiVidurkis
Kopėčios · k = 0,55 · 16 b.+0,09+0,14+0,44+0,22
Bėgikas · k = 1,4 · 16 b.+0,08+0,14+0,10+0,11
Bėgikas · k = 2,1 · 16 b.−0,06+0,13+0,02+0,03
Bėgikas · k = 2,9 · 16 b.+0,02+0,05+0,20+0,09
Bėgikas · k = 1,4 · 60 b.+0,10+0,11+0,13+0,11

Skaičiai lentelėje — pranašumas prieš atsitiktinį įėjimą R vienetais. Penkiolikoje langelių keturiolika teigiamų, vidurkis +0,11R, mediana +0,10R.

Penkios visiškai skirtingos išėjimo struktūros — kopėčios su 5R lubomis, bėgikas su trijų savaičių limitu, bėgikas be limito, trys stopo pločiai nuo 0,55 iki 2,9×ATR — ir iš esmės tas pats pranašumas. Išėjimas keičia, kaip atrodo rezultatas. Jis nekeičia, kiek jo yra.

Kaip atrodo ta pati sistema su skirtingais išėjimais

S&P 500Laim. %Vid. RMaks. kritimasPranašumas
Kopėčios, siauras stopas38,7+0,09−64R+0,09
Bėgikas, platus stopas, 60 b.36,0+0,21−64R+0,10

Antra eilutė atrodo dvigubai geresnė. Vidutinis R pakyla nuo +0,09 iki +0,21, atsiranda uodega — 11 % sandorių viršija +3R, geriausias duoda +13,4R. Bet pranašumas prieš atsitiktinį įėjimą tas pats, nes uodegą gauna ir atsitiktinis įėjimas. Ją duoda rinka, kuri per devynerius metus kilo, o ne lygis, prie kurio įėjai.

Klaida, kuri padvigubino rezultatą

Iki tam tikro momento testas stopą įvykdydavo tiksliai stopo kaina — net tada, kai baras atsidarydavo gerokai žemiau jo. Dienos prekyboje tai beveik nekenkia: pozicija uždaroma tą pačią sesiją. Swinge pozicija laikoma per naktį, ir stopas tampa rinkos pavedimu, įvykdomu ten, kur rinka atsidarė.

Pataisius vieną eilutę kode, 18 % sandorių pasikeitė, o tarp jų vidutinė žala −0,85R. Keli atvejai:

SandorisSu senu modeliuSu tarpų modeliu
TGT · 2024-05-21−1,04R−6,80R
CTAS · 2024-12-18+0,96R−4,91R
COST · 2018-02-05+1,95R−2,76R

TGT eilutė yra visa esmė. Rizikavai vienu R, o praradai beveik septynis, nes akcija atsidarė toli žemiau stopo. Stopas negarantuoja rizikos dydžio, kai laikai per naktį.

Prieš pataisymą trys iš šešių aibių rodė statistiškai reikšmingą rezultatą, geriausias t = 4,06. Po pataisymo — nė viena. Maksimalus kritimas pašoko nuo −35R iki −64R. Jei skaitai kieno nors backtestą su swing pozicijomis, pirmas klausimas turėtų būti: ar atsidarymo tarpai modeliuojami?

Kas dar nepasitvirtino

Klaidingas pramušimas ir pramušimas per veidrodinį lygį — 0 sandorių šešiose aibėse iš šešių. Ne prastas rezultatas, o tuščia aibė: dienos baruose kartu su likusiais filtrais šios sąlygos neįvyksta. Patikrinta ir kita realizacija nepriklausomoje sistemoje: 72 sandoriai, −0,03R.

Platus reakcijos baras — penki teigiami rezultatai iš eilės, tada lūžis. Sąlyga „signalo baras ≥ 1,6×ATR" penkiose aibėse davė nuo +0,29R iki +1,68R. Šeštojoje, su didžiausia iki tol imtimi, rezultatas −0,52R, |t| = 2,70. Penki sutapimai buvo iš 7–139 sandorių imčių. Būtent tam ir reikalinga šeštoji aibė.

Aukštesnis modelio balas duoda prastesnį rezultatą. Mano paties svorių sistema, skirta atrinkti geriausius signalus, keturiose nepriklausomose aibėse rodė priešingai: signalai su aukštesniu balu baigdavosi 0,10–0,34R prasčiau.

Platesnis stopas negerina pranašumo. Nuo 0,55 iki 2,9×ATR vidutinis R juda, bet pranašumas prieš atsitiktinį įėjimą lieka toje pačioje vietoje. Prie 2,1×ATR atsitiktinis įėjimas net aplenkė taisyklę.

Ką iš to darau

Tolesnis išėjimų ir stopų derinimas yra laiko švaistymas. Penkiolika konfigūracijų davė tą patį skaičių, ir šešioliktoji jo nepakeis. Sistemą galima gerinti tik dviem būdais: geresne atranka arba didesniu sandorių skaičiumi.

Grįžtu prie siauro stopo ir kopėčių — toks pat pranašumas, perpus mažesnis kritimas, aukštesnis laimėjimų procentas. Psichologiškai pakeliama sistema svarbiau už gražesnį vidurkį lentelėje.

Ir dar viena aritmetika, kurią verta pasakyti garsiai. Prie 0,5 % rizikos vienam sandoriui ir maždaug 100 sandorių per metus toks pranašumas duoda 10–15 % metinių, o istorinis kritimas siekia apie 32 % kapitalo. Ne 66 %, ne 120 % per mėnesį. Kas žada daugiau, arba turi pranašumą, kurio aš per devynerius metus neradau, arba rizikuoja tiek, kad sąskaita neišgyvens pirmo blogo laikotarpio.

Ribos

Aibės nėra nepriklausomos. Dow yra S&P 500 poaibis, NASDAQ-100 persidengia aštuoniasdešimčia pavadinimų. Realiai nepriklausomos — keturios.

Išgyvenusiųjų šališkumas. Indeksų sudėtis šiandieninė; iškritusios bendrovės į testą nepateko. Vėlesnis tyrimas parodė, kad šis efektas gali būti didelis — momentum teste apie 13 p. p. per metus. Trisdešimt S&P 500 simbolių išmesta dėl per trumpos istorijos.

Testuojama maždaug pusė sistemos. Dienos barai neturi intraday patvirtinimo, gyvo spredo ir RVOL. Realus rezultatas bus prastesnis.

Paieškos platumas. Šešios aibės, keturi filtrų rinkiniai, dvi apyvartos ribos, trys stopo pločiai, du laiko limitai, keturios išėjimo struktūros. Kuo daugiau bandymų, tuo didesnė tikimybė rasti gražų skaičių atsitiktinai — tiksliai taip nutiko su plačiu reakcijos baru.

Kas toliau

Istorija išnaudota. Nuo šiol kiekvienas signalas fiksuojamas prieš rezultatą: lygis, RSI(2), atstumas nuo SMA200, baro plotis, rezultatas R. Po kelių mėnesių paskelbsiu tą lentelę, kad ir kaip ji atrodytų.

Tai vienintelis būdas gauti duomenis, kurių jokia atranka negali pagražinti.

Arūnas Bucevičius — swing prekiautojas, „PRO Traders Daily" autorius. Šia sistema prekiauju realiais pinigais; kiekvienas naujas sandoris fiksuojamas žurnale prieš rezultatą.

Apie šį tekstą. Straipsnį parašė Claude (Anthropic). Tyrimo eigoje jis kėlė hipotezes, siūlė testų planus, rašė backtesto pataisas — įskaitant atsidarymo tarpų modelį — ir interpretavo rezultatus; aš pateikiau sistemą, skanerį ir duomenis, paleidau kiekvieną testą ir priėmiau visus sprendimus. Visi skaičiai — iš mano backtesto.

DĖMESIO: ši svetainė ir joje esanti informacija nėra finansinė ar investavimo konsultacija. Visi tekstai ir pavyzdžiai yra išskirtinai edukacinio pobūdžio. Istoriniai rezultatai negarantuoja būsimų. Jūs patys prisiimate visą riziką už savo finansinius sprendimus.

Research

The edge is in the entry, not the exit

I set out to find the best exit for my swing system. Fifteen configurations later it turned out I was looking in the wrong place — and that one modelling error had been inflating the result by a factor of two.

Update 2026-10. This study used today's index membership. A newer study showed that such a list inflated a momentum test by about 13 pp a year, so I treat the +0.11R as unproven until I retest it with historical S&P 500 membership and at portfolio level against SPY. The conclusions about exits and the score still stand. More: “A level is a risk tool, not an edge”.

The headline result

The system is a trend pullback to a level. Price at least 10 % above its SMA200, RSI(2) ≤ 20, entry by limit order at a level the market has already defended. The test: nine years, daily bars, costs included.

To separate the rule from the market, every run carries a control: same filters, same stop, same number of trades, but the entry timing chosen at random. The gap between the rows is what the selection contributes.

ConfigurationS&P 500S&P 600Own tickersMean
Ladder · k = 0.55 · 16 bars+0.09+0.14+0.44+0.22
Runner · k = 1.4 · 16 bars+0.08+0.14+0.10+0.11
Runner · k = 2.1 · 16 bars−0.06+0.13+0.02+0.03
Runner · k = 2.9 · 16 bars+0.02+0.05+0.20+0.09
Runner · k = 1.4 · 60 bars+0.10+0.11+0.13+0.11

The figures are the edge over random entry, in R. Fourteen of fifteen cells positive, mean +0.11R, median +0.10R.

Five completely different exit structures — a ladder capped at 5R, a runner capped at three weeks, a runner with no cap, three stop widths from 0.55 to 2.9×ATR — and essentially the same edge. The exit changes how the result looks. It does not change how much of it there is.

The same system under two exits

S&P 500Win %Avg RMax DDEdge
Ladder, tight stop38.7+0.09−64R+0.09
Runner, wide stop, 60 bars36.0+0.21−64R+0.10

The second row looks twice as good. Average R rises from +0.09 to +0.21 and a tail appears — 11 % of trades exceed +3R, the best returns +13.4R. But the edge over random entry is unchanged, because the random entry gets the same tail. It comes from a market that rose over nine years, not from the level you entered at.

The error that doubled the result

Until a certain point the test filled stops exactly at the stop price — even when the bar opened far below it. In day trading that barely matters: the position closes in the same session. In swing the position is held overnight, and the stop becomes a market order filled wherever the market opened.

Fixing one line of code changed 18 % of all trades, with an average damage of −0.85R among them. A few cases:

TradeOld modelWith gap model
TGT · 2024-05-21−1.04R−6.80R
CTAS · 2024-12-18+0.96R−4.91R
COST · 2018-02-05+1.95R−2.76R

The TGT row is the whole point. You risked one R and lost almost seven, because the stock opened far below the stop. A stop does not guarantee the size of your risk when you hold overnight.

Before the fix, three of six universes showed a statistically significant result, the best at t = 4.06. After the fix — none. Maximum drawdown went from −35R to −64R. If you are reading someone's backtest of swing positions, the first question should be: are opening gaps modelled?

What else did not hold up

False breakout and mirror-level breakout — 0 trades in six universes out of six. Not a poor result: an empty set. On daily bars, combined with the remaining filters, these conditions do not occur. A separate implementation in an independent system gave 72 trades at −0.03R.

Wide reaction bar — five positive results in a row, then a break. The condition "signal bar ≥ 1.6×ATR" produced +0.29R to +1.68R across five universes. In the sixth, on the largest sample that model had yet seen, the result was −0.52R at |t| = 2.70. The five agreements came from samples of 7 to 139 trades. This is exactly what a sixth universe is for.

A higher model score produces a worse result. My own scoring system, built to pick the best signals, showed the opposite across four independent universes: higher-scoring signals finished 0.10R to 0.34R worse.

A wider stop does not improve the edge. From 0.55 to 2.9×ATR the average R moves around, but the edge over random entry stays where it was. At 2.1×ATR the random entry actually beat the rule.

What I take from it

Further tuning of exits and stops is a waste of time. Fifteen configurations produced the same number, and a sixteenth will not change it. The system can only be improved in two ways: better selection or more trades.

I am going back to the tight stop and the ladder — same edge, half the drawdown, a higher win rate. A system you can actually sit through matters more than a prettier average in a table.

And one more piece of arithmetic worth saying out loud. At 0.5 % risk per trade and roughly 100 trades a year, an edge this size yields 10–15 % annually, with a historical drawdown near 32 % of capital. Not 66 %, and not 120 % a month. Anyone promising more either has an edge I did not find in nine years of data, or is risking enough that the account will not survive its first bad stretch.

Limits

The universes are not independent. The Dow sits inside the S&P 500; NASDAQ-100 overlaps it by roughly eighty names. Genuinely independent: four.

Survivorship bias. Index membership is today's; companies that dropped out never entered the test. A later study showed this effect can be large — about 13 pp a year in a momentum test. Thirty S&P 500 symbols were excluded for insufficient history.

Roughly half the system is being tested. Daily bars carry no intraday confirmation, no live spread, no RVOL. Live results will be worse.

Breadth of search. Six universes, four filter sets, two volume thresholds, three stop widths, two time limits, four exit structures. The more attempts, the higher the chance of a pretty number by accident — which is exactly what happened with the wide reaction bar.

What comes next

There is no more history. From here every signal is recorded before its outcome is known: level, RSI(2), distance from SMA200, bar width, result in R. In a few months I will publish that table, whatever it looks like.

That is the only way to get data no selection can flatter.

Arūnas Bucevičius — swing trader, author of PRO Traders Daily. I trade this system with real money; every new trade is logged before its outcome is known.

About this text. The article was written by Claude (Anthropic). Through the research it proposed hypotheses, designed the test plans, wrote the backtest patches — including the opening-gap model — and interpreted the results; I supplied the system, the scanner and the data, ran every test and made every decision. All figures come from my own backtest.

IMPORTANT: this website and the information on it are not financial or investment advice. All texts and examples are strictly educational. Past results do not guarantee future ones. You bear full responsibility for your own financial decisions.

Forschung

Der Vorteil liegt im Einstieg, nicht im Ausstieg

Die deutsche Fassung folgt, sobald die litauische und die englische final sind.