Documentation Index
Fetch the complete documentation index at: https://mintlify.com/backtest-kit/backtest-ollama-crontab/llms.txt
Use this file to discover all available pages before exploring further.
The packages/core/assets/REPORT_EN.md file contains a full statistical analysis of a public crypto Telegram channel — Crypto Yoda Channel — based on a complete message export covering April 2025 through April 2026. The analysis is not anecdotal: it is grounded in machine-parsed signal data (signals.jsonl), published result posts (proof.jsonl), and entry-level trade records (entry.jsonl). Its findings directly motivated the two risk rules embedded in the Ollama LLM system prompt — and explain why those rules improve P&L on the January 2026 backtest.
The full report is stored in the repository in two languages: packages/core/assets/REPORT_EN.md (English) and packages/core/assets/REPORT_RU.md (Russian).
Dataset
| Field | Value |
|---|
| Total signals published | 416 |
| Total results published | 191 |
| Coverage period | April 2025 – April 2026 |
| Raw data files | signals.jsonl, proof.jsonl, entry.jsonl |
The 416 signals break down into 226 LONG signals and 188 SHORT signals (2 signals are unclassified). Of the 191 published results, 113 are for LONG positions and 70 are for SHORT positions — a coverage gap that is itself a significant finding (see the next section).
The SHORT Signal Problem
The core structural finding of the analysis is that every SHORT signal in the dataset has a mathematically negative expected value at the channel’s recommended 25× leverage — not as a statistical tendency, but as an arithmetic certainty.
The channel publishes SHORT signals in this format (example from Jan 06, 2026):
SIGNAL #TRX/USDT
Open SHORT in the zone $0.2898 – $0.2930 with 25x leverage.
Take-profit targets:
TP1: $0.2875
TP2: $0.2864
TP3: $0.2838
TP4: $0.2809
TP5: $0.2765
STOP-LOSS: $0.3027
The math for this signal:
| Parameter | Value |
|---|
| Average entry price | $0.2914 |
| Stop-loss | $0.3027 |
| Spot risk | +3.88% |
| Target TP1 | $0.2875 (−1.34%) |
| Risk/Reward to TP1 | 0.345 : 1 |
| Risk at 25× leverage | 96.9% of deposit |
To close at TP1 the price must fall 1.34%. If price rises 3.88% instead — which is precisely what the stop-loss marks — the entire deposit is liquidated. Because the signal is placed at the bottom of a trading range with thin liquidity above, price rising to the stop-loss level is not an improbable scenario. It is stop-hunt territory.
Across all 65 parsed SHORT signals in the dataset:
| Metric | Value |
|---|
| Average spot risk | 4.24% |
| Average R:R to TP1 | 0.375 : 1 |
| Average risk at 25× leverage | 106% of deposit |
| Minimum R:R | 0.333 |
| Maximum R:R | 0.833 |
Not a single one of the 65 SHORT signals has an R:R above 1:1. With an average R:R of 0.375, the expected value of every SHORT position is negative regardless of entry timing accuracy.
The five worst signals by R:R, shown for context:
| Date (UTC) | Ticker | Spot risk | R:R | Risk at 25× |
|---|
| 2026-01-28T14:18:01Z | POL | 3.88% | 0.333 | 96.9% |
| 2025-12-15T13:05:04Z | SOL | 3.87% | 0.340 | 96.8% |
| 2026-03-04T08:40:41Z | POL | 3.84% | 0.342 | 96.0% |
| 2026-03-02T14:20:28Z | POL | 3.89% | 0.342 | 97.1% |
| 2026-01-09T14:10:57Z | NEAR | 3.84% | 0.344 | 96.0% |
Selective Result Reporting
After SHORT subscribers are stopped out, the channel selectively publishes only outcome posts for winning trades, creating a survivorship-biased record in the public feed.
Coverage by direction
| Direction | Signals sent | Results published | Coverage |
|---|
| LONG | 226 | 113 | 50.0% |
| SHORT | 188 | 70 | 37.2% |
Only 3–4 of every 10 SHORT signals receive a result post. For LONGs, every second one does.
Within a 5-day window after each signal:
| Direction | With a published result |
|---|
| LONG | 124 / 226 (54.9%) |
| SHORT | 29 / 65 (44.6%) |
Artificially inflated SHORT profits
If SHORTs are reported only when they win — while LONGs are reported far more consistently — the average published profit for SHORTs should appear inflated relative to reality. The data confirms this:
| Metric | LONG | SHORT | Delta |
|---|
| Results published | 113 | 70 | — |
| Mean profit | 51.85% | 55.09% | +3.24% |
| Median profit | 47.92% | 53.51% | +5.59% |
| Avg take-profit targets hit | 2.93 | 3.17 | +0.24 |
| All targets hit | 20.4% | 35.7% | +15.3% |
Profit distribution across ranges:
| Range | LONG | SHORT |
|---|
| 0–20% | 5 | 1 |
| 20–40% | 43 | 24 |
| 40–60% | 33 | 19 |
| 60–80% | 18 | 22 |
| 80–100% | 6 | 1 |
| 100%+ | 8 | 3 |
SHORT results are heavily concentrated in the 60–80% bucket — 22 cases versus 18 for LONGs, even though LONGs have 1.6× more published results overall. This is the direct statistical signature of cherry-picking: only the trades where price moved far enough to reach high targets get a result post.
Several tickers have published LONG results but zero published SHORT results: DOGE, IOTA, LTC, PUMP, RIVER, TAO, TRUMP, XAUT, ZEC. BTC has a single published SHORT result at 7.6% profit — the lowest of all tickers — against 9 LONG results averaging 43.4%.
The SHORT → LONG Pattern
Signal pair analysis identified a recurring pattern across the dataset: a SHORT signal is published near range lows with the stop-loss placed above thin liquidity; after the stop-loss level is reached, a LONG signal on the same ticker appears with an entry zone close to where the short’s stop triggered. The full set of 17 documented pairs is stored in proof.jsonl.
Selection criteria: a LONG signal on the same ticker appears within 7 days of the SHORT, and the midpoint of the long entry zone is within 3% of the short’s stop-loss level.
All 17 pairs
| SHORT date (UTC) | Ticker | Short SL | Long entry | SL/entry gap | Hours later | Risk at 25× |
|---|
| 2025-12-25T03:01Z | NEAR | $1.560 | 1.572–1.589 | 1.31% | 100.0 | 95.7% |
| 2025-12-25T14:06Z | SOL | $127.00 | 122.9–124.2 | 2.72% | 95.0 | 97.1% |
| 2025-12-26T18:09Z | TRX | $0.2888 | 0.2811–0.2842 | 2.13% | 62.9 | 96.2% |
| 2025-12-29T06:51Z | HYPE | $26.36 | 25.52–25.80 | 2.66% | 30.3 | 96.5% |
| 2026-01-09T14:06Z | TRX | $0.3068 | 0.3027–0.3061 | 0.78% | 142.1 | 96.0% |
| 2026-01-12T13:08Z | TRX | $0.3099 | 0.3027–0.3061 | 1.77% | 71.0 | 95.9% |
| 2026-01-13T11:05Z | TRX | $0.3124 | 0.3027–0.3061 | 2.56% | 49.1 | 96.8% |
| 2026-02-19T22:59Z | HYPE | $30.31 | 29.34–29.67 | 2.66% | 15.5 | 96.8% |
| 2026-02-20T18:25Z | POL | $0.1100 | 0.1107–0.1119 | 1.18% | 96.7 | 95.6% |
| 2026-02-24T20:01Z | HYPE | $28.30 | 28.08–28.39 | 0.23% | 19.2 | 96.3% |
| 2026-02-26T12:06Z | POL | $0.1143 | 0.1148–0.1161 | 1.01% | 22.8 | 95.4% |
| 2026-02-27T12:08Z | SOL | $86.94 | 88.15–89.13 | 1.96% | 75.9 | 95.8% |
| 2026-03-19T16:05Z | TRX | $0.3120 | 0.3022–0.3055 | 2.61% | 20.3 | 96.1% |
| 2026-03-23T14:03Z | HYPE | $40.48 | 39.11–39.54 | 2.85% | 28.5 | 96.5% |
| 2026-03-24T12:34Z | TRX | $0.3229 | 0.3151–0.3186 | 1.87% | 147.7 | 95.7% |
| 2026-04-09T16:03Z | PENGU | $0.006801 | 0.006859–0.006935 | 1.41% | 122.0 | 96.2% |
| 2026-04-13T02:01Z | HYPE | $43.56 | 43.00–44.60 | 0.55% | 34.0 | 95.9% |
The mechanism in each case: the SHORT stop-loss is triggered as price rises. The LONG is then published from precisely the level where short subscribers’ stops have already executed. None of the short results are published; the long result is. The gap between the short’s stop-loss and the long’s entry midpoint ranges from 0.23% to 2.85% — in many cases, essentially zero.
Three most telling cases
Case 1 — HYPE, February 2026 (gap 0.23%, 19 hours)
A SHORT on HYPE is opened in the zone 27.1–27.4 with stop-loss at 28.30(R:R0.352,96.328.08–28.39.Thelongentrymidpoint(28.24) is 0.23% away from the short stop-loss (28.30).Thelong′sownstop−lossissetat27.15 — below the short’s entry zone — implicitly acknowledging that short subscribers are already out and the position has now reversed. The short result is never published. The long result is.
Case 2 — TRX, January 2026 (three consecutive SHORTs, then one LONG)
Three SHORT signals on TRX are published between January 9–13, 2026, all targeting the same stop region around $0.31. Then a single LONG follows:
| Date (UTC) | Direction | Entry zone | Stop-loss | Result published |
|---|
| 2026-01-09T14:06Z | SHORT | 0.2938–0.2971 | $0.3068 | No |
| 2026-01-12T13:08Z | SHORT | 0.2968–0.3001 | $0.3099 | No |
| 2026-01-13T11:05Z | SHORT | 0.2991–0.3024 | $0.3124 | No |
| 2026-01-15T12:10Z | LONG | 0.3027–0.3061 | $0.2927 | Yes ✅ |
Three sequential shorts are stopped out as price climbs to the $0.31 range. The long opens from exactly the level where all three stop-losses were triggered. None of the short results are published. The long result is. This is also the TRX cluster that produced the LLM’s vetoed signals in the January 2026 backtest.
Case 3 — HYPE, April 2026 (gap 0.55%, 34 hours)
A SHORT on HYPE is opened at 41.72–42.18 with stop-loss at 43.56(R:R0.354,95.943.00–44.60,withamidpointof43.80 — 0.55% above the short’s stop-loss, meaning the long is only opened after short subscribers are certainly already liquidated. The long post also includes Signal risk: 6/10 and reduced 10× leverage, signalling the channel has adjusted its presentation while keeping the same structural pattern.
Why the LLM Rules Work
The two risk rules in packages/core/src/logic/outline/risk.outline.ts are direct responses to the patterns documented in this analysis.
Rule 1 — sleeping-coin SHORT (avgRangePct < 0.07%) targets the stop-hunt mechanism directly. SHORT signals placed at range lows on low-volatility assets (TRX, NEAR) depend on price remaining compressed. When avgRangePct is below the threshold, the candle range is too thin for meaningful directional movement toward targets — but a small upward liquidity sweep is enough to hit the wide stop-loss. Vetoing SHORTs on sleeping coins is structurally equivalent to refusing to play a game whose payoff table is always negative.
Rule 2 — knife-catching LONG (momentum24hPct < -1%) addresses the LONG signals in the SHORT→LONG pairs. When a SHORT is stopped out as price rises, the channel publishes a LONG from that level — but in many of the 17 documented cases, the broader 24-hour momentum is negative because price has been falling over the prior day before reversing to hit the short stops. A LONG entered while momentum24hPct is below −1% is a momentum-against-trend entry, which the rule flags for skipping.
Together, the two rules systematically target signals that the channel’s own structural behavior reveals are most likely to lose.
Business Model
The report identifies three compounding mechanisms that make the scheme financially viable for the channel operator without requiring any market-moving capability:
-
Survivorship bias. Subscribers see only profitable trades in their feed. Losing shorts disappear without a result post. This constructs the illusion of a high-hit-rate strategy from a feed that is — by design — only the winning half of a negative-EV signal set.
-
Exchange referral commission. Every subscriber liquidation generates a fee for the exchange. The channel operator receives a percentage of that fee as a referral partner — the referral link appears in every signal post alongside the VIP channel invite. Each 25× stop-out is both a loss for the subscriber and a revenue event for the operator.
-
VIP funnel. A subscriber loses money on a short, observes that longs in the public feed appear to be working, concludes they entered at the wrong price, and pays for VIP access to receive “more precise” signals. The cycle repeats at a higher price point, with the same underlying signal structure.
The analysis covers one specific public channel over a twelve-month period. The documented patterns — negative-EV SHORTs, selective result reporting, and the SHORT→LONG pair structure — are presented as findings about this channel’s signal history, not as universal claims about all Telegram trading channels.