Live on Bybit, Bitunix & Bitget · Tested & running

Systematic funding rate capture.
Delta-neutral. Price-direction agnostic.

FundingArb automates delta-neutral funding arbitrage on crypto perpetual futures — long spot, short futures, same size. Funding payments are collected at every cycle. Runs 24/7 in Docker, no manual intervention required.

funding_arb · live · bybit
── tick #4841 · 2025-05-13 02:17:03 ──────────────────────────
UAIUSDT qty=266.0 entry=0.3755 mark=0.3761 net≈0.00 USDT
rate=+0.0218% age=33.7h funding≈+1.84 USDT liq=0.5584
ETHUSDT qty=0.412 entry=2488.2 mark=2490.1 net≈+0.00 USDT
rate=+0.0105% age=11.2h funding≈+0.71 USDT liq=1244.1
── scanner ─────────────────────────────────────────────────
scanned 184 perpetuals · top rate: UXLINKUSDT +0.0831%
capital deployed: 1,000 USDT · margin usage: 48.2%
no new entries (MAX_POSITIONS=2 reached)
── next funding payment in 04h 22m ─────────────────────────
3+
Exchanges · CCXT-ready
24/7
Fully Automated
4–8h
Funding Cycle
Δ=0
Price P&L

Pure yield. No directional exposure.

Perpetual futures use funding rates to stay anchored to spot price. When longs outnumber shorts, the rate goes positive — shorts get paid. FundingArb captures that payment automatically. The delta-neutral structure means price moves in either direction don't affect the P&L — but fee drag and negative rates are still real risks.

01 // SCAN

Find the best rates

The scanner checks all active perpetual futures, ranks by funding rate, and filters by minimum 24h volume to ensure liquidity.

02 // ENTER

Open the hedge

A spot long and a futures short of identical size are placed simultaneously. Price moves cancel out — if BTC drops $500, the spot loses $500 and the futures short gains $500. Net price P&L = $0. Fee coverage is verified before entry.

03 // COLLECT

Receive funding every cycle

The futures short receives payment from longs at each funding interval (4h or 8h depending on exchange and symbol) as long as the rate stays positive. Timing is optimized to never leave a payment on the table.

04 // EXIT

Close when rate drops

When the rate falls below your threshold, the bot closes both legs cleanly. Orphaned legs from crashes are detected and cleaned up on restart.

Professional-grade, production-ready.

Built with the same safeguards you'd expect from institutional trading infrastructure — not a toy script.

Delta-neutral hedging

Spot long + futures short hedged 1:1. BTC can go to zero or moon — your net P&L is unaffected by price.

🔍

Funding rate scanner

Scans all perpetuals continuously. Ranks by rate, filters by volume, and applies fee coverage checks before any entry.

🛡

Liquidation protection

Exits automatically when mark price approaches liquidation within your configured buffer. Liquidation exits are never suppressed.

Smart exit timing

Suppresses rate-based exits when a funding payment is imminent. Won't exit 5 minutes before you'd collect 2 USDT.

💾

SQLite persistence

Position state survives restarts. Cost basis and collected funding are tracked across sessions — always up to date.

🔄

Orphan cleanup

Detects unhedged legs after a crash and closes them automatically on restart. No manual cleanup required.

🐳

Docker-ready

Single docker compose up -d to start. Dry-run mode on by default — no real orders until you flip the switch.

🏦

CCXT-ready for more exchanges

Bybit, Bitunix, and Bitget are tested and live. Binance, OKX, Gate.io and 100+ others are available via CCXT — not yet officially verified.

Fully configurable

13+ parameters in a single .env file — entry thresholds, leverage, capital limits, margin caps, and more.

Bybit ✓ tested
Bitunix ✓ tested
Binance USDM
OKX
Bitget ✓ tested
Gate.io
+ 100+ more via CCXT

Real runs. Real numbers.

From my own Bybit deployment. No simulations, no backtests — exchange records.

448 USDT
Capital Deployed
+2.32 USDT
Funding Collected
+2.04 USDT
Net P&L
18.0 % APR
Annualized Yield

Live snapshot · Bybit · 3 positions active · best realized: BSBUSDT 99.1% APR (short spike) · portfolio APR 18.0% · actual returns vary with market conditions and can be lower or negative

FundingArb dashboard — live positions on Bybit

