A Portfolio of Bots: Why Five Bots Don't Diversify — and Why They May Be Trading With Themselves
Published 2026-07-31 · By Drew Shelem
The two hidden costs of scaling: correlated risk that’s invisible in calm times, and trading against yourself, which under the venue’s rules is a violation
A new article in the cycle. So far we’ve talked about one edge and one bot. But the moment an edge is found, the temptation is to scale — run five bots, ten, different strategies, different markets. It looks like both diversification and growth. In reality a portfolio of bots has two hidden costs the cycle hasn’t covered yet. The first is mathematical: if the bots are correlated, it isn’t diversification, and the portfolio’s drawdown is nearly as bad as one big bot’s. The second is about the rules: if the bots trade the same markets, they trade against each other, and that’s wash trading — a Code of Conduct violation regardless of your intent. Both costs are paid quietly. Let’s take apart both.
Five bots, one bot’s worth of risk
You found a working edge and want to scale. The natural move is to launch several bots: let them run in parallel, where one draws down another pulls it up, the risk spreads out. It sounds like textbook diversification. But the textbook adds a condition that’s easy to lose: diversification works only if the bets are independent. And your five bots are almost certainly not independent — and then the “portfolio” turns into one big bot wearing a mask of five.
And that’s only the first of two traps. The second is even more insidious, because it’s not about money but about the rules: when several of your bots trade on one market, sooner or later one’s order fills another’s — you’re trading with yourself. To you it looks like two ordinary trades; to the venue it’s wash trading — a trade with no economic substance, prohibited regardless of whether you meant to deceive anyone. Let’s take the two traps in turn.
Trap 1. Correlated bots don’t diversify
Let’s start with the math of diversification. Take five bots, each with an honest edge of +2 cents per trade. The question: how much safer is a portfolio of five than one? The answer depends entirely on whether the bots are correlated with each other:
| Five bots, edge +2¢ | Portfolio Sharpe | Max drawdown | Effective number of bots |
|---|---|---|---|
| Independent | 9.9 | 84 cents | 5.0 |
| Correlated (ρ=0.7) | 6.3 | 357 cents | 1.3 |
Stop on the last column. Five independent bots behave like five bets: the risk spreads out, the drawdown is only 84 cents. Five correlated ones (correlation 0.7) behave like 1.3 bots: the drawdown grows fourfold, to 357 cents. The formula is simple and worth memorizing: the effective number of bots = N ÷ (1 + (N−1)·ρ). At a correlation of 0.7, your five bots are, by risk, little more than one. You think you diversified, when you just multiplied one bet by five.
Now the unpleasant part: your bots are almost certainly correlated, and strongly. They all trade one asset (bitcoin), on one venue, and their signals are built from the same data — the same price, the same spot. This is exactly the dependence we took apart in the article on finding an edge: features from one asset are one asset in different wrappers. Five bots on different BTC indicators are most likely five reflections of one idea, not five independent bets. Real diversification would require different sources of edge (directional versus market-making versus arbitrage — from the article on types), not five variants of one.
Trap 1b. Correlation spikes exactly when it hurts
And there’s a finishing detail that makes the first trap worse than it looks. You measure correlation in ordinary times — and it can look small, reassuring. But correlation is not constant: in stress it spikes. When the market turns or the regime breaks, bots that moved out of sync in calm times suddenly start losing together. Look:
| Correlation of the bots | Value |
|---|---|
| In calm times | 0.06 — looks excellently diversified |
| In stress (drawdown) | 0.91 — the bots clumped, they fall together |
| Portfolio drawdown | 1740 cents |
It reads ominously. In calm times the correlation is 0.06 — nearly zero, you’re sure the bots are independent. And in stress it soars to 0.91: the diversification you measured in fair weather evaporates exactly when it’s needed most. This is the same regime shift from the last article, only at the portfolio level: in a bad regime all your bots turn out to be one bet. So a correlation measured in calm times overstates the real protection — plan by the stress correlation, not the calm one.
Trap 2. Your bots trade with themselves — and that’s wash trading
Now the second cost, and it’s not about money but about the rules — but it’s paid no less really, up to a ban. When several of your bots work on one market, the inevitable happens: one bot wants to buy, another wants to sell at the same moment — and their orders cross. Look at how often:
| Two bots on one market | Value |
|---|---|
| Bot A wants to buy | 33% of the time |
| Bot B wants to sell | 30% of the time |
| Their orders cross (self-match) | 10% of moments |
Every such crossing is a trade where both the buyer and the seller are you. The owner didn’t change, no economic risk was transferred anywhere, money moves from your pocket to your own pocket (minus the fee). This is the very definition of wash trading — a fictitious trade with no economic substance. And here’s the key thing to understand: it’s a violation regardless of intent. You weren’t trying to manipulate the market or inflate volume — but the pattern “one owner on both sides” is itself a violation of the venue’s Code of Conduct. The rule looks at the structure of the trade, not at what was in your head.
And alongside it, a second structural flag. If each of your bots sits on a separate wallet (a common architecture), then from the venue’s point of view this is many wallets behind one owner — a pattern resembling sybil behavior (the artificial multiplication of accounts). By itself it can be innocent, but it draws the attention of anti-fraud systems, especially paired with self-matching.
What to do about it — and here how matters crucially. The right answer has two parts:
- Self-match prevention at the architecture level. Your system must know about all your orders and not let them fill each other: when two of your bots’ orders are about to cross, one is cancelled or skipped. This is a technical measure, and it removes the violation at the root.
- Proactive disclosure, not concealment. Many wallets of one owner — tell the venue yourself, explain the architecture. Concealment turns an innocent pattern into a suspicious one: what’s disclosed is transparent engineering; what’s hidden looks like something being hidden. This is squarely in the spirit of the whole cycle: build it so it can be checked, not believed.
What would refute this — and how to run a portfolio honestly
The condition on which the traps wouldn’t exist (but it doesn’t hold). If the bots were genuinely independent, the portfolio would honestly diversify (five bots = an effective five), and the first trap wouldn’t exist. But bots on one asset from the same data are correlated, and in stress strongly. And if the bots never ended up at the same price on the same market, a self-match would be impossible. But on popular markets they cross regularly (10% of moments in the example).
How to run a portfolio honestly — four rules.
- Count the effective number of bots, not the nominal. Five correlated bots aren’t five bets; measure the correlation and plug it into N ÷ (1 + (N−1)·ρ). Size the portfolio by the effective number.
- Plan by the stress correlation, not the calm one. The calm one overstates protection; in a bad regime the bots will clump.
- Diversify the source of edge, not the indicator. Five indicators on BTC are one source. Real diversification is different families (directional / MM / arbitrage).
- Prevent self-matching and disclose the architecture. Don’t let your bots fill each other; tell the venue about the many-wallet structure yourself. Transparency protects; concealment sinks.
What I don’t know, and where the limits are
- The numbers are illustrative, from synthetics. The correlations, edges, and self-match frequency were set by me as plausible; on your portfolio they’re your own and are measured on your data.
- The Code of Conduct is a volatile source. The specific wording on wash trading, self-matching, and multi-accounting has to be verified in the current Polymarket documentation as of the date, not relied on from this article. The general principle (a trade with no change of owner = a wash trade) is stable; the details of the rules and sanctions are not.
- Exactly what triggers anti-sybil detection is known to the venue, not me. I describe the principle (many wallets of one owner draws attention) and the reasonable response (disclosure); the venue’s exact detector thresholds are unknown to me.
- The stress correlation is hard to estimate in advance — there are few stresses in the sample (this is from the article on regime: a regime that wasn’t there can’t be tested). An estimate of the stress correlation always comes with a large error.
What to do tomorrow
- Measure the correlation of your bots and compute the effective number. If it’s close to one — you don’t have a portfolio, you have one big bet; either accept that consciously or diversify the source of edge.
- Recompute the portfolio’s risk by the stress correlation. Take the worst periods and see how the bots clump there; size by that, not by the average.
- Build self-match prevention before launching the second bot. The system must see all its own orders and not let them cross. It’s not an option but a condition of legally running several bots.
- Disclose the many-wallet architecture to the venue proactively. Explain that it’s one transparent system, not a network of front accounts. What’s disclosed doesn’t look like what’s hidden.
- Check the portfolio on execution without risking money. You can run several bots together and see their correlation, the portfolio drawdown, and the self-match points in paper mode — free, before any subscription.
FAQ
I launched five bots — isn’t that diversification? Only if they’re independent. Five bots on one bitcoin from the same data are correlated, and by risk it’s closer to 1.3 bots than five (the formula N ÷ (1 + (N−1)·ρ)). Real diversification is different sources of edge, not five indicators on one asset.
My bots’ correlation is small — so everything’s fine? Check when you measured it. In calm times the correlation can be near-zero, while in stress it soars toward one — the bots fall together exactly in the drawdown. Plan by the stress correlation, or the protection will evaporate when you need it.
My bots sometimes trade with each other — what’s wrong with that? It’s wash trading: a trade where you’re both the buyer and the seller, with no change of owner and no transfer of risk. It’s prohibited by the Code of Conduct regardless of your intent — the rule looks at the structure, not the intent. You need self-match prevention at the system level.
Each of my bots is on its own wallet — is that a problem? By itself, no, but many wallets of one owner resembles a sybil pattern and draws the attention of anti-fraud systems, especially together with self-matching. The solution is not to hide it but to disclose the architecture to the venue proactively and remove the self-matching.
Wash trading — but I’m not manipulating the market? Intent doesn’t save you. The definition of a wash trade is structural: no change of owner and no economic risk. Your bots trading against each other fall under it, even if you were just scaling a strategy. That’s why self-matching is removed technically, not by “a promise not to abuse it.”
Disclaimer
This material is educational and is not financial advice. Past results do not predict future results. Trading on prediction markets carries real risk, up to and including the total loss of capital. Venue rules (including the Code of Conduct) change — verify the current wording in the official documentation. Access to Polymarket is restricted or prohibited in some jurisdictions — verify legality where you live before trading.