
2026 Year-to-Date: 121 Trades, +19.99R, the Year SkyAnalyst Found Its Cadence
121 trades since Jan 12 inception, 70 winners, 51 losers, +19.99R net at TP1 baseline. A $100,000 simulated account at 2% risk sits at $139,996 static, $145,328
How we got here
The year's tempo visualised. Three trades in January. Twenty-one in February. Forty-two in March. Twenty-four in April. Seven in the first week of May.
The editorial record
Before the trade, meet the system.
SkyAnalyst is not one AI trader. It is four specialist agents — each with its own data pipeline, each maintaining state between evaluations, and each required to agree before a position is sized. They don’t chat in prose. They write structured messages to a shared state object that each reads on every evaluation cycle.
One hundred and twenty-one trades since system inception on January 12, 2026. Seventy winners, fifty-one losers, +19.99R net on the TP1 baseline. That is the year-to-date scorecard through May 31, 2026 across the canonical-instrument set, a 57.9 percent win rate with an average winner of +0.93R against an average loser of -0.91R. A $100,000 simulated account at 2% risk per trade sits at $139,996 (static) or $145,328 (compounded) — a +39.99 percent year-to-date return on the static figure, or +45.33 percent on the compounded figure that reinvests risk against the running balance. The story this year tells in 121 trades is not a single dramatic print. It is the story of a system that launched soft, ramped through staged model rollouts, consolidated by end-March on a primary execution model, and settled into a stable cadence through April and May. The architecture did not change. The Risk Agent's fixed-R sizing rule did not change. The Trend Agent's confluence floor did not change. The Macro Agent's veto logic did not change. What changed was the cadence — which models earned execution time, which instruments became the desk's reliable edge, and how the team learned to read the same confluence cards across different model snapshots. This is the article we want a reader evaluating SkyAnalyst to read first. Every trade in the trade index below is one we published in real time. The +19.99R figure is not a backtest or a curated subset; it is the arithmetic of every master-automation trade the system has logged since launch. The simulated balance is the same arithmetic applied to a standard 2 percent risk policy on a $100,000 base. The compounded figure shows what the same trade ledger produces when risk-per-trade scales with the running balance instead of staying fixed against the original $100,000 — a meaningful gap at 121 trades, and a wider gap if the year continues at the same hit rate.
Act 1: January — soft launch on three trades
Since launch on January 12, 2026, the system spent the back half of January in internal validation rather than published volume. Only three trades cleared the published gate in January, all on the Claude side under the pre-rebrand Opus 4.6 snapshot. The January contribution was +3.02R on a 100 percent win rate across the three entries — directionally encouraging but explicitly too small a sample to read. January closed at +3.02R YTD across 3 trades, the simulated static balance sitting at $106,040. The framing for January is not "incomplete month" but "since launch on Jan 12" — the inception date is the start of the record, not a gap.
Act 2: February — the first real ramp
February doubled down on volume. Twenty-four trades cleared the published gate that month, the first real sample-size month of the year. Claude carried more of the entries early; the GPT-side lineage (running pre-rebrand snapshots: c1/openai/gpt-5/v-20250930 attribution on Claude-side automations during the legacy era) began to appear on the trade index as the architecture's evaluation logic started routing entries across multiple model families on the same instruments. February contributed +6.64R for a 27-trade YTD position at +9.66R. The simulated static balance climbed from $106,040 at January-end to $119,320 at February-end, a meaningful gain on the first real ramp month. Win-of-the-month-class trades included a US30 long on Feb 11 for +2.64R — still the year's largest single GPT-lineage print and the YTD result reveal.
Act 3: March — full force and the Claude consolidation
March was the month every model family ran live in production, and it was the month the architecture's design choice to allow multiple model snapshots to compete on the same setups produced its clearest stress test. Thirty-five trades cleared the published gate, the highest single-month volume of the year through May. March's net was -1.02R — a slightly red month against a roughly flat distribution — but the more important read on March is structural: by the end of the month, the team had consolidated Claude Opus 4.7 as the desk's primary execution model. The analysis held the most consistent discipline across the regime shifts March's tape produced. From that point forward, the published Claude-vs-GPT comparison runs on cleaner attribution; the early-March D-grade GPT-lineage entries running pre-rebrand snapshots gradually retired in favor of the formal AI Trader lineup that activated May 18. March closed at +8.64R YTD across 62 trades; the simulated static balance held at $117,280 — slightly below February-end despite the higher trade count, the visible signature of a month the architecture worked through chop without giving back the February ramp.
Act 4: April and May — settled cadence on +11.32R combined
The closing two months ran on stable cadence. April produced 18 trades for +2.99R, a quiet positive month on the published expectancy band. April closed at +11.63R YTD across 80 trades; the simulated static balance climbed to $123,260. May produced 47 trades for +8.33R, the heaviest single-month contribution of the year. May closed at +19.99R YTD across 121 trades; the simulated static balance hit $139,996. The architecture did not change between April and May; the cadence did. April's flatter month and May's stronger month are two adjacent prints on the same distribution, the same Risk Agent sizing the same fixed-R policy across the same confluence floor. Over the four-act arc, the year tells the story of a system that launched on three honest trades, ramped through a 24-trade February, took its lumps and consolidated on Claude in a 35-trade March, and settled into a 65-trade April-May cadence that banked the majority of the YTD print.
Every trade the system took.
| Date | Time | Instrument | Dir | Model | Setup | Grade | R | $ Sim | Result | Details |
|---|---|---|---|---|---|---|---|---|---|---|
| Jan 12 | 15:22 UTC | NAS100 | Long | GPT-5 | Setup 2 · Breakout Continuation (Long) | D | +0.48R(TP1) | +$967(TP1) | TP2 hit | Read case → |
| Jan 15 | 15:12 UTC | NAS100 | Long | GPT-5 | Pullback Long (Primary) | D | +0.78R(TP1) | +$1,564(TP1) | TP1 hit | Read case → |
| Jan 20 | 15:43 UTC | US30 | Short | GPT-5 | Short the bounce (Primary) | D | +1.76R(TP1) | +$3,514(TP1) | TP3 hit | Read case → |
| Feb 4 | 16:35 UTC | US30 | Long | GPT-5 | US30 (Dow) LONG | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 9 | 15:02 UTC | US30 | Long | GPT-5 | US30 LONG (Pullback-to-support) | C+ | +1.31R(TP1) | +$2,622(TP1) | TP2 hit | Read case → |
| Feb 10 | 16:01 UTC | US30 | Long | GPT-5 | US30 LONG (Pullback + VWAP/EMA Confluence) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 10 | 16:31 UTC | US30 | Long | GPT-5 | US30 LONG (Pullback to VWAP / 61.8%) | C+ | +2.30R(TP1) | +$4,593(TP1) | TP1 hit | Read case → |
| Feb 11 | 16:02 UTC | US30 | Long | GPT-5 | US30 Responsive Long — Intraday Support | C+ | +2.64R(TP1) | +$5,273(TP1) | TP1 hit · ★ Trade of the week | Read case → |
| Feb 13 | 15:02 UTC | US30 | Short | GPT-5 | US30 (Dow) SHORT | C+ | +0.57R(TP1) | +$1,150(TP1) | TP1 hit | Read case → |
| Feb 13 | 15:24 UTC | NAS100 | Short | GPT-5 | NAS100 Short (Sell the Rip) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 13 | 15:42 UTC | US500 | Short | GPT-5 | Setup #1 · US500 SHORT (fade into resistance) | C+ | +0.74R(TP1) | +$1,470(TP1) | TP1 hit | Read case → |
| Feb 13 | 15:44 UTC | US30 | Short | GPT-5 | US30 SHORT (fade into resistance) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 13 | 16:37 UTC | US500 | Long | GPT-5 | US500 LONG (Momentum continuation) | C+ | +0.55R(TP1) | +$1,095(TP1) | TP2 hit | Read case → |
| Feb 17 | 16:35 UTC | NAS100 | Long | GPT-5 | Setup #1 · NAS100 LONG (pullback-to-go) | C+ | +0.62R(TP1) | +$1,248(TP1) | TP1 hit | Read case → |
| Feb 17 | 16:35 UTC | US30 | Long | GPT-5 | Setup #1 · US30 LONG (pro-trend intraday) | C+ | +0.43R(TP1) | +$855(TP1) | TP1 hit | Read case → |
| Feb 19 | 15:02 UTC | NAS100 | Short | GPT-5 | Setup #1 · NAS100 Short (Continuation) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 19 | 15:32 UTC | US30 | Short | GPT-5 | SHORT — Sell the VWAP/EMA Fade | C+ | +1.08R(TP1) | +$2,151(TP1) | TP3 hit | Read case → |
| Feb 20 | 17:02 UTC | US30 | Short | GPT-5 | Setup #1 · US30 SHORT (pullback-to-supply) | C+ | +0.61R(TP1) | +$1,213(TP1) | TP3 hit | Read case → |
| Feb 24 | 15:01 UTC | NAS100 | Long | GPT-5 | Setup #1 · NAS100 LONG (pullback buy) | C+ | +0.60R(TP1) | +$1,196(TP1) | TP3 hit | Read case → |
| Feb 24 | 15:33 UTC | US30 | Short | GPT-5 | US30 SHORT (mean-revert at resistance) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 24 | 16:41 UTC | NAS100 | Long | GPT-5 | Buy-the-dip into reclaimed VWAP/EMAs | C+ | +0.69R(TP1) | +$1,384(TP1) | TP3 hit | Read case → |
| Feb 25 | 15:05 UTC | NAS100 | Long | GPT-5 | NAS100 LONG (Breakout+Retest) | C+ | +0.60R(TP1) | +$1,191(TP1) | TP2 hit | Read case → |
| Feb 26 | 15:49 UTC | NAS100 | Short | GPT-5 | Setup #1 · NAS100 SHORT (trend-continuation on weak retest) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 26 | 16:11 UTC | US30 | Long | GPT-5 | US30 LONG (Buy-the-dip) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Feb 27 | 16:13 UTC | US500 | Short | GPT-5 | US500 Intraday Fade into Resistance | B | +1.19R(TP1) | +$2,375(TP1) | TP3 hit | Read case → |
| Feb 27 | 16:33 UTC | US30 | Short | GPT-5 | Setup #1 — US30 SHORT (Primary Fade) | C+ | +1.73R(TP1) | +$3,462(TP1) | TP3 hit | Read case → |
| Feb 27 | 16:39 UTC | US500 | Long | GPT-5 | US500 LONG (pullback buy) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 2 | 16:18 UTC | US30 | Short | GPT-5 | Setup #1 · SHORT (Primary) | B | +1.20R(TP1) | +$2,407(TP1) | TP1 hit | Read case → |
| Mar 3 | 15:36 UTC | US500 | Short | GPT-5 | SHORT: Breakdown-Pullback Continuation | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 4 | 16:19 UTC | US500 | Long | GPT-5 | Setup #1 · LONG — Buy the NY pullback | C+ | +1.25R(TP1) | +$2,510(TP1) | TP3 hit | Read case → |
| Mar 4 | 16:47 UTC | NAS100 | Long | GPT-5 | Setup #2 · NAS100 LONG (breakout continuation) | C+ | +0.93R(TP1) | +$1,851(TP1) | TP1 hit | Read case → |
| Mar 5 | 15:04 UTC | US500 | Long | GPT-5 | US500 LONG (buy-dip VWAP/Fib confluence) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 10 | 14:25 UTC | US30 | Short | GPT-5 | Sell rally into VWAP/supply (Primary) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 11 | 14:08 UTC | US500 | Long | GPT-5 | US500 Long (Pullback & Go) | B | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 11 | 14:20 UTC | NAS100 | Long | GPT-5 | NAS100 LONG (Continuation) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 13 | 14:40 UTC | NAS100 | Long | GPT-5 | NAS100 LONG (buy-the-dip into support) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 16 | 14:59 UTC | US500 | Long | GPT-5 | LONG pullback (buy-the-dip) | B | +1.50R(TP1) | +$3,000(TP1) | TP1 hit | Read case → |
| Mar 17 | 14:10 UTC | US500 | Long | GPT-5.4 | US500 LONG — Pullback buy into prior breakout support | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 17 | 14:31 UTC | NAS100 | Long | GPT-5.4 | NAS100 LONG | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 17 | 14:36 UTC | US30 | Long | GPT-5.4 | US30 LONG | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 18 | 14:41 UTC | EURUSD | Short | GPT-5.4 | EURUSD SHORT | C+ | +0.37R(TP1) | +$742(TP1) | TP3 hit | Read case → |
| Mar 18 | 15:50 UTC | EURUSD | Short | GPT-5.4 | EURUSD SHORT rally fade into VWAP/resistance | C+ | +0.75R(TP1) | +$1,506(TP1) | TP3 hit | Read case → |
| Mar 19 | 14:50 UTC | NAS100 | Short | GPT-5.4 | NAS100 SHORT | B | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 19 | 15:10 UTC | US500 | Short | GPT-5.4 | US500 SHORT - Failed bounce into VWAP / prior-day-low resistance | B | +1.18R(TP1) | +$2,360(TP1) | TP1 hit | Read case → |
| Mar 20 | 15:13 UTC | US30 | Short | GPT-5.4 | US30 SHORT (pullback failure into resistance) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 20 | 15:28 UTC | EURUSD | Short | GPT-5.4 | EURUSD SHORT retracement into resistance | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 23 | 14:34 UTC | NAS100 | Long | GPT-5.4 | NAS100 Tactical Long Pullback Continuation | C+ | +0.25R(TP1) | +$493(TP1) | TP1 hit | Read case → |
| Mar 23 | 14:36 UTC | US500 | Long | GPT-5.4 | US500 Pullback Long | B | +0.54R(TP1) | +$1,087(TP1) | TP1 hit | Read case → |
| Mar 24 | 14:40 UTC | US500 | Short | GPT-5.4 | US500 VWAP Rejection Short | B | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 24 | 14:53 UTC | US30 | Short | GPT-5.4 | US30 Short - Failed Push Into Resistance | B+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 24 | 14:54 UTC | NAS100 | Short | GPT-5.4 | NAS100 VWAP Rejection Short | B | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Mar 25 | 14:11 UTC | NAS100 | Short | GPT-5.4 | NAS100 VWAP Rejection Short | C+ | +0.70R(TP1) | +$1,401(TP1) | TP3 hit | Read case → |
| Mar 25 | 14:14 UTC | US500 | Short | GPT-5.4 | Short VWAP / Prior Close Rejection | C+ | +0.97R(TP1) | +$1,935(TP1) | TP3 hit | Read case → |
| Mar 26 | 14:16 UTC | US500 | Short | Claude Opus 4.7 | US500 Short Fade of Counter-Trend Squeeze | C+ | +0.99R(TP1) | +$1,980(TP1) | TP3 hit | Read case → |
| Mar 26 | 14:40 UTC | EURUSD | Short | Claude Opus 4.7 | EURUSD SHORT (Sell the Rally to VWAP) | C+ | +1.09R(TP1) | +$2,186(TP1) | TP3 hit | Read case → |
| Mar 27 | 14:17 UTC | US500 | Short | Claude Opus 4.7 | US500 SHORT — Pullback to Opening Range / Broken Support | C+ | +1.28R(TP1) | +$2,563(TP1) | TP3 hit | Read case → |
| Mar 31 | 15:39 UTC | EURUSD | Long | Claude Opus 4.7 | Bullish Pullback Long | C+ | +0.75R(TP1) | +$1,500(TP1) | TP3 hit | Read case → |
| Apr 1 | 14:37 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 LONG — Pullback to 5m Dynamic Support | C+ | +0.72R(TP1) | +$1,440(TP1) | TP2 hit | Read case → |
| Apr 2 | 15:57 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 Pullback Long at 78.6% Fib / Structural Support | C+ | +1.01R(TP1) | +$2,020(TP1) | TP2 hit | Read case → |
| Apr 8 | 14:56 UTC | EURUSD | Long | Claude Opus 4.7 | EURUSD VWAP/session-low mean-reversion long | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 10 | 14:48 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 Long Pullback Buy | C+ | +0.59R(TP1) | +$1,179(TP1) | TP1 hit | Read case → |
| Apr 13 | 14:21 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 Bullish Pullback Long | C+ | +0.71R(TP1) | +$1,416(TP1) | TP3 hit | Read case → |
| Apr 13 | 14:49 UTC | US30 | Short | Claude Opus 4.7 | Short Rejection at 47,712-47,764 Resistance Cluster | C+ | +1.0R(TP1) | +$2,000(TP1) | TP1 hit | Read case → |
| Apr 13 | 15:20 UTC | EURUSD | Long | Claude Opus 4.7 | EURUSD Pullback Buy at Structure | C+ | +1.15R(TP1) | +$2,299(TP1) | TP3 hit | Read case → |
| Apr 14 | 15:27 UTC | EURUSD | Long | Claude Opus 4.7 | Buy EURUSD on Pullback to Session Support | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 16 | 14:31 UTC | NAS100 | Short | Claude Opus 4.7 | VWAP Rejection Short | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 17 | 14:29 UTC | EURUSD | Long | Claude Opus 4.7 | EURUSD Pullback Long | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 17 | 15:25 UTC | US30 | Long | Claude Opus 4.7 | Bullish Pullback to Micro-Support (Primary) | C+ | +1.53R(TP1) | +$3,060(TP1) | TP1 hit | Read case → |
| Apr 23 | 14:58 UTC | EURUSD | Short | Claude Opus 4.7 | Conditional Short EURUSD at Resistance Rejection | B | +1.67R(TP1) | +$3,333(TP1) | TP3 hit | Read case → |
| Apr 23 | 15:51 UTC | NAS100 | Long | Claude Opus 4.7 | Conditional Pullback Long at VWAP/Structure Zone | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 24 | 14:05 UTC | US500 | Short | Claude Opus 4.7 | VWAP Rejection / Opening Range Breakdown Short | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 27 | 14:34 UTC | US30 | Long | Claude Opus 4.7 | US30 Pullback Long to VWAP/Fib Confluence | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| Apr 28 | 15:02 UTC | US500 | Short | Claude Opus 4.7 | Bear Flag Breakdown / OR-Low Break | C+ | +0.78R(TP1) | +$1,558(TP1) | TP1 hit | Read case → |
| Apr 30 | 15:45 UTC | US500 | Long | Claude Opus 4.7 | VWAP/Prior Day High Pullback Long | C+ | +1.08R(TP1) | +$2,167(TP1) | TP2 hit | Read case → |
| May 1 | 14:36 UTC | NAS100 | Long | Claude Opus 4.7 | Pullback Long — Fibonacci/EMA9 Confluence | C+ | +1.38R(TP1) | +$2,753(TP1) | TP2 hit | Read case → |
| May 4 | 14:36 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 Long — VWAP Pullback Buy (NY AM Session) | C+ | +0.40R(TP1) | +$800(TP1) | TP1 hit | Read case → |
| May 4 | 15:03 UTC | EURUSD | Short | Claude Opus 4.7 | Short EURUSD — VWAP Rejection / Sell the Rip | C+ | +1.53R(TP1) | +$3,057(TP1) | TP2 hit | Read case → |
| May 5 | 15:14 UTC | US30 | Long | Claude Opus 4.7 | Bullish Continuation — OR Breakout & Retest | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 6 | 14:16 UTC | NAS100 | Long | Claude Opus 4.7 | VWAP + Fib 38.2% Continuation Long (PRIMARY) | C+ | +1.03R(TP1) | +$2,067(TP1) | TP2 hit | Read case → |
| May 6 | 14:29 UTC | EURUSD | Long | Claude Opus 4.7 | EURUSD Pullback Buy into Trend Continuation | C+ | +1.0R(TP1) | +$2,000(TP1) | TP2 hit | Read case → |
| May 7 | 15:21 UTC | NAS100 | Long | Claude Opus 4.7 | NAS100 Pullback Long into Fibonacci/EMA Support | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 12 | 14:19 UTC | NAS100 | Short | Claude Opus 4.7 | VWAP Rejection Short | C+ | +1.46R(TP1) | +$2,912(TP1) | TP3 hit | Read case → |
| May 12 | 15:42 UTC | US30 | Short | Claude Opus 4.7 | Sell the Pullback into OR High / 5m Resistance | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 12 | 15:44 UTC | NAS100 | Short | Claude Opus 4.7 | NAS100 Short on Pullback to Resistance Zone | C+ | +0.70R(TP1) | +$1,397(TP1) | TP2 hit | Read case → |
| May 13 | 14:07 UTC | US500 | Short | GPT-5.5 | Short pullback into 7400-7406 resistance | D | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 13 | 14:15 UTC | US30 | Short | Claude Opus 4.7 | US30 Short - Sell the Rip at Trend Resistance / Daily Pivot Confluence | C+ | +0.83R(TP1) | +$1,654(TP1) | TP1 hit | Read case → |
| May 13 | 14:23 UTC | EURUSD | Short | GPT-5.5 | EURUSD Short: VWAP / Fib Rejection Fade | D | +0.85R(TP1) | +$1,700(TP1) | TP3 hit | Read case → |
| May 13 | 14:25 UTC | US30 | Short | GPT-5.5 | Short Pullback into OR High / Daily Pivot Resistance | D | +1.18R(TP1) | +$2,355(TP1) | TP1 hit | Read case → |
| May 13 | 14:39 UTC | NAS100 | Short | GPT-5.5 | NAS100 Short Pullback / VWAP-Rejection Continuation | D | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 13 | 14:43 UTC | NAS100 | Short | Claude Opus 4.7 | VWAP/Fib Rejection Short | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 13 | 15:31 UTC | GBPUSD | Short | GPT-5.5 | GBPUSD VWAP / Prior-Low Rejection Short | D | +1.09R(TP1) | +$2,187(TP1) | TP2 hit | Read case → |
| May 13 | 15:54 UTC | GBPUSD | Short | Claude Opus 4.7 | GBPUSD Short — Sell the Rally to VWAP/Resistance | C+ | +1.14R(TP1) | +$2,279(TP1) | TP1 hit | Read case → |
| May 13 | 16:02 UTC | USDJPY | Long | GPT-5.5 | Buy Pullback into VWAP / EMA / Fib Support Cluster | D | +0.43R(TP1) | +$867(TP1) | TP1 hit | Read case → |
| May 14 | 14:29 UTC | NAS100 | Long | GPT-5.5 | NAS100 Long: VWAP / Daily Pivot Pullback Continuation | D | +0.87R(TP1) | +$1,742(TP1) | TP2 hit | Read case → |
| May 15 | 14:15 UTC | USDJPY | Long | Claude Opus 4.7 | USDJPY Pullback Long | C+ | +0.39R(TP1) | +$783(TP1) | TP3 hit | Read case → |
| May 15 | 14:18 UTC | EURUSD | Short | Claude Opus 4.7 | EURUSD NY AM Session Short Pullback | C+ | +2.0R(TP1) | +$4,000(TP1) | TP1 hit | Read case → |
| May 15 | 14:22 UTC | GBPUSD | Short | Claude Opus 4.7 | VWAP Pullback Short (Primary) | B | +1.89R(TP1) | +$3,789(TP1) | TP1 hit | Read case → |
| May 18 | 14:52 UTC | USDJPY | Long | Claude Opus 4.7 | USDJPY NY AM Continuation Long | C+ | +0.47R(TP1) | +$940(TP1) | TP2 hit | Read case → |
| May 18 | 15:01 UTC | US30 | Long | Claude Opus 4.7 | US30 Pullback Continuation Long | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 18 | 15:42 UTC | NAS100 | Short | Claude Opus 4.7 | NAS100 NY AM Session Bearish Pullback Short | C+ | +0.84R(TP1) | +$1,670(TP1) | TP2 hit | Read case → |
| May 19 | 14:42 UTC | USDJPY | Long | Claude Opus 4.7 | USDJPY Long Pullback Entry | C+ | -0.50R(SL) | -$1,000(SL) | Stop hit | Read case → |
| May 19 | 14:45 UTC | US30 | Short | GPT-5.5 | US30 Short Continuation | C+ | +1.65R(TP1) | +$3,300(TP1) | TP2 hit | Read case → |
| May 19 | 15:09 UTC | GBPUSD | Short | GPT-5.5 | GBPUSD Short: Post-Data Second-Chance / Bearish Continuation | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 19 | 15:37 UTC | NAS100 | Short | GPT-5.5 | Pullback Failure Short at Prior-Day Low / 5m Fib Zone | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 20 | 14:14 UTC | USDJPY | Long | GPT-5.5 | USDJPY Long on Tokyo/London High Retest | B | -0.50R(SL) | -$1,000(SL) | Stop hit | Read case → |
| May 20 | 14:39 UTC | EURUSD | Short | Claude Opus 4.7 | EURUSD Short - Fade Session High Rally into Resistance | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 20 | 15:14 UTC | US500 | Long | GPT-5.5 | Long Pullback / Retest Continuation | C+ | +0.94R(TP1) | +$1,875(TP1) | TP2 hit | Read case → |
| May 21 | 14:35 UTC | USDJPY | Long | GPT-5.5 | Buy-the-Dip Continuation Long | B | -0.50R(SL) | -$1,000(SL) | Stop hit | Read case → |
| May 21 | 15:42 UTC | NAS100 | Short | Claude Opus 4.7 | VWAP/EMA9 Rejection Short (NY AM) | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 22 | 14:05 UTC | US500 | Long | Claude Opus 4.7 | VWAP / Breakout Retest Long | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 22 | 14:05 UTC | USDJPY | Long | GPT-5.5 | USDJPY Conditional Breakout-Retest Long Above Tokyo/London High | C+ | -0.50R(SL) | -$1,000(SL) | Stop hit | Read case → |
| May 22 | 14:38 UTC | US30 | Long | GPT-5.5 | US30 Long Pullback Continuation from 5m EMA/Fib Support | C+ | +0.59R(TP1) | +$1,170(TP1) | TP3 hit | Read case → |
| May 22 | 15:03 UTC | US500 | Long | GPT-5.5 | Conditional Long Reclaim / Continuation | C+ | +1.15R(TP1) | +$2,293(TP1) | TP1 hit | Read case → |
| May 22 | 15:11 UTC | EURUSD | Short | GPT-5.5 | EURUSD Pullback Short into VWAP / Fib Resistance | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 22 | 15:38 UTC | GBPUSD | Long | Claude Opus 4.7 | GBPUSD Long Continuation Pullback | C+ | +0.56R(TP1) | +$1,115(TP1) | TP3 hit | Read case → |
| May 26 | 14:05 UTC | NAS100 | Long | Claude Opus 4.7 | Breakout Retest Long | C+ | +0.78R(TP1) | +$1,563(TP1) | TP1 hit | Read case → |
| May 26 | 14:07 UTC | GBPUSD | Short | GPT-5.5 | GBPUSD Post-Data Pullback / Failed Retest Short | C+ | +0.63R(TP1) | +$1,268(TP1) | TP3 hit | Read case → |
| May 26 | 14:32 UTC | USDJPY | Long | GPT-5.5 | USDJPY Conditional Pullback Long | C+ | +0.57R(TP1) | +$1,140(TP1) | TP3 hit | Read case → |
| May 27 | 14:42 UTC | US30 | Long | Claude Opus 4.7 | US30 Long Pullback to Broken Resistance | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 27 | 14:42 UTC | EURUSD | Long | GPT-5.5 | EURUSD Long Pullback Continuation | B | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
| May 28 | 14:36 UTC | US30 | Short | GPT-5.5 | Short Failed Reclaim of OR High / VWAP | C+ | -1.0R(SL) | -$2,000(SL) | Stop hit | Read case → |
Dollar figures are simulated on a $100,000 account at 2% risk per trade. Actual subscriber P&L varies with account size. Past performance is not a guarantee of future results.
Pattern of the week
The pattern of the year is the same architecture compounding through staged volume — three trades in January, twenty-four in February, thirty-five in March, eighteen in April, forty-seven in May. The confluence floor did not change. The Risk Agent's fixed 2 percent sizing did not change. The Trend Agent's grade threshold did not change. The Macro Agent's veto logic did not change. What compounded across 121 trades was the cumulative R-multiple — +3.02R at January-end, +9.66R at February-end, +8.64R at March-end, +11.63R at April-end, +19.99R at May-end — and the cumulative simulated balance, $106,040 at January-end climbing to $139,996 at May-end.
Inside those 121 canonical trades, US30 carried the volume contribution at 31 trades for +5.39R, US500 banked +5.13R on 23 trades at 60.9 percent win rate, GBPUSD ran cleanest at 6 trades and 83.3 percent win rate for +4.32R, EURUSD ran 17 trades for +4.16R at 58.8 percent, NAS100 ran the most volume at 36 trades for +1.13R, and USDJPY ran 8 trades for -0.14R as the only red column on the year. The 70 winners contributed +65.40R combined at the TP1 baseline; the 51 losers cost -45.40R combined (including the partial structural exits on USDJPY at -0.5R apiece). The net at +19.99R is the arithmetic of a 57.9 percent win rate with an average winner of +0.93R and an average loser of -0.91R.
How a year banks +19.99R on a flat $1R distribution
Seventy winners summed to +65.40R: the cumulative payoff of a hit rate just above 50 percent on a system whose winners average +0.93R per trade. Fifty-one losers cost -45.40R: the cumulative cost of a stop-loss policy that holds each invalidation near a fixed -1R. The net at +19.99R is the cumulative arithmetic of expectancy math. The compounded simulated balance at $145,328 versus the static balance at $139,996 — a roughly $5,300 spread — is the visible footprint of letting risk-per-trade scale with the running balance over 121 trades. Every winner reinvests at a slightly larger base, every loser reduces it. The spread will widen if the next 120 trades print on the same expectancy band.
Decision highlights
The end-of-March decision to consolidate Claude Opus 4.7 as the desk's primary execution model is the year's most significant operating choice. Through January and February the architecture allowed multiple model families to evaluate the same setups simultaneously; the Risk Agent treated each model's confluence read as an independent draw. By end-March the team had a 62-trade sample showing Claude's discipline held more consistently across regime shifts on the FX and NAS100 sides. The consolidation did not remove GPT from the architecture; it moved Claude to the front of the execution queue. The Apr-May period validated the choice: Claude has carried +6.89R of the +8.33R May print on 26 of the 47 May trades, and the year-to-date Claude netR sits at +14.24R against GPT's +5.76R.
The May 13 nine-trade session is the per-trade isolation read of the year. Nine entries inside one afternoon, across both Claude and GPT lineages, on four different instruments, including six D-grade GPT entries under pre-rebrand snapshot attribution. The architecture's evaluation logic treated each entry as an independent confluence draw regardless of grade or model family. The cluster produced six winners and three losers and contributed roughly +2.86R to the YTD column. The decision logic at trigger did not collapse correlated entries into a portfolio position; each was sized independently against equity-at-trigger. The May 13 print is the cleanest demonstration of the architecture's per-trade independence — a design choice that has compounded across 121 trades without smearing attribution.
The May 18 AI Trader formalization is the year's structural-architecture decision. The six Claude automations and six GPT automations went live as a single 12-instrument lineup with disjoint family attribution; the legacy model-snapshot leakage on Claude-side automations (the pre-rebrand GPT-5 and GPT-5.4 trades that bypassed strict family attribution via legacy mode) retired in favor of clean automation-ID-to-model-family mapping. The formalization did not change the entry logic, the sizing rule, or the confluence floor. It cleaned up the attribution layer so the Claude-vs-GPT comparison going forward runs on disjoint automation IDs rather than fuzzy model-snapshot lookups.
Claude vs GPT: who led the week.
SkyAnalyst runs multiple foundation models in parallel across its four-agent system. When two models trade the same instrument in the same week, the results are directly comparable. This is that comparison.
- EURUSD+5.2R · 11 trades
- NAS100+4.6R · 16 trades
- GBPUSD+3.6R · 3 trades
- US30+7.0R · 23 trades
- US500+3.0R · 17 trades
- GBPUSD+0.7R · 3 trades
Same signals, same risk framework, different foundation model.
Six instruments, six stories.
EURUSD ran 17 trades for a 58.8 percent win rate and +4.16R net YTD — the desk's second-cleanest hit rate. Claude carried the column at 11 trades for +5.19R, including the May 15 short at +2R and the May 4 short at +1.53R. The pair's three biggest winners all ran short setups into resistance retests. The GPT lineage's EURUSD entries split harder; the FX side has been Claude's edge across the year.
All EURUSD this week →GBPUSD ran 6 trades for an 83.3 percent win rate and +4.32R net YTD — the cleanest single-instrument print on the year. The May 15 Claude short at +1.89R at B grade led; the May 13 GPT short at +1.09R and the May 13 Claude short at +1.14R clustered inside a single afternoon. The pair did not produce a stopped loss until the May 19 GPT short at -1R. Sample size limits the read, but the per-trade payoff has been the year's tightest.
All GBPUSD this week →US30 ran 31 trades for a 51.6 percent win rate and +5.39R net YTD — the index volume leader. GPT carried the column at 23 trades for +7.03R, with the Feb 11 long at +2.64R as the year's largest single GPT print and the YTD result reveal. The May 18-24 and May 25-31 weeks each took a US30 loss; the column's volatility tracks the broader index tape, and the YTD net stays positive because the runners on the right tail (Feb 11, May 19) outweighed the chop.
All US30 this week →NAS100 ran 36 trades for a 58.3 percent win rate and +1.13R net YTD — the volume leader and the noisiest instrument. The Claude side carried the column at 16 trades for +4.61R; the GPT-lineage NAS100 trades clustered on May 13 (D-grade entries under pre-rebrand snapshot attribution) and contributed thinner per-trade payoff. The thirty-six-trade sample is large enough to suggest NAS100 has been a reliable signal generator without producing the same R-payoff as the index majors.
All NAS100 this week →USDJPY ran 8 trades for a 50 percent win rate and -0.14R net YTD — the only red column on the year. The pair produced its winners in single-print bursts (May 26 GPT long +0.57R, May 15 Claude long +0.39R, May 18 Claude long +0.47R, May 13 GPT long +0.43R) and lost the column on the May 18-24 chop where four partial -0.5R structural exits compressed the loss column without producing winners. The pair is essentially flat year-to-date.
All USDJPY this week →US500 ran 23 trades for a 60.9 percent win rate and +5.13R net YTD — the index's quieter performer. GPT carried the column at 17 trades for +3R net; the May 22 GPT long at +1.15R, the May 20 GPT long at +0.94R, and the Claude-side contributions across earlier months added up to a clean +5.13R on a 60.9 percent hit rate. US500 has been the second-cleanest index after the GBPUSD pair.
All US500 this week →Win of the week: US30 Long · +2.64R
Loss worth learning from
The year's most-instructive single loss came from the May 27 GPT EURUSD long, which the May 25-31 weekly losses article tears down at length. The entry triggered at 14:42 UTC on a pullback-to-VWAP setup at B grade — the highest grade on any May trade. The Trend Agent saw a genuine confluence card; the Macro Agent did not veto; the Risk Agent sized at the standard 2 percent risk on equity at trigger. Confluence said the level was good; the runner the trade needed did not extend inside the entry window. The stop printed at a clean -1R at the documented invalidation.
The teardown is the cleanest illustration of the year's central theme: confluence at entry is a necessary condition for a winner, but never a sufficient one. Across 70 winners and 51 losers, the architecture made the case repeatedly that the runner is the second draw, and that no entry-side grade — including B grade — guarantees it. The single most-instructive drawdown stretch of the year came in the May 18-24 window: 18 trades for 7 winners and 11 losers and -2.82R net on the same architecture that printed +8.83R the week before. The 24-hour gap between a +5.96R week and a -2.82R week is the visible footprint of expected variance on a 57.9 percent win rate system; the published expectancy lives on both sides of its mean, and the year's most-instructive lesson is that the architecture's discipline is what compounds across that variance, not the variance itself.
On a $100k account at 2.0% risk per trade.
Each trade risks +$2,000 (1R). The system's actual scale-out behavior may differ, see disclaimer.
| Scenario | R-multiple | Profit on $100k |
|---|---|---|
| Window netActual | +19.99R | +$39,980 |
From the desk
2026 year-to-date closes May at +19.99R across 121 canonical trades, 70 winners and 51 losers, 57.9 percent win rate. A $100,000 simulated account at 2% risk per trade sits at $139,996 (static) or $145,328 (compounded). The compounded figure is what an operator running the same trade ledger banks if they let the risk-per-trade scale with the running balance instead of fixing it at $2,000 against the original $100,000 base. The roughly $5,300 spread between the two figures is the cumulative footprint of disciplined fixed-fractional sizing across 121 trades — every winner reinvests at a slightly larger base, every loser reduces it. Over the next 120 trades, that spread will widen if the system continues printing on its current expectancy band.
The structural reading of the year is that the architecture has held its shape across four meaningfully different cadences. January's three-trade soft launch, February's first real 24-trade ramp, March's full-volume 35-trade stress test that consolidated Claude as the primary execution model, and the April-May 65-trade settled cadence that banked +11.32R of the +19.99R YTD print — all four ran the same Trend Agent confluence floor, the same Risk Agent fixed-R sizing, and the same Macro Agent veto logic. The architecture's design choice to let multiple model families evaluate the same setups independently produced the data that informed the end-March Claude consolidation; the May 18 AI Trader formalization cleaned up the attribution layer so the comparison going forward runs on disjoint automation IDs. None of these decisions changed the entry logic. They changed the cadence.
What an operator evaluating SkyAnalyst should take from the YTD column is bounded: a 57.9 percent win rate with an average winner near +1R and an average loser near -1R produces a positive expectancy on the published methodology, and 121 trades is a sample large enough to confirm the directional read without yet settling the longer-run band. The next several months will retest the Claude-vs-GPT split with cleaner attribution, the same-instrument repeat-exposure scope will progress, and the year's cadence will produce another 100-200 trades by end-of-year on which the conclusions will sharpen. The fixed-R policy and the published confluence threshold will not change. The architecture is unchanged across all 121 entries and stays unchanged going forward.
From the desk, the SkyAnalyst Team. Next monthly recap in early July; next quarterly check-in mid-July; next year-to-date refresh after every monthly close.
What we're tuning
The year's three concrete tuning candidates are all narrow, all scoped from specific multi-trade patterns, and all unshipped through May. First, the same-instrument repeat-exposure check the May 18-24 weekly losses report scoped and the May 25-31 weekly losses report extended — the Risk Agent currently evaluates each entry independently and does not apply a clustered-exposure discount when a second entry hits the same instrument inside a rolling 24-hour window. We are scoping this narrowly rather than retuning the Risk Agent globally; the validation runs against the full 121-trade record before any change ships.
Second, the D-grade GPT attribution review. The pre-rebrand GPT-lineage entries (the May 13 D-grade cluster, the legacy gpt-5.4 attribution that bypassed family checks via legacy mode in YTD walks) deserve cleaner separation in published reports going forward. The fix is not to retire the entries — they cleared the confluence card and contributed +1.55R on May 13 alone — but to surface them with explicit pre-rebrand attribution rather than rolling them into the formal AI Trader GPT-5.5 column. The formalized May 18 lineup makes this cleaner going forward; the legacy attribution will hold for the YTD aggregate until the historical entries roll out of the sample.
At a Glance
Week at a glance
How does the system perform across regimes?
Across the four meaningfully different cadences of 2026 — January's soft launch (3 trades), February's first ramp (24 trades, +6.64R), March's full-volume stress (35 trades, -1.02R), April-May's settled cadence (65 trades, +11.32R) — the system has held a 57.9 percent win rate on a 121-trade sample with an average winner near +1R and an average loser near -1R. The architecture has not changed; the cadences have. The year-to-date net of +19.99R is the arithmetic of expectancy math run across all four phases.
Which model carries the load — and why?
Through May 31, Claude Opus 4.7 has run 47 trades for +14.24R at 63.8 percent win rate; the GPT lineage (running across three snapshot generations) has run 74 trades for +5.76R at 54.1 percent. The Claude consolidation happened end-March when the team observed Claude's analysis holding the most consistent discipline across regime shifts. Going forward, the May 18 AI Trader lineup formalized the split: six Claude automations on the FX and NAS100 sides, six GPT automations on the index and pair sides. The next several months will retest the directional read on a cleaner attribution.
What's the worst drawdown so far?
The deepest single-week peak-to-trough drawdown on the published equity curve came during the May 18-24 window, which printed -2.82R on 18 trades after climbing to a +4.11R intraweek high. The full curve has not breached -15 percent on the simulated $100,000 account; the May 18-24 window bottomed near -10.81 percent before recovery prints lifted it back. The longest single-window losing streak ran to four, also during May 18-24. The year-to-date peak-to-trough on the curve sits well inside the historical drawdown band a 57.9 percent win rate system would predict.
How does +19.99R YTD compare to a benchmark?
A $100,000 simulated account at 2% risk per trade at +19.99R on TP1 baseline sits at +$39,996 in nominal return, or +$45,328 with compounding. Through May 31, 2026, that is +39.99 percent year-to-date on the static figure or +45.33 percent on the compounded figure. The comparison to passive equity benchmarks depends on the reader's frame; we publish the YTD without benchmark anchoring because the system is not a market-beta product and the comparison can be framed multiple ways. The arithmetic on the published trades is what matters.
Why publish every trade?
Because a journal that only shows winners is marketing, and a system whose edge plays out over hundreds of trades is going to have weeks the edge does not show up. Every one of the 51 losses YTD is published with the same methodology as every one of the 70 winners. The weekly losses cadence (lossCount ≥ 1 publishes) catches every drawdown week; the weekly recaps catch every red and green week alike. The compounding edge case is not the headline number — it is that the published methodology has not changed across all 121 entries.
What changed between the start of the year and now?
Three structural things. First, the end-March Claude consolidation — the architecture moved Claude Opus 4.7 to the primary execution position after the March regime shifts validated its discipline. Second, the May 18 AI Trader formalization — six Claude automations and six GPT automations went live as a single 12-instrument lineup with disjoint family attribution, cleaning up the legacy snapshot leakage from the multi-family evaluation era. Third, the May 21 weekly losses gate lowered to lossCount ≥ 1 — transparency beats thinness, and the closing-week publish cadence reflects that. None of these changes touched the entry logic, the confluence floor, or the fixed-R sizing rule.
Get next week’s trades before they print.
Subscribers receive the same pre-trade AI analysis three minutes before entry.
We project the recap totals using a TP1 exit on every winning trade. This is the simplest baseline for comparing across periods. Traders running their own scale-out, trail, or TP2/TP3 hold strategies will see different totals. Dollar figures are simulated on a $100,000 account at 2% risk per trade. Actual subscriber P&L varies with account size and execution. Past performance is not a guarantee of future results.
The Claude pivot

"Claude’s pre-trade reads held discipline through regime shifts more consistently than the parallel GPT runs. By the closing week of March, the desk consolidated the master flow around Claude."
More from the Journal
EURUSD: a clean dip-buy that ran to TP3 in 85 minutes
A dip into the VWAP and support cluster, a macro tape leaning the same way, and a stop just over eight pips wide. The read filled at 1.15919 and ran clean to TP3 for +2.45R (TP3) full potential in 85 minutes.
Jun 8-14, 2026: two stops, and the patient long that came home
Three trades. Two quick stops inside six minutes each, and one GBPUSD long we left open last week. It closed +0.83R (TP1), trimming the week to minus 1.16R against a +20.43R YTD line.
GBPUSD: the patient VWAP pullback that took two sessions
Cable stopped us out earlier the same week. The next read, a VWAP and EMA pullback long, needed 54 hours to mature, never traded against us, and closed TP2 at +1.28R full potential.