Who is behind this?

Algo trader, not a marketer. I built this for my own use and decided to sell it.

@FundingArbBot
Senior software engineer and Technical Lead with 25+ years of experience building large-scale e-commerce and automotive platforms — microservices, Docker, cloud infrastructure (AWS), distributed systems, and API integration. FundingArb is a personal project: I was running the funding rate strategy manually and automated it because automating things is what I do. The code is built to production standards, not hacked together over a weekend.
25+ yrs engineering Bybit Live ✓ Bitunix Live ✓ Bitget Live ✓ No telemetry No phone-home Auditable source

Exchange adapters, configuration, and dashboard in full Python source — inspect everything that touches your API keys. The execution engine is delivered as a compiled Python extension for performance and IP protection.

One-time payment. Yours to keep.

No subscriptions. No monthly fees. Buy once, own the code forever.

Starter
For developers who know their way around Python and Docker.
$ 79 one-time
  • Full source code (adapters, config, dashboard)
  • .env.example with all parameters
  • Docker Compose setup
  • README documentation
  • Bybit, Bitunix & Bitget natively tested
  • Email support
  • Setup guide PDF
  • Future updates
Buy Starter →
Lifetime
License never expires. Updates guaranteed for 2 years, then ongoing.
$ 299 one-time
  • Full source code (adapters, config, dashboard)
  • .env.example with all parameters
  • Docker Compose setup
  • README documentation
  • Bybit, Bitunix & Bitget natively tested
  • Step-by-step setup guide (PDF)
  • 90 days priority email support
  • Updates min. 2 years, then ongoing ?
Buy Lifetime →
Risk disclaimer: FundingArb Bot is a software tool you operate yourself on your own infrastructure. It does not constitute investment advice, portfolio management, or any regulated financial service. Funding rate arbitrage is generally considered low-risk but is not risk-free — funding rates can turn negative, exchange downtime may affect both legs, and no strategy guarantees profit. In extended low- or negative-rate environments, trading fees may exceed income, resulting in a net loss. You are solely responsible for your trading decisions. Past performance does not guarantee future results. This is not financial advice.

Built-in safeguards at every level.

The bot is designed to protect capital first, earn yield second.

Liquidation buffer

Exits the futures leg automatically if mark price comes within your configured distance of liquidation — even if rate is still positive.

Margin cap

Never deploys more than your configured fraction of account balance (default 70%) — leaves room for margin fluctuations.

Fee-coverage filter

Only enters if expected funding income over the holding period exceeds round-trip fees by a configurable factor.

Exit confirmation

Requires multiple consecutive ticks below the exit threshold before closing — avoids reacting to transient rate dips.

No withdrawal access

API keys only require trading permissions. Withdrawal access is explicitly not needed — and should not be granted.

Dry-run mode

Run the full bot with real data and full logging — but zero real orders. Default mode until you explicitly disable it.

What can actually go wrong?

No sugar-coating. Here are the four scenarios that actually hurt — and how the bot responds to each.

⚠ Scenario 01

Funding turns negative for 7 days straight

Market flips bearish. Rates drop below your exit threshold and stay there. You're now paying funding instead of collecting it.
Bot response: Exits both legs when the rate falls below EXIT_RATE_THRESHOLD (configurable). The exit timer prevents panic-selling on a single bad tick — it requires multiple consecutive confirmations. Worst case: a few small negative payments before the exit triggers. No runaway losses.
⚠ Scenario 02

Flash crash — mark price hits liquidation range

A sudden price spike or cascade liquidation event pushes the mark price close to your futures short's liquidation level.
Bot response: The liquidation buffer triggers an immediate exit of the futures leg — even if the funding rate is still positive and a payment is due in minutes. This is intentional: preventing liquidation is always the priority. The spot leg is closed separately. The exit is never suppressed for timing reasons.
⚠ Scenario 03

Exchange API outage — bot can't reach Bybit

The exchange goes down for maintenance or has an API incident. The bot can't poll rates, check margin, or execute exits.
Bot response: Retries with backoff, logs all errors. Your open positions remain on the exchange — untouched, still hedged. When the API recovers, the bot resumes. Risk: you can't exit during the outage. Mitigation: set stop-losses or exchange-side alerts. The bot does not silently crash and leave positions unmonitored — it continues retrying until connectivity is restored.
⚠ Scenario 04

