Equity Curve
Daily PnL
Portfolio Comparison (all R-scenarios)
Metrics Table
Trade Log
Strategy Rankings
By Entry Model (avg across R-scenarios)
By Take-Profit Multiple (avg across entry models)
Leverage Comparison (3x / 5x / 10x) — risk fixed at 1%, liquidation constraint enforces stop < 1/L
Return % by Portfolio × R across leverages (all entry models combined)
By Entry Model (return % at each leverage, selected R)
Trades Entered (liquidation-filter effect)
Method: 1% risk per trade, notional = risk / stop_distance capped at 20% of equity and leverage × equity. Liquidation (isolated margin) sits ~1/L from entry — a trade is entered only if its stop distance < 1/L, otherwise it is skipped at that leverage.
Daily Summary
Daily Theses (from DMA reports) — click a coin for the entry-model × R matrix
The Theses Development Process — complete & replicable
This page documents exactly how the daily theses are produced, the screening filters and their timing, and precisely when simulated trades are entered. It is written so anyone — or any automated agent — can reproduce the process step by step.
1. Overview & schedule (Sydney time)
The pipeline runs every weekday on a fixed schedule. Each job writes dated outputs to hypertracker-data/. All times below are Sydney AEST (UTC+10).
| Time (AEST) | Job | What it produces |
|---|---|---|
| 05:30 | Fills cache | Per-wallet fills cache (Hyperliquid) — used for smart-money attribution |
| 06:00 | Perps positioning | Consensus + whale + cohort positioning data |
| 06:20 | Leaderboard | Official Hyperliquid leaderboard (~41.7k wallets) |
| 06:30 | Bybit PM screener | Afternoon screening pass (catches early-Sydney session spikes) |
| 07:30 | Bybit daily screener | Morning screening pass (the primary filter below) |
| 08:00 | Daily Market Analysis (DMA) | The theses + report — see §2 |
| 08:45 | Theses Portfolio sim | Paper-trades today's theses (this site) |
| 09:00 | Pipeline eval | Automated consistency/health checks |
| 21:30 | Bybit AM screener | Evening screening pass |
2. Step-by-step: how a thesis is developed (08:00 DMA)
- Data collection (05:30–07:30). The morning jobs gather: Hyperliquid consensus (157 coins), key levels v2 / market profile (359 symbols), CVD×drift aggression (15 coins), HyperTracker cohort sizing (5 cohorts), Hyperliquid snapshot (493 markets), and the Bybit AM/PM screener passes.
- Data integration.
market_analyst_data.pymerges every source into a single per-coin view. Screener-passed coins are promoted to the top of the universe. Every coin gets an algorithmic conviction score (0–100) computed from seven components:- consensus magnitude (30 pts) — how strong the smart-money directional tilt is
- consensus conviction field (10)
- consensus freshness (20) — how recently the positioning data was updated
- positioning state bonus (15) — e.g. new money entering a side
- agreement (15) — consensus, whale, and aggression aligning
- aggression alignment (±12/6) — CVD×drift confirming the move
- HyperTracker whale agreement (±6)
- Thesis development. For each actionable symbol a thesis is written with: direction (LONG / SHORT / RANGE), refPrice, conviction (0–100), a base range (rangeLo → rangeHi), and base / bull / bear scenarios — each with a trigger, target, and invalidation, and probabilities that sum to 1.0. Stored as
market_analyst_theses_<date>.json. - Report synthesis. A structured markdown report is written: executive summary + top theses, macro regime, per-symbol expected-move framework, opportunity ranking, trade plan (entries/stops/targets/R:R/sizing), risk monitor, and scorecard.
- Consistency check + logging.
check_report_consistency.pyverifies the report matches the machine theses (exit 0 or fix). Then outputs go to the Obsidian vault (git) and Notion (Log DB row + full Reports page). - Portfolio simulation (08:45). The theses JSON feeds the simulator that powers this site — TOP portfolio = §1 top theses; SCREENED portfolio = all Bybit screener passes.
3. The screening filters (exact thresholds)
The Bybit screener scans all USDT-margined perpetuals on Bybit (category=linear) and keeps a symbol only if all four conditions pass:
| # | Filter | Threshold | Data |
|---|---|---|---|
| 1 | 24h volume | ≥ $10,000,000 USD | turnover over last 24h |
| 2 | ATR(14) on 15m | ≥ 2.0% of price | ATR(14) computed on 15-minute klines, as % of current price |
| 3 | Daily volatility | ≥ 3.0% | TradingView-style true-range / low over last 24h |
| 4 | 24h volume change | > 0% | volume of last 12h vs prior 12h (48 15m-bars each side) |
Results are sorted by 24h volume (highest first) and written to screener_results.txt. The screener runs three times a day: 07:30 (daily/AM), 06:30 (PM), 21:30 (AM). The DMA job uses the passes as the SCREENED portfolio universe, and the top-conviction subset becomes the TOP portfolio.
Note: the 2% ATR threshold is calibrated for 15-minute klines. Applying it to daily klines would inflate pass counts 3–8× — always use the same 15m window as the live screener.
4. When are trades entered?
Theses are produced at ~08:00 Sydney; the sim does NOT auto-enter at that moment. The simulator treats each thesis as a standing order for its day and fills it according to the entry model being tested:
| Entry model | What it does | When it fills |
|---|---|---|
| limit-low / limit-low±1% / ±2% | Limit buy at the base-range low edge (pullback entry) | The first 15m candle whose low touches the limit (± tolerance); fill at the actual touched price |
| limit-mid (± tol) | Limit at the base-range midpoint | First 15m candle that crosses the midpoint |
| limit-high / ±1% / ±2% | Limit at the base-range high edge (breakout entry) | First 15m candle whose high touches the limit (± tolerance) |
| market | Buy at the day's open | The first 15m candle of the thesis day (00:00 UTC / 10:00 Sydney) |
Every fill uses the actual intraday traded price (never a fabricated level) and is time-stamped to the 15m candle in which it happened. Trades that never touch their level that day are not filled — the thesis is not force-entered. Exits are equally precise: the position closes at the R-multiple take-profit level (whichever of stop / target / 3-day time-stop / next-day rollover triggers first), so results are a faithful replication of real order mechanics — no lookahead, no take-profit inflation.
In practice most limit fills cluster at the start of the thesis day (00:00 UTC) simply because that is when price first reaches the level; the rest fill intraday whenever the level is actually touched. The day the thesis is published (08:00 Sydney) is the entry day — the order is considered live from that day forward, not from the prior close.
5. Positions, risk & exits (portfolio rules)
- Risk: 1% of current equity per trade; conviction multiplier ≥55 → 1.0×, 40–54 → 0.5×, LONG-CROWDED funding ≥0.03% → 0.5×.
- Position: notional = risk ÷ stop-distance, capped at 20% of equity, max leverage cap.
- Stop: thesis invalidation level. Take-profit: R-multiple (1R/1.5R/2R/3R) versus thesis target — whichever is closer in the trade direction.
- Exits: target, stop, 3-day time stop, or rollover (new thesis for a held coin closes the old at current level).
- Fees & funding: Bybit taker 0.055% / maker 0.02%; Hyperliquid taker 0.045% / maker 0.01%. Funding accrued per exchange interval (Bybit 8h, HL 1h).
About
Theses Portfolio paper-trades the Daily Market Analysis (DMA) theses as two $1,000 portfolios (TOP and SCREENED) across a 10-entry-model x 4-R-scenario grid on Hyperliquid + Bybit perpetual futures.
Trade Log Columns
| Column | Description |
|---|---|
| Date | Trade close date |
| PF | Portfolio (TOP / SCREENED) |
| Entry | Entry model (limit-low/mid/high, market, ±% tolerance) |
| Dir | Trade direction |
| Coin | Symbol |
| Entry | Actual fill price |
| Stop | Stop-loss price (from thesis invalidation level) |
| Target | R-multiple take-profit price |
| Exit | Actual exit price |
| Reason | Exit reason — target / stop / time / rollover |
| Net | PnL after fees and funding |
| R | R-multiple achieved (net / actual risk) |
| Size | Position notional |
Scorecard (Daily Market Analysis Log)
The Daily Market Analysis Log database tracks two scorecard metrics, each split by exchange:
- Directional Hit-Rate — was the betting direction correct? LONG = price >= refPrice, SHORT = price <= refPrice
- Thesis Frame Hit-Rate — did the full scenario framework hold? LONG = price >= base rangeLo, SHORT = price <= base rangeHi
Each split into: Overall (all coins), HL (Hyperliquid snapshot prices), Bybit (Bybit levels prices). Bybit-only screener coins are now included.
Data source: portfolio.json · Updated daily ~09:00 Sydney. Every closed trade now carries its stop-loss and take-profit target — both the Trades tab and Rankings drill-down charts show entry, stop, target, and exit lines.