Skip to main content

Farming on Orca: A SOL/USDC Strategy with Python Rebalancing

· 6 min read
DeFi Educator and Strategist

There is a 250% APY range sitting inside the SOL/USDC pool on Orca right now. It is narrow — less than 6% wide — and it will kick you out the moment SOL makes a meaningful move. Most LPs ignore it because it feels too fragile. The strategy here is to stop ignoring it, and instead build a system around it.

Orca SOL/USDC bucketed positions

What the Portfolio Actually Looks Like

The screenshot above shows four live positions in the same SOL/USDC 0.04% pool on Orca, all at a current price of 92.38 USDC per SOL:

PositionBalanceRangeEst. Yield (365D)Width
Wide anchor$508.2032.01 – 259.988.2%±~65% / +181%
Narrow target$370.5889.97 – 94.85255%±~2.6%
Mid range$208.5086.24 – 94.28152%-6.7% / +2.1%
Recovery range$203.3072.00 – 102.0140%-22% / +10%

The narrow bucket earns the most. The wide bucket earns the least but almost never goes out of range. Everything in between is calibration.

The Core Logic

The strategy has three rules:

  1. Farm the 250% range. Most of the capital — roughly 70% — lives in the one or two tightest buckets centered around the current price. This is where the fee density is extreme.

  2. Park ~30% in the wide anchor. The 32–260 range on the first position covers essentially the full realistic price distribution for SOL over a multi-year horizon. It will always be in range. It earns modestly, but it compounds without interruption and serves as a base to draw from when rebalancing.

  3. Rebalance based on Python price analysis, not emotion. Price history tells you where SOL has actually spent time. The buckets should be centered on the most probable price, not just the current price.

Why a Bucket Structure Works

A single concentrated position is binary: either you are in range and earning fees, or you are out of range and earning nothing. The moment SOL moves 3% against your tight range, you stop. If you chased the move and reset, you may have already locked in impermanent loss.

Stacking multiple positions at different widths changes this. At any given price:

  • The narrow bucket earns the most if price is stable
  • The mid buckets keep earning through moderate moves
  • The wide anchor earns something no matter what

The total portfolio almost always has something compounding. The narrow bucket is the growth engine; the wide anchor is the flywheel.

The Python Angle: Finding the Right Buckets

The bucket centers are not arbitrary. Price history from the SOL/USDC pool is pulled and analyzed to find where the price has actually been concentrated over a trailing window. The output is a dashboard called LP Rangers that shows each candidate range, its estimated APY, and whether the current price sits inside it.

LP Rangers range analysis dashboard

LP Rangers surfaces four range candidates at once — from the tightest narrow band through to a multi-month wide anchor — with live APY estimates and price position indicators for each. The current price of $92.23 is shown at the top, and each panel shows where that price sits relative to the range bounds.

The center shifts as price behavior changes. If SOL has been clustering around 90–95, the narrow bucket stays there. If it drifts, the analysis flags that the center has moved and the rebalance threshold is crossed.

Rebalancing Cadence

Not every rebalance is worth the gas and friction. Here is how different time horizons play out:

CadenceWhat triggers itExpected frictionBest for
DailyNarrow bucket is out of range by >5%Low on Solana, ~$0.05Active fee capture during trending markets
WeeklyMid bucket is out of range, or center has driftedLowMost steady-state management
MonthlyWide yield is underperforming, macro shiftLowPortfolio reallocation
YearlyFull strategy review, SOL price regime changeN/ARange reset, compounding harvest

The key insight is that Solana fees are cheap enough that daily rebalancing is not punishing the way it would be on Ethereum mainnet. On Orca, the cost to close and re-open a position is a fraction of a cent. The question is not whether you can rebalance daily, but whether the price data says you should.

Compounding the Narrow Bucket

The 255% APY on the narrow position is only useful if you actually compound it. Pending yield on Orca must be harvested and redeployed — it does not auto-compound.

With a daily rebalance cycle, the flow looks like:

  1. Harvest pending fees (~$0.04–$0.07 per cycle based on the current positions)
  2. Check whether the narrow bucket is still centered on the current price
  3. If yes: add harvested fees back into the narrow bucket
  4. If no: close the narrow bucket, re-center it using LP Rangers output, re-open

Daily compounding at 255% annualized is not the same as a stated APY — the rate compounds on top of itself. Over 30 days, the effective return on the narrow bucket starts pulling meaningfully ahead of a position that just harvests monthly.

What Can Go Wrong

This strategy is not risk-free:

  • SOL volatility. A 10%+ day takes the narrow bucket fully out of range immediately. You earn nothing until you rebalance or price returns.
  • Impermanent loss accumulates at tight ranges. When you rebalance a narrow position, you are implicitly resetting your IL. Over many rebalances, this compounds against you if you always buy high and sell low.
  • The wide anchor dilutes total yield. That 30% parked in the 8% APY position is a drag. It earns consistently but it is pulling the blended rate down from 255% toward something more like 120–150% on total capital.
  • Fee tier competition. If Orca routing shifts away from the 0.04% tier, all positions earn less regardless of range placement.

The Bet

This strategy is a bet that:

  1. SOL/USDC volume on Orca stays high enough to justify tight ranges
  2. Price stays roughly range-bound enough that daily or weekly rebalancing keeps the narrow bucket productive
  3. The Python-modeled price distribution is a better guide to bucket placement than gut instinct

None of these are guaranteed. But the combination of Python price analysis, a wide anchor that never stops compounding, and cheap Solana rebalancing friction gives this strategy more structural durability than most "just pick a tight range" approaches.

The wide anchor makes you patient. The Python analysis makes you systematic. The narrow bucket makes you money when it works.


Related reading: