Universes and daily selection
A portfolio trades many coins on one account. Which coins, and when, is the first thing the form asks, and it is the setting that changes a result most.
Step one: strategy and coins
Pick the strategy and the build. The default build is the newest one at the moment the run starts, which is what normal work wants; a pinned build is for reproducing an older result.
Then choose how the coins are chosen.
- A fixed list trades every coin on it every day. The daily fields disappear, because the engine never applied them to a list, and the run records the list's size and its coins, so a result still names what it traded after the list is deleted.
- A daily selector picks the coins each day by a rule. The picker names each selector with its version and what it reads. Coins picked each day is the top N of that day's list, and positions at once caps how many of those coins may hold a position; extra picks wait for a slot.
The rest of the form
The period step holds the dates, the trading timeframe, the fill data and the warm-up. The out-of-sample cutoff, when one is set, is stated in words under the dates. The money step is the starting balance. A folded Advanced section holds the market-volatility filter, portfolio risk, a timeframe per coin, and the engine and execution settings, and its summary line says what is set in there, so nothing hidden is silently changing a result.
The data check before you run
A list of up to sixty coins is checked as soon as it is picked and the form says which coins have data for the whole window, naming the ones that do not. Larger lists and a daily selector get a check button, because the selector's check reads the whole screened history and takes about a minute.
On Bybit data a daily selector never picks a coin the venue never listed, and the next-ranked coin takes the slot. A coin whose data starts on its listing day or ends on its delisting day is complete, not a gap. The check names only real holes and can download exactly those days. Its answers are cached, so a repeat check starts in under a second.
While it runs, and what comes back
Progress reads as coin-days done, with the trade count and the elapsed time, and a skipped coin says why: no bars that day, no data, or no contract specs.
The result carries a chip saying whether it is in-sample, out-of-sample or both against the cutoff, and one sentence above the numbers saying how much of the plan ran, in amber when it is below ninety percent. There is no per-coin profit split, on purpose: the coin that carried a portfolio is the coin a fixed list would have been built around afterwards, and that is the mistake the daily selection exists to avoid.
A folded Coins per day card holds the record: how many days ran and how many coin-days they used, and for each day the picks in three groups, ran, waited because every slot was taken, and skipped with the reason. Every coin keeps its rank in that day's selector list, which is the reason it was picked. A coin already held keeps its slot while it stays on the list, so it can run at a lower rank than a coin that waits.
The trade log is in entry-time order, with prices at the precision of the instrument, and clicking a trade opens that coin's chart around it with the same indicators as a single-coin backtest.
Coin lists
A list opens to its coins with each coin's data range. Use this list fills the form, Duplicate and edit makes a new list, and a smaller action starts it in paper. A list never changes after it is saved, so editing one is a copy with a new name. Re-running a result whose list was deleted says so rather than offering a run that could not be reproduced.
The same selection, in paper and live
In paper and live, a portfolio is a record that owns one account, its own selector and its own strategy. Every morning the selector produces that day's picks and the portfolio rotates its own instances toward them: coins that left the list close and coins that arrived start, on that portfolio's account only. A portfolio's own settings fix the coins per day, the coins run at once, the position size, the direction, the timeframe, the pinned build and the strategy parameters, and a blank field means the strategy's default, so an untouched portfolio behaves as the strategy does.
Each portfolio has its own rotation switch, which is how one portfolio is taken out of the daily change without touching the others. Rotation pause and the daily-selection switch sit in their own card and are one switch for the whole engine, so they affect every environment. The opened portfolio lists today's picks with their side, their P&L and their state, running, not started, or leaving and closing only.