· ai-ops · 4 min read

Episode 1 of 3: I Tried to Build a Profitable Boros Trading Bot. It Didn't Work.

More information made it worse. A more liquid venue made it worse. That's where this ends up.

on this page
  1. The Signal
  2. How the Research Stack Works
  3. Where the Numbers Inverted
  4. The Counterargument
  5. What Reopens This

More information made it worse. A more liquid venue made it worse. That’s where this ends up.

The carry trade on Pendle is simple: fixed rate prices below floating, you buy fixed, hold to convergence, collect the spread. Early tests looked encouraging — recognizable spread, positive gross alpha, frequency worth pursuing. Then realistic costs ran. Every strategy went negative. Not squeezed. Inverted.

Before reading the verdicts, read this:

Input Value
Market Pendle sUSDe (single pool)
Strategies tested 3 variants across two venues
Trade counts 4 / 8 / 21
Spread penalty observed bid-ask at typical size
Slippage calibrated to pool depth, non-stress conditions
Gas floor median congestion
Gross-to-net gap 22 to 85 bps depending on variant

Small samples. Known limitation. The direction never flipped — that’s the part that matters.

The Signal

The Signal More information made it worse. A more liquid venue made it worse. That’s where this ends up.

Pendle splits interest-bearing assets into fixed and floating legs that trade independently. The maturity structure makes this cleaner than standard funding rate arbitrage: the fixed leg converges to floating at a known date. Edge is bounded, time-limited. That’s why the early signal looked clean. When the fixed rate prices below floating for the same underlying, you buy fixed and wait. The spread existed. The math checked out.

Gross alpha is not net alpha. Every entry and exit costs spread, slippage, gas, and execution delay. The early tests applied almost none of that. That’s why they looked good.

How the Research Stack Works

Signal Identification
        │
        ▼
Base Backtest (no friction, perfect fills)
        │
        ▼
Base-Realistic (spread penalty + slippage floor + gas cost)
        │
        ▼
Out-of-Sample / Stress Scenarios
        │
        ▼
Forward Paper Trading (live signals, entry guard: reject if expected net ≤ 0)

The slippage assumption was the most consequential input. Pendle pools are illiquid relative to spot markets. A single mid-size position moves price enough to matter. The cost floor wasn’t conservative by design — it was calibrated to observed pool depth under normal, non-stress conditions. That’s already a favorable assumption.

Three strategies ran the full gauntlet: a native Boros carry, an external-reference variant that added Binance premium and funding data as a fair-value signal, and a funding rate baseline that ran comparable carry mechanics on Binance entirely outside Boros — benchmarking what the nearest alternative actually delivers.

Where the Numbers Inverted

The native carry strategy showed positive gross alpha in the base backtest. Then:

## Boros Carry Mean Reversion

- Kind: `boros_carry`
- Base-realistic net: `-22.27 bps`
- Out-of-sample tail: `-10.99 bps`
- Verdict: kill the strategy

Negative under realistic assumptions. Negative out-of-sample. Both consistent. A basis point is one hundredth of a percent — minus 22 bps per trade sounds like rounding error until you see it compounding in one direction against you. You’re not losing a little edge. You’re paying to trade.

Then the external-reference variant: add Binance data, better information, wider market view. Better signal quality, worse outcome. −61.42 bps base-realistic, −28.31 out-of-sample.

Then the funding rate baseline — cleaner execution, more liquid venue, the strategy’s best possible alternative. −85.59 bps.

| Strategy              | Trades | Net bps | OOS bps | Verdict    |
| --------------------- | -----: | ------: | ------: | ---------- |
| Boros carry           |      4 |  -22.27 |  -10.99 | kill       |
| External reference    |      8 |  -61.42 |  -28.31 | not viable |
| Funding rate baseline |     21 |  -85.59 |  -26.39 | not viable |

The rescue fantasies die in that table. More information doesn’t save it. A more liquid venue with lower slippage doesn’t save it — it produces the worst result of the three. If the cost model were the problem, you’d expect at least one variant to survive. None did.

The Counterargument

The sharpest version: you discovered transaction costs exist, ran a small sample, applied your own calibration, and declared the strategy dead. That’s a prior dressed as a finding.

Fair hit. Respond to it directly:

Four trades is not a backtest. It’s a prototype result. The cost model used — mid-point spread, conservative slippage, median gas — is one calibration, not ground truth. A trader running smaller sizes in better liquidity conditions, or during a period of elevated fixed/floating divergence, might see materially different net returns.

What keeps the result meaningful despite the sample problem is directional consistency. Three strategy designs. Different information sets. Two venues. Every one goes below zero when realistic costs run. If this were a calibration artifact, the variance across designs should produce at least one survivor.

There’s also a regime question. DeFi carry edges tend to appear during specific spread conditions and disappear as arbitrageurs close them. The early positive gross alpha may have been real in that window. The question is whether a systematic strategy can reliably find and capture those windows before friction eats the take. This test says: not with this calibration, not yet.

What Reopens This

The methodology outlived the strategies it killed. Gross alpha first, strict costs second, out-of-sample third, forward rejection last. It found the failure at paper-trading scale. That’s the result worth keeping.

“Boros is broken” is not the claim — the sample doesn’t support it. What the sample does support: insufficient evidence to proceed, so we don’t proceed.

What would reopen it: a larger trade sample in higher-divergence conditions, smaller position sizes to test whether the slippage assumption changes the sign, and a longer calibration window across multiple Pendle markets. Not signal refinements. A different cost regime. If consistent negatives harden across those conditions, the structural conclusion earns its place. Right now it doesn’t.