Extended low-rate period — fees drag net return negative

Funding rates don't go negative, but they stay very low (e.g. 0.005% per cycle) for weeks. Trading fees, spread costs, and occasional rebalancing eat into or exceed the income.
Bot response: The entry filter (MIN_FUNDING_RATE) prevents entering new positions when rates are below your threshold. Existing positions are held until the exit threshold is reached. However, if rates stay marginally above the exit threshold for a prolonged period, fees can exceed income — resulting in a net loss. This is not a failure mode the bot can fully prevent; it's an inherent characteristic of the strategy in low-volatility market conditions.

Frequently asked questions

Do I need to know how to code?+
Basic Docker and command-line knowledge is sufficient to run the bot. You do not need to modify any Python code to get started. The Pro and Lifetime plans include a step-by-step setup guide.
Which exchanges are officially tested?+
Bybit (testnet and live), Bitunix (live), and Bitget (live) have been tested by the author. An additional 100+ exchanges are available via CCXT but are not officially verified. Community feedback is welcome.
How much capital do I need?+
The default configuration starts with 500 USDT per position and a maximum of 1,000 USDT total. These values are fully adjustable in the .env configuration file. Smaller capital is possible but reduces absolute yield.
What happens if the bot crashes or restarts?+
Position state is persisted in a local SQLite database. On restart, the bot reads the existing positions, resumes monitoring them, and detects any orphaned (unhedged) legs — which it closes automatically.
Is this legal in Germany / the EU?+
Trading bots for personal use are generally legal. You are responsible for complying with your local tax obligations and exchange terms of service. This software does not constitute financial advice.
Will I receive updates after purchase?+
Starter: no guaranteed updates. Pro: 6 months of updates from purchase date. Lifetime: updates guaranteed for a minimum of 2 years from purchase, and ongoing for as long as FundingArb is actively developed — including exchange API changes, bug fixes, and new features.

What does "Lifetime" mean exactly? Your license never expires — you can run the software forever. Updates are guaranteed for at least 2 years from your purchase date. Beyond that, updates continue for as long as the product is actively developed. If updates are ever discontinued, Lifetime customers receive 60 days' notice by email before the last update. Priority email support is included for 90 days from purchase.
Do I get the full source code?+
You get full Python source for all exchange integrations (Bybit, Bitunix, CCXT wrapper), the configuration layer, and the complete dashboard (backend API + React frontend). You can inspect every file that handles your API keys before running anything.

The core execution engine (scanner, monitor, strategy, order execution) is delivered as a compiled Python extension — it imports and runs identically to plain source code but protects the proprietary trading algorithms.

Can I extend or modify the bot? Yes — for the parts you receive in source form:
  • Add a new exchange by writing a new adapter in exchanges/ (drop-in, no other changes required)
  • Modify the dashboard UI or add custom API endpoints
  • Adjust or extend configuration parameters
The compiled core is stable and does not need modification for normal use. If you need a custom strategy or deep integration, contact us — custom builds are available on request.
Can funding rates go negative?+
Yes. When market sentiment shifts bearish, funding rates can turn negative — meaning shorts pay longs instead. The bot monitors rates continuously and exits positions when rates fall below your configured threshold. The exit timing logic is designed to minimize losses in such scenarios.
How does the fee coverage filter actually work? Show me the math.+

The bot only enters a position if the projected funding income is expected to exceed round-trip trading fees by a configurable multiple (FEE_COVERAGE_FACTOR).


Example on Bybit (taker fee: 0.055% per leg):
A full round trip — open spot, open futures short, close spot, close futures — costs 4 × 0.055% = 0.22% of position size.


At a funding rate of +0.05% per cycle and assuming 3 payment cycles before exit:
Projected yield: 3 × 0.05% = +0.15% < 0.22% fees → entry blocked.


At a rate of +0.10% per cycle × 3 cycles = +0.30% > 0.22% fees → entry cleared, net expected: +0.08%.


With the default FEE_COVERAGE_FACTOR of 2.0×, projected yield must cover 2× the fee cost before entry — meaning the effective minimum entry threshold on Bybit is approximately +0.037% per cycle. You can tune this in the .env file.

Ready to collect funding rates?

Start in dry-run mode within minutes. No subscriptions, no lock-in. Price moves don't affect your P&L.