I started with a simple assumption: if someone is putting $70,000+ into a short-dated Polymarket market, they might know something I don't.
Not always. Maybe not even most of the time. But enough to test.
The strategy was to copy big traders. More specifically, copy large BUY-side whale alerts when the market was close to resolution and the signal was not contradicted by another whale.
The interesting part was automation. I didn't want to sit in front of a feed and decide trade by trade. I wanted Codex to do the boring work through the Pariflow MCP:
- pull whale alerts
- check the market and outcome mapping
- reject messy signals
- look for large opposite-side flow
- size the paper trade
- log why it copied or skipped
I gave the paper account $5,000. Codex could only copy a signal if the whale trade was at least $70,000, the market resolved within seven days, and no earlier $70,000+ whale had backed another outcome in the same event.
Then I replayed 30 days of historical data. This was a paper replay, not a live-money claim. The data came from real WhaleAlertEntry rows: source, side, amount, price, timestamp, mapped event/outcome IDs, resolution status, and final winning outcome.
The dashboard below is the source of truth for the headline metrics. The useful story is not just the return; it is how much tape Codex rejected before it copied anything.
Codex scanned the tape, then copied only the cleanest whale signals
One view for the replay: scan volume, copied trades, equity, category PnL, and the rejection audit.
$1.1B in whale tape reviewed.
$8M of whale flow made it through.
Started with $5,000.
$3,954.09 paper PnL.
48 wins and 12 losses.
Worst peak-to-trough bankroll dip.
Equity curve
Positions settle at the market outcome, not mark-to-market.
Automation funnel
The biggest move was rejection, not prediction.
Result split
PnL by category
Rejected signal audit
The Idea
I wasn't trying to build an AI that predicts sports or politics.
The idea was smaller:
- Find large traders.
- Assume they might have better information than I do.
- Copy only the cleanest short-term signals.
- Let Codex handle the checks and sizing.
- Hold the paper position to resolution.
That sounds easy until you look at the tape. A lot of whale alerts are not usable. Some are too small. Some are sell-side. Some map badly. Some expire too far out. Some are part of a fight where one whale backs one outcome and another whale backs the opposite.
So the real strategy was not "copy whales."
It was:
Copy a whale only when the signal is large, short-dated, mapped to one exact outcome, and not contradicted by earlier large flow.
That last part matters. If one big trader buys Team A and another big trader buys Team B, I don't want Codex pretending there is a clear signal. There isn't. That's just disagreement with size.
Connecting Codex to the Tape
The Pariflow MCP gave Codex access to the parts it needed: whale alerts, market search, market resolution, order previews, and order placement. For this test, I kept execution in paper mode.
The first prompt was basic:
Connecting Codex to the whale tape
Use Pariflow MCP to pull the latest resolved 30-day Polymarket whale-alert window. Normalize every row with source, side, amount, price, timestamp, event, outcome, mapping IDs, resolution date, and winning outcome.
Loaded 26,885 Polymarket whale-alert rows from 2026-05-29 through 2026-06-27. Total whale tape scanned: $1,098M. Largest copied print: $400k on Will Colombia win on 2026-06-17?. First copied signal: Thunder vs. Spurs at 42c after slippage.
The important part was the mapping. A whale alert by itself is not enough. Codex needed to know the exact market, the exact outcome, and the final resolved outcome.
Otherwise the backtest turns into guessing after the fact.
For market data, I matched the replay to the public Polymarket surfaces for market data, trades, price history, and resolution.
The Automation Loop
The loop was simple, but it had to be strict.
Every cycle, Codex did the same thing:
- Pull Polymarket whale-alert rows from the replay window.
- Keep BUY-side flow only.
- Apply the $70,000 minimum.
- Require mapped event and outcome IDs.
- Require a resolved market inside seven days.
- Check whether an earlier whale backed a different outcome in the same event.
- Add 1 cent of assumed slippage.
- Size the trade against bankroll, daily risk, and open exposure.
- Save an accept or reject reason.
What Codex did every cycle
Run the strategy like an agent: pull the tape, hydrate the market, check the expiry, scan opposite whale flow, size the paper order, and write an audit reason for every accept or reject.
Loop complete: 1. get_top_trades(source=POLYMARKET, min_amount=70000) 2. resolve_market(event_id, outcome_id) 3. reject if expiry > 7d, unmapped, unresolved, sell-side, or contradicted by earlier opposite flow 4. preview paper order with 1c slippage 5. apply bankroll caps: $500 position, $1,000 daily new risk, 40% open exposure 6. copied 60 signals and rejected 26,825
This is where Codex helped most. It didn't need to be clever. It needed to be consistent.
The accepted set was tiny relative to the raw feed. Most alerts failed boring checks: below threshold, sell-side print, unmapped event, long expiry, unresolved market, earlier opposite whale, or risk cap.
That was the point. If the agent cannot say no most of the time, the strategy is just impulse trading with extra steps.
Making Codex Say No
My first version of the idea was too vague. "Copy large traders" is not a strategy. It is a starting point.
These were the final rules:
| Rule | Why it exists |
|---|---|
| Polymarket only | Keep one venue's pricing and resolution behavior consistent |
| BUY side only | Avoid treating sell flow as a clean copy signal |
| Minimum whale size: $70,000 | Cut out smaller alerts |
| Expiry: 0 to 7 days | Keep the thesis short-term |
| Exact event/outcome mapping | Avoid ambiguous markets |
| Prior opposite whale check | Skip if earlier $70k+ flow backed another outcome |
| Bankroll risk caps | Stop one cluster from taking over the account |
| Settlement-only PnL | No hindsight exits |
Making Codex say no
Before copying a whale, scan for any earlier $70k+ whale on the opposite outcome. If one exists, skip the event. Then choose the position size from the $5,000 bankroll.
Accepted trades: 60. Skipped signals: 26,825. Conflict skips: 346. Long-expiry skips: 670. Risk-cap skips: 276. Largest copied stake: $500. Sizing rule: 3-10% risk, capped at $500 per position, $1,000 daily new risk, and 40% max open exposure.
The conflict filter rejected 346 signals. Those are the trades that look tempting in a raw feed because the dollar amount is large. But once Codex found earlier whale flow on another outcome, the signal was no longer clean.
The risk layer rejected another 276 signals. Those trades may have passed the market rules, but the account could not take them without breaking the $500 position cap, $1,000 daily new-risk cap, or 40% open-exposure cap.
Position Sizing
I gave Codex a $5,000 bankroll and a small risk box:
- 3% to 10% of equity per copied trade
- $500 max position size
- $1,000 max new risk per day
- 40% max open exposure
- 1 cent assumed slippage
Codex sized up when the whale was larger, the expiry was shorter, and the entry price left enough upside. It sized down when the price was already high or the account already had open risk.
That changed the behavior. It was no longer "copy every whale with the same bet." It was "copy the clean signal if the account can afford it."
The Trades
The journal below opens with the first five copied trades so the article stays readable. Expand it for the full 60-position replay. Entry price includes the 1c slippage assumption. Winners settle at $1 per share. Losers settle at $0.
Copied signals and settlements
The table starts with five rows and expands on demand. Stakes were selected by the risk model from a $5,000 starting bankroll; total copied stake was $22,449.14.
Signals that passed the automation.
Risk-sized per copied print.
Largest copied signal.
| # | Signal | Whale | Entry | Stake | Result | PnL |
|---|---|---|---|---|---|---|
| 1 | Thunder vs. Spurs Copy: Thunder / May 29 / expires in 0.1d | $171.5K | 42c | $500.00 | LOST Resolved: Spurs | -$500.00 |
| 2 | Will SK Brann win on 2026-05-29? Copy: Yes / May 29 / expires in 0.1d | $94.5K | 57c | $270.00 | LOST Resolved: No | -$270.00 |
| 3 | Will SK Brann win on 2026-05-29? Copy: Yes / May 29 / expires in 0.1d | $106.2K | 58c | $230.00 | LOST Resolved: No | -$230.00 |
| 4 | Los Angeles Angels vs. Tampa Bay Rays Copy: Tampa Bay Rays / May 30 / expires in 0.1d | $72.3K | 49c | $240.00 | WON Resolved: Tampa Bay Rays | +$249.80 |
| 5 | Los Angeles Angels vs. Tampa Bay Rays Copy: Tampa Bay Rays / May 30 / expires in 0.1d | $71.7K | 49c | $240.00 | WON Resolved: Tampa Bay Rays | +$249.80 |
The trade list shows what the strategy actually became: a lot of short-expiry sports markets, repeated whale flow around the same events, and some losses that still hurt.
The 80% win rate looks good, but it needs context. Many wins came from expensive positions where the payout was small. One upset can erase a lot of 98c wins.
The PnL worked because enough mid-priced winners landed before the losing clusters got too large.
Results
After all copied markets resolved, the paper account finished at $8,954.09 from a $5,000 start.
The result after settlement
Settle every copied position at $1 for the winning outcome and $0 for the losing outcome. What did the 30-day paper account finish with?
Starting bankroll: $5,000. Ending bankroll: $8,954.09. Net PnL: +$3,954.09. ROI: +79.1%. Win rate: 80% (48 wins / 12 losses). Max drawdown: 20%.
The category chart tells the uncomfortable part: the clean signals in this window were overwhelmingly sports-heavy, while the small World sample was negative. That does not prove sports whales are always right. It just means the cleanest signals in this replay happened to be there.
The drawdown reached 20%. I care about that number more than the headline return. A strategy that can turn $5,000 into $8,954 in a replay can also lose fast if several copied whales are wrong in a row.
What Codex Got Right
Codex helped in five places.
First, it cleaned up the feed. I could look at a candidate queue with amount, price, expiry, mapping status, outcome, and resolution status.
Second, it rejected a lot. That was useful. The agent wrote "skip" far more often than "copy."
Third, it avoided lookahead in the conflict check. A future opposite whale did not invalidate an earlier copied signal. Only earlier information counted.
Fourth, it kept sizing consistent. A $400k print still had to fit the bankroll rules.
Fifth, it left an audit trail. Every copied position had a stake and settlement. Every rejected bucket had a reason.
What I Would Change
I would not run this live without three changes.
Add liquidity checks
The replay assumes one cent of slippage. Real execution could be worse, especially after a whale has already moved the price. Before placing a live order, Codex should check the book and reject markets where the paper size would sweep too much depth.
Add a no-copy zone near 90c+
Some signals arrived at 95c, 98c, or 99c. Those can win and still barely help the account. Worse, one upset can wipe out many tiny wins.
I would reject most entries above 90c unless the order book and payout profile made a strong case.
Tighten repeated-event exposure
The replay copied multiple signals from the same event when the bankroll caps allowed it. That helped in some winning clusters, but it can also hide concentration risk.
A live version should decide whether repeated prints mean confirmation or just more exposure to the same outcome.
Takeaway
This did not prove that whales are always right. They are not.
It proved something more useful to me: a vague idea can become a testable system if the agent is forced to follow rules.
The part I would keep is not "AI predicts the future." It is the process:
- pull the same data every time
- reject ambiguous trades
- avoid conflicting whale flow
- size risk the same way
- settle without hindsight exits
- keep the audit trail
That is what made the experiment worth doing.
This article is for educational research only. It is not financial advice, trading advice, or a recommendation to copy any trader, market, or strategy. Prediction markets are risky, and automated trading can lose money quickly.

Artem Goryushin
Fintech expert, business analyst
Artem is a fintech expert and business analyst focused on prediction markets, trading UX, and financial product strategy.