You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
June 2026 is the honest example: the crowd average bleeds at short holds, but the corridor **turns positive at the longest hold** — the best point (**stop 5.5% · trail 1.5% · hold 120h · lock 1.5%**) makes **+26.26%** at a **79% win rate** over 253 trades. The value is the corridor AND the raw tracks, which tell you which authors called this month well.
18
+
June2026 is thehonestexample: thecrowdaveragebleedsatshortholds,butthecorridor**turnspositiveoncethehold is longenough**—thebestpoint(**stop6%·trail3%·hold11d·lock5%**)makes**+218.8%**ata**71%winrate**over220trades,and**24%ofthewholegrid(5,100of21,280points)isprofitable**.ThevalueisthecorridorANDtherawtracks,whichtellyouwhichauthorscalledthismonthwell.
19
19
20
20
## Purpose
21
21
22
22
Thisprojectexistsfortheconcretechecksbelow.
23
23
24
24
### 1.Isthereaprofitablecorridoratall?
25
25
26
-
One `Sweep.run` over the whole feed: each idea gets ONE asynchronous candle pass from the minute after its publication, as deep as the longest hold of the grid — the schema owns the horizon, the engine has no hidden constant. Execution is wick-honest: exits by high and low, never close-to-close, the stop wins inside an ambiguous candle, fees and slippage on both legs. The outcome of **any** grid point is derived from the profiles arithmetically. The grid is the full cartesian product — **1,560 points** (stop 13 × trailing 6 × hold 5 × lock 4) — because the whole harvesting machinery is swept. If no point of the corridor is profitable, the crowd's direction carries no extractable edge on this feed even with the exit engineering searched.
26
+
One`Sweep.run`overthewholefeed: eachideagetsONEasynchronouscandlepassfromtheminuteafteritspublication,asdeepasthelongestholdofthegrid—theschemaownsthehorizon,theenginehasnohiddenconstant.Executioniswick-honest: exitsbyhighandlow,neverclose-to-close,thestopwinsinsideanambiguouscandle,feesandslippageonbothlegs.Theoutcomeof**any**gridpoint is derivedfromtheprofilesarithmetically.Thegrid is thefullcartesianproduct—**21,280points**(stop19×trailing10×hold14×lock8)—becausethewholeharvestingmachinery is swept.Ifnopointofthecorridor is profitable,thecrowd's direction carries no extractable edge on this feed even with the exit engineering searched.
27
27
28
28
### 2.Howmuchdoesthewindowcut?
29
29
30
30
Beforeanytradinglogicruns,thefeedpassesthehonestyfilters: NEUTRALideasdropped,flooddeduplicated—atmostoneideaperauthorperdirectionper8hours,becauserepostingacallmustnotinflateatrackrecordorretriggerentries.Theprobereportsthecutexplicitly: **421BTCUSDTideas→300directionalsurvivors**.Afeedthatmostlyevaporateshere is afeedofreposts,notsignals.
31
31
32
32
### 3.Whatiseachauthor's raw track?
33
33
34
-
The engine grades every author by the single **profit-before-stop** outcome INSIDE EACH POINT'S OWN HOLD WINDOW: a 24-hour point scores the 24-hour window, a 120-hour point the 120-hour window — the author is graded on exactly the trade the point takes. The result is `tracks[]`: one line per (grading rule × author) carrying `{holdMinutes, profitLockPercent, hardStopPercent, trailingTakePercent, author, ideas, hits, hitRate}`. No ban, no verdict — the raw ratio. Because the full rule (all four levels) is part of the identity, the same author appears once per rule: **240,240 track lines = 154 authors × 1,560 rules**. Userspace picks a rule and a threshold and reads the survivors off directly (`hitRate >= 0.5`, `ideas >= 3`).
34
+
Theenginegradeseveryauthorbythesingle**profit-before-stop**outcomeINSIDEEACHPOINT'S OWN HOLD WINDOW: a 1-day point scores the 1-day window, a 14-day point the 14-day window — the author is graded on exactly the trade the point takes. The result is `tracks[]`: one line per (grading rule × author) carrying `{holdMinutes, profitLockPercent, hardStopPercent, trailingTakePercent, author, ideas, hits, hitRate}`. No ban, no verdict — the raw ratio. Because the full rule (all four levels) is part of the identity, the same author appears once per rule: **3,277,120 track lines = 154 authors × 21,280 rules**. Userspace picks a rule and a threshold and reads the survivors off directly (`hitRate >= 0.5`, `ideas >= 3`).
35
35
36
36
### 4.Themechanicsarethefullsweep
37
37
38
-
Every idea triggers an entry (one open position PER AUTHOR — slots are per-author, so authors never collide, and each absorbs only his own overlapping posts). Authors are graded strictly in isolation — no interaction metrics (consensus, vote weighting, Wilson bounds) exist by design. What is swept is the whole exit machinery: catastrophe stop 1–7%, trailing take 0.5–3%, hold 24–120h, profit lock 1.5–5%.
38
+
Everyideatriggersanentry(oneopenpositionPERAUTHOR—slotsareper-author,soauthors never collide,andeachabsorbsonlyhisownoverlappingposts).Authorsaregradedstrictlyinisolation—nointeractionmetrics(consensus,voteweighting,Wilsonbounds)existbydesign.Whatissweptisthewholeexitmachinery: catastrophestop1–10%,trailingtake0.5–5%,hold1–14days,profitlock1–5%.
39
39
40
40
### 5.Readingtheresult
41
41
42
42
Theresultcarriesasinglereport bucket: rankingwinners(time-basedSharpe/Sortinooverdailyequityincrements—frozencapitalisnotfree—plustotalPnLandrecoveryfactor)withfulltradelistsandper-trade`absorbedIdeas`(whichauthor's signals a busy slot ate), and the `tracks[]`. The final arbiter for any point picked from the tracks is always a real engine backtest via `Backtest.run`.
43
43
44
44
## ActualResults—June2026,BTCUSDT,fullfeed
45
45
46
-
The committed artifact is [`assets/sweep.done.json`](https://github.com/tripolskypetr/backtest-kit/tree/master/demo/sweep/assets/sweep.done.json). The feed is strictly crypto-venue: ideas are classified by the `fullName` exchange prefix — Binance, Coinbase, Bitstamp, Bybit, OKX and the like — forex, CFD, metals, stocks and indices never enter the file, so no fabricated pairs.
46
+
Numbersbelowarefromalocal`npm start`run—thesweepoutput(`result.json`plusthe`result_*.jsonl`streams)iswrittennexttothescriptand is notcommitted(thereportsstreamalonerunstogigabytes).Thefeed is strictlycrypto-venue: ideasareclassifiedbythe`fullName`exchangeprefix—Binance,Coinbase,Bitstamp,Bybit,OKXandthelike—forex,CFD,metals,stocksandindicesneverenterthefile,sonofabricatedpairs.
The corridor is honest about WHERE the edge is. By hold, the best point per window: **−80.2% @ 24h, −62.8% @ 48h, −66.4% @ 72h, −23.8% @ 96h, +26.3% @ 120h** — short holds bleed the falling market, only the 5-day hold rides the crowd's longs into the black. The profit-harvesting sweep matters: with the lock and trailing switched off there is no positive point at all; it is the exit engineering, found by the grid, that surfaces the corridor.
64
+
Thecorridor is honestaboutWHEREtheedgeis.Threemonotonegradients,bestPnLperaxisvalue:
63
65
64
-
The signal also lives in the **tracks**. Filter the WINNING rule (stop 5.5 · trail 1.5 · hold 120h · lock 1.5) to authors with a real track (ideas ≥ 3) and rank by hitRate:
**21 of the 23 authors with a 3-idea track clear hitRate ≥ 0.5 under the winning rule.** That population is what a userspace swarm scorer carries forward: the raw track is the evidence, no ban baked in.
83
+
**20ofthe23authorswitha3-ideatrackclearhitRate≥0.5underthewinningrule.**Thatpopulation is whatauserspaceswarmscorercarriesforward: therawtrackistheevidence,nobanbakedin.
├── dump/ # raw run outputs and the candle persist cache
93
+
├── dump/ # candle persist cache
89
94
├── package.json # Scripts and dependencies
90
95
└── README.md # This file
96
+
97
+
# result.json + result_*.jsonl are written by `npmstart` and are NOT committed
98
+
# (the reports stream runs to gigabytes)
91
99
```
92
100
93
101
Theideasfeedcontainseverycrypto symbol seenonthesourceplatform—BTCUSDT421,ETHUSDT205,XRPUSDT86andsoon,1,049ideastotal. `Sweep.run` filters by the requested symbol itself, so one shared feed serves any run.
@@ -121,7 +129,7 @@ addSweepSchema({
121
129
});
122
130
```
123
131
124
-
Candles are fetched lazily in chunks through the exchange schema — persist cache first, network after. Only the horizons of actual ideas are requested, gaps between sparse ideas are never downloaded. The full result is written to `./dump/sweep.done.json`.
132
+
Candles are fetched lazily in chunks through the exchange schema — persist cache first, network after. Only the horizons of actual ideas are requested, gaps between sparse ideas are never downloaded. The run writes `./result.json` (run-level counters) plus three streams next to the script — `result_reports.jsonl` (every grid point), `result_best.jsonl` (the four ranking winners), `result_tracks.jsonl` (per-rule author tracks). None are committed.
0 commit comments